注册
达梦主备环境下,实时备库和异步备库的在线互转
技术分享/ 文章详情 /

达梦主备环境下,实时备库和异步备库的在线互转

Da A Joey 2024/06/07 1610 2 0

前言

在金融核心场景两地三中心环境下,往往有异地灾备切换演练需求,达梦以往的做法是将整套集群环境停机,异地灾备的异步备库切为实时备库,而后通过监视器switchover命令进行切换,主机房切换至异地之后,再将原有主库切为异步备机,这样的做法又麻烦又比较low,23年以后的达梦数据库支持了实时备库和异步备库的不停机互转。
这一功能在普通主备和DSC主备环境下都支持,下面演示一下具体操作方式,ps:由于本人没有dsc+dsc的环境,这里只演示了dsc+dw也就是2+1环境的操作步骤,至于2+2环境,相信只要看完了本篇文章,各位dba应该可以自行推断。

1 单实例主库(普通主备环境)

1.1 实时备库转异步

1.1.1 初始状态

image.png

1.1.2 关闭实时备库的守护进程

image.png

1.1.3 登录监视器将备库的归档置为失效

image.png
注意:
(1)这里虽然监视器显示修改DM02的归档状态为无效失败,但是不影响后续操作。
(2)这一步之前必须关闭备库的守护进程,否则,将DM02归档置为失效后,会自动变回正常状态。

1.1.4 登录主库删除其到实时备库的归档

image.png
注意:这步操作之前必须将主库到实时备库的归档置为失效状态,否则,无法删除归档:
image.png

1.1.5 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为LOCAL

image.png
image.png

1.1.6 登录备库,删除备库到主库的归档,并启动备库守护进程

image.png

1.1.7 登录主库,添加主库到备库的异步归档配置

image.png

1.1.8 修改主库的dmwatcher.ini,将守护进程类型改为LOCAL,并重启主库守护进程

image.png

注意:

(1)如果存在其他实时/及时归档则继续保持守护进程的GLOBAL状态,直接重启守护进程即可。
(2)如果没有其他实时/及时归档,主库守护进程是GLOBAL状态会报错,需要修改为LOCAL。
image.png

1.1.9 监视器查看结果,切换成功

image.png

1.2 异步备库转实时

1.2.1 初始状态

image.png

1.2.2 登录主库删除其到异步备库的归档

image.png

1.2.3 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为GLOBAL

image.png

1.2.4 登录备库,添加备库到主库的实时归档配置,并启动备库的守护进程

image.png

1.2.5 登录主库,添加主库到备库的实时归档配置,并重启主库守护进程

image.png
注意:这一步注意主库守护进程的状态需要是GLOBAL状态,如果是LOCAL状态,则需要修改dmwatcher.ini配置后再重启守护进程。

1.2.6 监视器查看结果,切换成功

image.png

1.3 限制

1.3.1 部署时需要提前配置dmtimer.ini

(1) 所有实例需要部署的时候就提前配置好dmtimer.ini。
(2) 各实例dm.ini的TIMER_INI应当直接配成1,否则后续实时改异步需要修改并重启实例,且不论主备库改参数都不影响正常使用。

1.3.2 压力下实时改异步设置归档失效时主机会挂起2秒

有压力情况下主库insert挂起2秒左右,select无影响
image.png

1.3.3 压力下异步改实时主库添加实时归档配置后主库卡住,因此此操作一定不可以在业务高峰期进行

此时主备间在追数据,select无影响,但不可以进行DDL和写操作。

image.png

image.png

2 DSC+单机,2+1环境

2.1 实时备库转异步

2.1.1 初始状态

image.png

2.1.2 登录监视器将备库的归档置为失效

image.png

2.1.3 登录主库删除其到实时备库的归档

image.png
注意:这步操作之前必须将主库到实时备库的归档置为失效状态,否则,无法删除归档

2.1.4 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为LOCAL

image.png

