达梦数据库-配置本地守护进程dmwatcher服务
守护进程dmwatcher的类型有LOCAL和GLOBAL,Local守护类型的守护进程,直接 Open 数据库实例,并修改守护进程状态为 Open。Global守护类型的守护进程,需要相互协调信息,自动将数据库实例切换到 Open 状态,并将守护进程状态也切换为 Open 状态。可以通过设置守护类型为LOCAL,利用守护进程的监控功实现数据库异常关闭后重新拉起数据库服务。
测试环境:
--DM v8 03134284368-20260306-316451-20149 Pack62 + Kylin 10 + x86_64
数据库主机IP:192.168.118.147
数据库软件安装目录:/opt/dmdbms/
数据库实例目录:/data/dmdata/DAMENG
数据库实例端口:5237
SQL> select id_code,* from v$version;
id_code BANNER
--03134284368-20260306-316451-20149 Pack62 DM Database Server 64 V8
--03134284368-20260306-316451-20149 Pack62 DB Version: 0x7000d
--03134284368-20260306-316451-20149 Pack62 03134284368-20260306-316451-20149
--03134284368-20260306-316451-20149 Pack62 Msg Version: 44
--03134284368-20260306-316451-20149 Pack62 Gsu level(5) cnt: 0

示例步骤:
1设置参数文件dm.ini中MAL_INI = 1
dmdba@192 \~\]$ cat /data/dmdata/DAMENG/dm.ini \|grep MAL_INI MAL_INI = 1 #dmmal.ini ### 2配置 dmmal.ini值 cat \>\>/data/dmdata/DAMENG/dmmal.ini\<\< EOF MAL_CHECK_INTERVAL = 10 MAL_CONN_FAIL_INTERVAL = 20 \[MAL_INST1
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.118.147
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.147
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
EOF

3配置 dmwatcher.ini
cat >>/data/dmdata/DAMENG/dmwatcher.ini<< EOF
GRP1
DW_TYPE = LOCAL
DW_MODE = AUTO
DW_ERROR_TIME = 30
INST_ERROR_TIME = 20
INST_RECOVER_TIME = 60
INST_OGUID = 20260321
INST_INI = /data/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /opt/dmdbms/bin/DmServiceDAMENG start
EOF

4配置OGUID,与dmwatcher.ini的INST_OGUID一致,只需要设置oguid
dmdba@192 \~\]$ disql SYSDBA/HUN_admin2026@localhost:5237 ALTER DATABASE MOUNT; SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1); SP_SET_OGUID(20260321); SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0); ALTER DATABASE OPEN; ### 5注册watcher服务,开启自启 \[root@192 \~\]# bash /opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMSERVER -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDMSERVER.service → /usr/lib/systemd/system/DmWatcherServiceDMSERVER.service. 创建服务(DmWatcherServiceDMSERVER)完成 \[root@192 \~\]# systemctl enable DmWatcherServiceDMSERVER \[root@192 \~\]# systemctl start DmWatcherServiceDMSERVER \[root@192 \~\]# systemctl status DmWatcherServiceDMSERVER  ### 6测试数据库服务异常关闭后守护进程自动拉起数据库服务 手段kill数据库服务进程后,守护进程检测到数据库异常关闭后,自动拉起数据库服务。  更多达梦数据库运维指南、在线文档、相关资料、社区在线提问以及技术分享访问 [https://eco.dameng.com/](https://eco.dameng.com/ "https://eco.dameng.com/")