达梦数据库主备集群与监视器滚动升级
应用背景
本文主要阐述了达梦数据库的主备集群以及监视器的滚动升级步骤。此过程不影响业务的正常运行。同时如果三节点的监视器集群其中两节点部署在与数据库服务同一台主机上,升级主备库的同时,监视器也随之升级。重启监视器服务,即可正常实现主备库故障的自动切换以及监视器集群的高可用性。
滚动升级准备工作
上传程序档夹
主备库滚动升级之前,需要将新版本的程序档夹准备好,上传至主备库对应目录下,并修改升级包目录权限。
--修改程序目录权限 chmod -R 775 bin_new/ chown -R dmdba:dinstall bin_new/ |
查看数据库旧版本信息。
select * from v$version; |
拷贝档
将key档、DmService启动档、DmWatcherService启动档拷贝至升级包bin_new目录下。
--拷贝档 cp -rp DmServiceDADBA DmWatcherServiceWatcher ../bin_new |
数据库升级
对于多个备库的情况,同样可以参考本文中操作步骤,先统一升级所有备库实例。步骤3.3中,可以任意选择一个升级后的备库接管,最后升级主库完成后,再借助switchover命令切换主备库。
备库升级
查看集群状态
--登录监视器查看集群状态 show |
停止备库服务
正常关闭备库守护服务和数据库服务,这个过程中,主库的守护进程会检测到备库故障,但是不影响业务正常运行。
--关闭DmWatcherServiceWatcher服务 systemctl stop DmWatcherServiceWatcher --关闭DmServiceDADBA服务 systemctl stop DmServiceDADBA |
修改档夹名称,将升级前版本的程序档进行备份,此时bin目录下为新版的程序档。
mv bin bin_bak mv bin_new bin |
查看集群状态
--登录监视器查看集群状态 show |
启动服务
前置操作:完成以上所有准备工作。
操作:使用新版本的bin目录档,开启数据库服务。先启动Dmservice服务,之后启动DmWatcherService服务,等待历史数据同步完成,备库重新加入数据守护系统。
--开启DmWatcherServiceWatcher服务 systemctl start DmWatcherServiceWatcher --开启DmServiceDADBA服务 systemctl start DmServiceDADBA |
操作有效性验证:打开监视器,查看备库是否重新加入集群。
主库升级
查看集群状态
--登录监视器查看集群状态 show |
停止主库服务
手动switchover切换,确保正常切换且业务访问正常后,再停主库守护进程和实例。
--手动switchover切换 switchover 组名.实例名 --监视器查看集群状态,确保主库状态正常 show |
查看确认监视器日志,监视器自动切换备库为新主库。
修改档夹名称,将升级前版本的程序档进行备份,此时bin目录下为新版的程序档。
mv bin bin_bak mv bin_new bin |
查看集群状态
--登录监视器查看集群状态,备监视器正常切换为主监视器、数据库集群故障时可正常自动切换 show |
启动服务
前置条件:完成以上所有准备工作。
操作:使用新版本的bin目录档,开启数据库服务。先启动Dmservice服务,之后启动DmWatcherService服务,查看监视器,等待历史数据同步完成,原集群主库作为备库重新加入数据守护系统。
--开启DmWatcherServiceWatcher服务 systemctl start DmWatcherServiceWatcher --开启DmServiceDADBA服务 systemctl start DmServiceDADBA |
操作有效性验证:打开监视器,查看原主库是否重新加入集群,并查询v$version视图,查看版本是否升级成功。
查看数据库新版本信息。
select * from v$version; |
监视器升级
如果监视器节点与数据库服务节点部署在同一台主机上,则监视器与数据库服务用的是同一个bin执行档。数据库版本升级后,监视器版本也随之升级。只需重启监视器服务。
如果监视器节点部署在单独的主机上,则需要替换bin,重启监视器服务。
拷贝档
将原本DmMonitorServiceMonitor服务档拷贝至新的bin_new目录下。
--拷贝服务档 cp -rp DmMonitorServiceMonitor ../bin_new |
修改档夹名称,将升级前版本的程序档进行备份,此时bin目录下为新版的程序档。
mv bin bin_bak mv bin_new bin |
备监视器升级
注意,需要先统一升级所有备监视器,再升级主监视器。
查看监视器集群状态
--登录监视器查看集群状态 show state |
停止备监视器服务并查看监视器集群状态
--停止监视器服务,确保其他监视器节点能够自动切主且服务正常。注意每停止一个监视器服务,就要查看一下监视器集群状态是否正常 systemctl stop DmMonitorServiceMonitor show state |
重启服务并查看监视器集群状态
重启监视器服务,查看监视器集群状态:
--启动监视器服务,确保监视器服务正常 systemctl start DmMonitorServiceMonitor show state |
主监视器升级
查看监视器集群状态
--登录监视器查看集群状态 show state |
停止主监视器服务并查看监视器集群状态
--停止监视器服务,确保其他监视器节点能够自动切主且服务正常。注意每停止一个监视器服务,就要查看一下监视器集群状态是否正常 systemctl stop DmMonitorServiceMonitor show state |
重启服务并查看监视器集群状态
重启监视器服务,查看监视器集群状态:
--启动监视器服务,确保监视器服务正常 systemctl start DmMonitorServiceMonitor show state |




