核心原则: 严格按照顺序操作,确保集群状态稳定切换,避免数据不一致或脑裂风险。
一、 数据守护集群启动顺序(关键步骤)
-
启动数据库实例 (Mount 状态)
-
操作目的: 启动数据库但不打开数据文件,允许修改配置和模式。
-
操作命令 (在主库 DM1 执行):
bash./dmserver /DM/data/DAMENG/dm.ini mount
-
操作命令 (在备库 DM2 执行):
bash./dmserver /DM/data/DAMENG/dm.ini mount
-
-
修改数据库运行模式
-
设置主库模式 (在 Mount 状态的 DM1 上执行 SQL):
sqlALTER DATABASE PRIMARY;
-
设置备库模式 (在 Mount 状态的 DM2 上执行 SQL):
sqlALTER DATABASE STANDBY;
-
-
启动守护进程 (Daemon)
-
启动主库守护 (在主机 DM1 上执行):
bash./DmWatcherServiceGRP1_RT_01 start
-
启动备库守护 (在备机 DM2 上执行):
bash./DmWatcherServiceGRP1_RT_02 start
-
守护进程负责监控实例状态、管理主备切换、重演归档日志。
-
-
启动监视器 (Monitor - 可选但推荐)
-
在监视节点 DM_W 上执行:
bash./dmmonitor /home/dmdba/dmdbms/data/DAMENG/dmmonitor.ini
-
监视器提供集群状态可视化监控和部分自动控制功能(如确认切换)。
-
二、 数据守护集群关闭顺序(安全停止)
-
退出监视器 (Monitor - 如果正在运行)
- 在监视节点 DM_W 上操作: 在监视器命令行界面输入
exit
或直接关闭其运行终端。
- 在监视节点 DM_W 上操作: 在监视器命令行界面输入
-
关闭备库守护进程 (在备机 DM2 上执行):
bash./DmWatcherServiceGRP1_RT_02 stop
-
关闭主库守护进程 (在主机 DM1 上执行):
bash./DmWatcherServiceGRP1_RT_01 stop
-
关闭主机数据库实例 (在 DM1 上操作):
-
连接到 DM1 数据库实例。
-
执行 SQL 命令:
sqlSHUTDOWN IMMEDIATE;
-
-
关闭备机数据库实例 (在 DM2 上操作):
-
连接到 DM2 数据库实例。
-
执行 SQL 命令:
sqlSHUTDOWN IMMEDIATE;
-
三、 关键注意事项
- 顺序至关重要: 启动时必须先启库改模式,再启守护和监视器;关闭时必须先停监视器和守护,再停库。颠倒顺序极易导致集群状态异常或故障切换误触发。
- Mount 状态的作用: 启动时使用
mount
参数是为了让数据库处于可修改配置(如运行模式)的状态,但阻止用户访问数据,确保模式切换安全。 - 守护进程依赖: 守护进程需要在数据库实例启动后运行,监视器又依赖守护进程提供状态信息。
- 路径与文件名: 示例中的路径 (
/DM/data/DAMENG/
,/home/dmdba/dmdbms/data/DAMENG/
) 和守护进程名 (DmWatcherServiceGRP1_RT_01
) 需替换为实际部署环境中的值。 - 权限: 确保操作使用具有足够权限的用户(如
dmdba
)。 - 关闭方式: 使用
SHUTDOWN IMMEDIATE
是安全的关闭方式,会回滚未提交事务但断开所有连接。避免直接kill
进程或断电! - 监视器非必须: 虽然监视器提供便利监控,但集群核心功能(守护进程+实例)本身可以独立运行。
四、 总结
遵循 启动库(mount) -> 改模式 -> 启守护 -> 启监视器
的启动流程和 停监视器 -> 停备守护 -> 停主守护 -> 停备库 -> 停主库
的关闭流程,是保障达梦数据守护集群稳定运行的关键。任何步骤的顺序错误都可能引发集群故障,尤其在生产环境中必须严格按此规程操作。 操作前务必核对配置文件路径和守护进程名称与实际环境一致。
建议结合达梦数据库官方文档和实际环境部署手册进行操作,并在测试环境充分验证流程后再应用于生产系统。