注册
实时备库改为异步备库
培训园地/ 文章详情 /

实时备库改为异步备库

大仁 2025/12/11 169 0 0

实时备库改为异步备库

1.1集群规划
集群规划 A 机器 B 机器 C 机器
业务 IP 192.168.137.128 192.168.137.129 192.168.137.130
实例名 GRP1_RT_01 GRP1_RT_02 GRP1_LOCAL_01
实例端口 52341 52342 52343
MAL 端口 61141 61142 61143
MAL 守护进程端口 52141 52142 52143
守护进程端口 33141 33142 33143
OGUID 453331 453331 453331
守护组 GRP1 GRP1 GRP1
安装目录 /home/dmdba/dmdbms /home/dmdba/dmdbms /home/dmdba/dmdbms
实例目录 /dmdata/data /dmdata/data /dmdata/data

C机器实例名修改由原来的GRP1_RT_03改成 GRP1_LOCAL_01,实时备库改成异步备库

1.2环境准备,关闭集群
利用原来的3个节点环境(1主2实时备),先关闭守护集群所有守护进程,然后关闭实例,否则实例会hang
##停止
##先停掉三个节点的守护进程:A/B/C 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop
##停掉主库实例:A 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 stop
##停掉备库实例:B 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 stop
##停掉备库实例:C 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_03 stop

1.2配置主库 GRP1_RT_01
1.2.1配置dm.ini
vim /dmdata/data/DMOA/dm.ini

TIMER_INI = 1 #打开定时器配置,除异步备库外的主备库需要

1.2.2配置dmmal.ini
vim /dmdata/data/DMOA/dmmal.ini
[MAL_INST3]
MAL_INST_NAME = GRP1_LOCAL_01 ##修改节点3的实例名
MAL_HOST = 192.168.137.130
MAL_PORT = 61143
MAL_INST_HOST = 192.168.137.130
MAL_INST_PORT = 52343
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143

1.2.3配置dmarch.ini
vim /dmdata/data/DMOA/dmarch.ini

[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC ##异步归档类型
ARCH_DEST = GRP1_LOCAL_01 ##异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER ##定时器名称,和 dmtimer.ini 中的名称一致

1.2.4配置dmtimer.ini
vim /dmdata/data/DMOA/dmtimer.ini

[RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 23:59:59
DURING_START_DATE = 2025-11-07 15:10:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1

1.3配置备库 GRP1_RT_02
主库上配置异步备库,备库上也需要增加相同的异步备库配置,保证备库在切换为主库后可以继续向同一个异步备库同步数据。
1.3.1配置dm.ini
vim /dmdata/data/DMOA/dm.ini

TIMER_INI = 1

1.3.2配置dmmal.ini
vim /dmdata/data/DMOA/dmmal.ini
[MAL_INST3]
MAL_INST_NAME = GRP1_LOCAL_01 ##修改节点3的实例名
MAL_HOST = 192.168.137.130
MAL_PORT = 61143
MAL_INST_HOST = 192.168.137.130
MAL_INST_PORT = 52343
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143

1.3.3配置dmarch.ini
vim /dmdata/data/DMOA/dmarch.ini

[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC
ARCH_DEST = GRP1_LOCAL_01
ARCH_TIMER_NAME = RT_TIMER

1.3.4配置dmtimer.ini
vim /dmdata/data/DMOA/dmtimer.ini

[RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 23:59:59
DURING_START_DATE = 2025-11-07 15:10:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1

1.4配置异步备库 GRP1_LOCAL_01
1.4.1配置dm.ini
vim /dmdata/data/DMOA/dm.ini

INSTANCE_NAME=GRP1_LOCAL_01

1.4.2配置dmmal.ini
vim /dmdata/data/DMOA/dmmal.ini

[MAL_INST3]
MAL_INST_NAME = GRP1_LOCAL_01

1.4.3配置dmarch.ini
修改 dmarch.ini,配置本地归档和异步归档。如果不需要配置级联异步备库,就不需要配置异步归档

vim /dmdata/data/DMOA/dmarch.ini

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

1.4.4配置dmwatcher.ini
修改 dmwatcher.ini 配置守护进程,配置为本地守护类型,异步备库不具备故障自动切换等功能,DW_MODE 配置并不起作用,此处配置为 MANUAL 即可。

vim /dmdata/data/DMOA/dmwatcher.ini

[GRP1]
DW_TYPE = LOCAL #本地守护类型
DW_MODE = MANUAL #故障手动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dmdata/data/DMOA/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

1.4.5重新注册服务
Root用户执行
cd /home/dmdba/dmdbms/script/root
./dm_service_uninstaller.sh -n DmServiceGRP1_RT_03

systemctl daemon-reload
systemctl reset-failed
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_LOCAL_01 -dm_ini /dmdata/data/DMOA/dm.ini -m mount

1.5启动集群
##启动
##A/B/C 机器
##启动主库实例:A 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start
##启动备库实例:B 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start
##启动备库实例:C 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_LOCAL_01 start

##启动三个节点的守护进程
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

1.6启动监视器
image.png

1.7验证数据同步
1.7.1主库和实时备库数据同步
主库:使用 disql 客户端登录**,创建测试表,插入数据。
SQL> create table test(id int, name varchar2(20));
SQL> insert into test values (1, 'one');
SQL> select * from test;
SQL> commit;
实时备库:查询测试表验证
image.png

1.7.2异步备库定时同步数据
image.png

1.8学习心得
主库更新测试数据后,异步备库几秒后就同步数据,主库定时器设置如下
image.png

解决方案:修改定时器配置 end_time,start_time和end_time是定时器的开始时间和结束时间,如果结束时间设置的过大,会不间断的触发定时器,修改end_time后可以跳过,建议生产如果设置异步备库,要实际的测试验证定时器同步频率。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服