达梦数据库—切换主备库
达梦主备集群顾名思义就是一主一备(也可以一主多备)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即实现系统的双机热备功能。在使用的过程中,如果是实时同步模式的话,主机和备机的数据保持完全一致。主机产生一条新的记录时,在记录写入数据库文件之前,会把新产生的redo日志文件发送到备机,由备机重新执行接收到的redo日志,来保证主备集群数据的一致性。
一、手动切换主备库
确认主备集群服务状态正常,确认监视器已启动。
主库服务,数据守护状态:
[dmdba@localhost ~]$ ps -ef|grep dms
[dmdba@localhost ~]$ ps -ef|grep dmw
备库服务,数据守护状态:
[dmdba@localhost ~]$ ps -ef|grep dms
[dmdba@localhost ~]$ ps -ef|grep dmw
确认监视器状态:
[dmdba@localhost ~]$ ps -ef|grep dmm
前台方式启动监视器:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dmmonitor /home/dmdba/dmdbms/dmmonitor.ini
可以看到DM1是主库,DM2是备库,主备集群状态正常
进行手动主备切换:
login
用户名:
密码:
switchover GRP1.DM2
此时DM2为主库,DM1为备库
登录DM1查看
登录DM2查看
二、自动切换
1. 备库停守护,服务
备库停守护服务:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmWatcherServicedm2 stop
当数据库服务守护服务停止时,监视器监控不到备库信息
备库停数据库服务:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmServerdm2 stop
监视器监控到备库异常
重启备库服务:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmServicedm2 start
[dmdba@localhost bin]$ ./DmWatcherServicedm2 start
监视器接收到备库信息,备库重新加入到集群中
2. 主库停守护,服务
主库停守护服务:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmWatcherServicedm1 stop
[dmdba@localhost bin]$ ./DmWatcherServicedm2 start
监视器监控到DM1异常,并将DM2备库切换成主库
重启主库服务:
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmServicedm1 start
[dmdba@localhost bin]$ ./DmWatcherServicedm1 start
DM1重新启动后,监视器接收到DM1信息,DM1以备库状态重新加入集群
3. 备库被kill掉进程
Kill掉备库数据库服务时:
[dmdba@localhost ~]$ ps -ef|grep dms
[dmdba@localhost~]$ kill -9 进程号
不需要人为手动操作,当数据库服务被kill掉后,数据库守护服务会很快将数据库服务重新拉起继续提供服务。
监视器监控备库信息
kill掉备库数据库服务,主备集群没有发生主备切换,DM1依然为主库,DM2为备库
4. 主库被kill掉进程
Kill掉主库数据库服务时:
[dmdba@localhost ~]$ ps -ef|grep dms
[dmdba@localhost~]$ kill -9 进程号
监视器监控主库信息
当kill掉主库数据库服务,监视器监控到主库DM1的异常,并发生主备切换,将状态正常的DM2备库切换为集群主库,当DM1数据库服务被数据库守护服务拉起后重新加入主备集群,为备库状态。
主备集群状态:
kill掉主库数据库服务进程,集群状态发生切换,DM2切换为集群主库,DM1为集群备库。
达梦技术社区:
https://eco.dameng.com