目 录CONTENT

文章目录

YashanDB实例启停过程

暮渔木鱼
2025-01-12 / 0 评论 / 1 点赞 / 16 阅读 / 0 字 / 正在检测是否收录...

启动过程

数据库实例从关闭启动到正常使用,要经过NOMOUNT、MOUNT和OPEN三个阶段;

  • NOMOUNT:启动数据库实例, 此时读取参数文件,但是不加载数据库。
  • MOUNT:启动数据库实例,读取控制文件,加载数据库,但是数据库处于关闭状态。
  • OPEN:启动数据库实例,加载并打开数据库。

6783ae16851cb.png

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用户登录至所有服务器并执行以下操作

  1. 打开/etc/rc.local文件

    $ sudo vi /etc/rc.local

  2. 在文件的最后加上以下内容,保存后退出

    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’

  3. 执行以下操作,添加调用权限

    $ 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

6783ae7153ae5.png

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

6783ae8928a23.png

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

6783aeaba3902.png

启动到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:强制中断所有数据库操作并关闭数据库,这种关闭方式可能会丢失一部分数据,影响数据库完整性。

6783aebfcd928.png

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方式,否则应避免使用这种方式关库,防止出现数据丢失,或者数据库损坏。

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区