启动过程
数据库实例从关闭启动到正常使用,要经过NOMOUNT、MOUNT和OPEN三个阶段;
- NOMOUNT:启动数据库实例, 此时读取参数文件,但是不加载数据库。
- MOUNT:启动数据库实例,读取控制文件,加载数据库,但是数据库处于关闭状态。
- OPEN:启动数据库实例,加载并打开数据库。

yaboot管理工具
进程:
- yasdb进程
yasdb为YashanDB的主进程,启动数据库实例后,系统中可监控到此进程。
- yasom进程
yasom为YashanDB的运维服务进程,接受yasboot命令并进行指令下发和控制,管理yasagent。
- yasagent进程
yasagent进程为YashanDB的无状态运维服务进程,接受yasom指令并通过工具/驱动/命令等方式向yasdb或文件系统执行查询和操作等任务。
- yascs进程
yascs进程为YashanDB的集群服务管理进程,部署共享集群后将会启动此进程
使用yasboot工具调整数据库实例时须确保yasom和yasagent进程处于开启状态,否则将提示connect: connection refused错误。服务器重启时,yasom和yasagent进程会自动关闭,可通过注册开机自启动功能于服务器重启时自动拉起yasom和yasagent进程。
启动守护进程操作
守护进程用于持续监控YashanDB的各进程状态,并在进程异常时将其重新拉起
操作如下:
$ cd /home/yashan/install
$ ./bin/yasboot monit start --cluster yashandb
当服务器由于各种原因发生重启时,需执行如下命令手动启动进程
$ yasboot process yasom start -c yashandb
$ yasboot process yasagent start -c yashandb
## 待yasom和yasagent进程启动后,才能启动数据库
$ yasboot cluster start -c yashandb
Note:
执行启动数据库操作需要在yasom和yasagent进程启动后,才能启动数据库
将守护进程注册成开机自启
若将守护进程配置为开机自启动,可以在服务器重启后自动拉起YashanDB的各个进程。如需启用此功能,需以yashan用户登录至所有服务器并执行以下操作
-
打开/etc/rc.local文件
$ sudo vi /etc/rc.local
-
在文件的最后加上以下内容,保存后退出
su yashan -c ‘/data/yashan/yasdb_home/yashandb/23.2.0.2/ext/monit/monit -c /data/yashan/yasdb_home/yashandb/23.2.0.2/ext/monit/monitrc’
-
执行以下操作,添加调用权限
$ sudo chmod +x /etc/rc.d/rc.local
启动数据库
YashanDB支持通过yasboot工具直接将数据库实例调整至NOMOUNT、MOUNT和OPEN三个阶段的任意一个,也支持通过ALTER DATABASE语句将数据库实例从NOMOUNT阶段调整到MOUNT阶段和OPEN阶段。
启动到NOMOUNT阶段
# yasboot工具:
# 方式一:先关闭然后启动数据库集群至NOMOUNT状态
$ yasboot cluster stop -c yashandb
$ yasboot cluster start -c yashandb -m nomount
# 方式二:一键重启数据库集群至NOMOUNT状态
$ yasboot cluster restart -c yashandb -m nomount
# 启动group_id为1的节点组至NOMOUNT状态
$ yasboot group start -c yashandb -g 1 -m nomount
# 启动node_id为4-1的节点至NOMOUNT状态
$ yasboot node start -c yashandb -n 4-1 -m nomount

此时查看数据库状态已经更新为STARTED

Note:
数据库实例启动到NOMOUNT状态后,查看V$INSTANCE视图的STATUS状态值为STARTED,而不是NOMOUNT。
启动到MOUNT阶段
# yasboot工具:
# 方式一:先关闭然后启动数据库集群至MOUNT状态
$ yasboot cluster stop -c yashandb
$ yasboot cluster start -c yashandb -m mount
# 方式二:一键重启数据库集群至MOUNT状态
$ yasboot cluster restart -c yashandb -m mount
# 启动group_id为1的节点组至MOUNT状态
$ yasboot group start -c yashandb -g 1 -m mount
# 启动node_id为4-1的节点至MOUNT状态
$ yasboot node start -c yashandb -n 4-1 -m mount
# SQL命令(此时须确保数据库实例处于NOMOUNT状态):
$ yasql sys/password@ip:port
SQL> ALTER DATABASE MOUNT;
操作成功后,可查询数据库状态已更新为MOUNTED

启动到OPEN阶段
# yasboot工具:
# 方式一:先关闭然后启动数据库集群至OPEN状态
$ yasboot cluster stop -c yashandb
$ yasboot cluster start -c yashandb -m open
# 方式二:一键重启数据库集群至OPEN状态
$ yasboot cluster restart -c yashandb -m open
# 启动group_id为1的节点组至OPEN状态
$ yasboot group start -c yashandb -g 1 -m open
# 启动node_id为4-1的节点至OPEN状态
$ yasboot node start -c yashandb -n 4-1 -m open
# SQL命令(此时须确保数据库实例处于NOMOUNT或MOUNT状态):
$ yasql sys/password@ip:port
SQL> ALTER DATABASE OPEN;
操作成功后,可查询数据库状态已更新为OPEN

关闭数据库
YashanDB支持通过执行SHUTDOWN语句或使用yasboot工具关闭数据库实例。
SQL命令方式
SHUTDOWN NORMAL;
SHUTDOWN IMMEDIATE;
SHUTDOWN ABORT;
- SHUTDOWN NORMAL:等待事务正常结束后关闭,没有时间限制,通常建议选择这种方式来关闭数据库,此方式也为YashanDB默认的关库模式。
- SHUTDOWN IMMEDIATE:立即中断当前用户的连接,同时强行终止用户的当前执行中的事务,将未完成的事务回退,并关闭数据库。
- SHUTDOWN ABORT:强制中断所有数据库操作并关闭数据库,这种关闭方式可能会丢失一部分数据,影响数据库完整性。

yasboot工具方式
$ yasboot cluster stop -c yashandb
$ yasboot cluster stop -c yashandb -s normal
$ yasboot cluster stop -c yashandb -s immediate
$ yasboot cluster stop -c yashandb -s abort
# 关闭group_id为1的节点组
$ yasboot group stop -c yashandb -g 1
# 关闭node_id为4-1的节点
$ yasboot node stop -c yashandb -n 4-1
其中,-s参数用于指定关库方式,可指定为NORMAL/IMMEDIATE/ABORT方式,省略则默认为IMMEDIATE方式。
Caution:
一般当主机宕机、主机断电,或者人为强制关库时才建议使用ABORT方式,否则应避免使用这种方式关库,防止出现数据丢失,或者数据库损坏。
评论区