2.1.5 登录备库,删除备库到主库的归档,并启动备库守护进程

image.png

2.1.6 登录主库,添加主库到备库的异步归档配置

image.png
image.png

注意:

这步操作必须两个DSC节点都做,如果只做控制节点,后续非控制节点的守护进程重启会失败。
非控制节点守护进程重启失败后,在非控制节点上重做这一步即可,上面的截图就是非控制节点守护进程重启失败后重做的,经过验证不影响后续功能。

2.1.7 修改主库的dmwatcher.ini,将守护进程类型改为LOCAL,并重启主库守护进程

image.png
image.png

注意:

(1)如果存在其他实时/及时归档则继续保持守护进程的GLOBAL状态,直接重启守护进程即可。
(2)如果没有其他实时/及时归档,主库守护进程是GLOBAL状态会报错,需要修改为LOCAL。
(3)这步操作必须两个DSC节点都做,如果只做控制节点,后续非控制节点的守护进程重启会失败。

2.1.8 监视器查看结果,切换成功

image.png

2.1.9 验证数据同步

image.png
image.png
数据同步没有问题。

2.2 异步备库转实时

2.2.1 初始状态

image.png

2.2.2 登录主库删除其到异步备库的归档,两节点都要做

image.png
image.png

2.2.3 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为GLOBAL

image.png

2.2.4 登录备库,添加备库到主库的实时归档配置,并启动备库的守护进程

image.png

2.2.5 登录主库,添加主库到备库的实时归档配置,并重启主库守护进程,两节点都要做

image.png
image.png
image.png
image.png
注意:这一步注意主库守护进程的状态需要是GLOBAL状态,如果是LOCAL状态,则需要修改dmwatcher.ini配置后再重启守护进程。

2.2.6 监视器查看结果,切换成功

image.png

2.2.7 验证数据同步

image.png
image.png

3 单机+DSC,1+2环境

3.1 实时备库转异步

3.1.1 初始状态

image.png

3.1.2 登录监视器将备库的归档置为失效

image.png

3.1.3 登录主库删除其到实时备库的归档

image.png
注意:这步操作之前必须将主库到实时备库的归档置为失效状态,否则,无法删除归档

3.1.4 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为LOCAL,两节点都做

image.png

3.1.5 登录备库,删除备库到主库的归档,并启动备库守护进程,两节点都做

image.png

3.1.6 登录主库,添加主库到备库的异步归档配置

image.png

3.1.7 修改主库的dmwatcher.ini,将守护进程类型改为LOCAL,并重启主库守护进程

image.png

注意:

(1)如果存在其他实时/及时归档则继续保持守护进程的GLOBAL状态,直接重启守护进程即可。
(2)如果没有其他实时/及时归档,主库守护进程是GLOBAL状态会报错,需要修改为LOCAL。

3.1.8 监视器查看结果,切换成功

image.png

3.1.9 验证数据同步

image.png
image.png

3.2 异步备库转实时

3.2.1 初始状态

image.png

3.2.2 登录主库删除其到异步备库的归档

image.png

3.2.3 关闭备库的守护进程并修改其dmwatcher.ini,修改守护进程类型为GLOBAL,两节点都做

image.png

3.2.4 登录备库,添加备库到主库的实时归档配置,并启动备库的守护进程,两节点都做

image.png
image.png

3.2.5 登录主库,添加主库到备库的实时归档配置,并重启主库守护进程

image.png

3.2.6 监视器查看结果,切换成功

image.png

3.2.7 验证数据同步

image.png
image.png

说明

1 部署时需要提前配置dmtimer.ini

(1) 所有实例需要部署的时候就提前配置好dmtimer.ini。
(2) 各实例dm.ini的TIMER_INI应当直接配成1,否则后续实时改异步需要修改并重启实例,且不论主备库改参数都不影响正常使用。

2 DSC集群关于增删归档,修改并重启守护进程需要在两个节点都做

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服