达梦数据库—切换主备库

达梦主备集群顾名思义就是一主一备(也可以一主多备)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即实现系统的双机热备功能。在使用的过程中,如果是实时同步模式的话,主机和备机的数据保持完全一致。主机产生一条新的记录时,在记录写入数据库文件之前,会把新产生的redo日志文件发送到备机,由备机重新执行接收到的redo日志,来保证主备集群数据的一致性。

一、手动切换主备库

确认主备集群服务状态正常,确认监视器已启动。

主库服务,数据守护状态:

[dmdba@localhost ~]$ ps -ef|grep dms

[dmdba@localhost ~]$ ps -ef|grep dmw

java主从如何切换 java主从切换达梦数据库_java主从如何切换


备库服务,数据守护状态:

[dmdba@localhost ~]$ ps -ef|grep dms

[dmdba@localhost ~]$ ps -ef|grep dmw

java主从如何切换 java主从切换达梦数据库_数据_02


确认监视器状态:

[dmdba@localhost ~]$ ps -ef|grep dmm

java主从如何切换 java主从切换达梦数据库_数据库_03


前台方式启动监视器:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./dmmonitor /home/dmdba/dmdbms/dmmonitor.ini

可以看到DM1是主库,DM2是备库,主备集群状态正常

java主从如何切换 java主从切换达梦数据库_数据_04


进行手动主备切换:

login

用户名:

密码:

switchover GRP1.DM2

java主从如何切换 java主从切换达梦数据库_数据库_05


java主从如何切换 java主从切换达梦数据库_database_06


此时DM2为主库,DM1为备库

登录DM1查看

java主从如何切换 java主从切换达梦数据库_数据_07


登录DM2查看

java主从如何切换 java主从切换达梦数据库_数据库_08

二、自动切换

1. 备库停守护,服务

备库停守护服务:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./DmWatcherServicedm2 stop

java主从如何切换 java主从切换达梦数据库_java主从如何切换_09


当数据库服务守护服务停止时,监视器监控不到备库信息

java主从如何切换 java主从切换达梦数据库_数据_10


备库停数据库服务:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./DmServerdm2 stop

java主从如何切换 java主从切换达梦数据库_数据_11


监视器监控到备库异常

java主从如何切换 java主从切换达梦数据库_java主从如何切换_12


重启备库服务:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./DmServicedm2 start

[dmdba@localhost bin]$ ./DmWatcherServicedm2 start

java主从如何切换 java主从切换达梦数据库_java主从如何切换_13

监视器接收到备库信息,备库重新加入到集群中

java主从如何切换 java主从切换达梦数据库_database_14

2. 主库停守护,服务

主库停守护服务:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./DmWatcherServicedm1 stop

[dmdba@localhost bin]$ ./DmWatcherServicedm2 start

java主从如何切换 java主从切换达梦数据库_数据_15


监视器监控到DM1异常,并将DM2备库切换成主库

java主从如何切换 java主从切换达梦数据库_数据库_16


重启主库服务:

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./DmServicedm1 start

[dmdba@localhost bin]$ ./DmWatcherServicedm1 start

java主从如何切换 java主从切换达梦数据库_数据库_17


java主从如何切换 java主从切换达梦数据库_java主从如何切换_18

DM1重新启动后,监视器接收到DM1信息,DM1以备库状态重新加入集群

java主从如何切换 java主从切换达梦数据库_重启_19

3. 备库被kill掉进程

Kill掉备库数据库服务时:

[dmdba@localhost ~]$ ps -ef|grep dms

[dmdba@localhost~]$ kill -9 进程号

java主从如何切换 java主从切换达梦数据库_java主从如何切换_20


不需要人为手动操作,当数据库服务被kill掉后,数据库守护服务会很快将数据库服务重新拉起继续提供服务。

java主从如何切换 java主从切换达梦数据库_database_21


监视器监控备库信息

java主从如何切换 java主从切换达梦数据库_数据库_22

kill掉备库数据库服务,主备集群没有发生主备切换,DM1依然为主库,DM2为备库

java主从如何切换 java主从切换达梦数据库_数据库_23

4. 主库被kill掉进程

Kill掉主库数据库服务时:

[dmdba@localhost ~]$ ps -ef|grep dms

[dmdba@localhost~]$ kill -9 进程号

java主从如何切换 java主从切换达梦数据库_重启_24


监视器监控主库信息

java主从如何切换 java主从切换达梦数据库_重启_25


java主从如何切换 java主从切换达梦数据库_java主从如何切换_26


java主从如何切换 java主从切换达梦数据库_重启_27

当kill掉主库数据库服务,监视器监控到主库DM1的异常,并发生主备切换,将状态正常的DM2备库切换为集群主库,当DM1数据库服务被数据库守护服务拉起后重新加入主备集群,为备库状态。

主备集群状态:

java主从如何切换 java主从切换达梦数据库_database_28

kill掉主库数据库服务进程,集群状态发生切换,DM2切换为集群主库,DM1为集群备库。