一、设计思路
对于数据体量大的系统,比如达到了10TB以上,在需要进行数据库中部分表的还原时,如果利用数据库备份和归档还原到指定时间点,整体耗时是比较长的。达梦数据库数据守护集群支持异步备库,同步间隔时间可以通过定时器进行配置,最小的同步间隔时间为1分钟。利用异步备库的同步延时功能,比如,每天的0点进行一次数据同步,如果需要将某张数据表的数据恢复到当天的某个时刻,我们通过手动同步命令,将异步备机同步到指定的时刻。最后,通过逻辑备份还原的方式,将异步备库数据同步到主库,完成数据的恢复。
同时,对于一些报表类业务,可以部署在异步备库,分担一部分主库的访问压力。而对于同步的延时,可以根据系统的实际需求进行调整。当然,如果我们发现需要恢复数据时,异步备机正好完成了上次的同步,异步备库的数据已经同步到恢复时间点之后了,那就无法实现数据的恢复了。所以,同步的间隔一定要根据实际使用需求合理设定。
二、集群搭建
集群的搭建在此不做过多的介绍,大家可以参考。此处给大家列出相关的配置文件。
主库配置
1.主库的dm.ini
需要修改如下相关参数:
INSTANCE_NAME = DM1
MAL_INI = 1
ARCH_INI = 1
TIMER_INI = 1
2. 主库的dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.244.128
MAL_PORT = 61141
MAL_INST_HOST = 192.168.137.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.244.129
MAL_PORT = 61142
MAL_INST_HOST = 192.168.137.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
3.主库的dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dm/dmdbms/data/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC
ARCH_DEST = DM2
ARCH_TIMER_NAME = RT_TIMER
ARCH_SEND_DELAY = 1
其中,ARCHIVE_ASYNC为配置的异步归档,需要增加ARCH_SEND_DELAY延时发送归档参数,否则无法进行手动的归档追加同步。
4.主库的dmtimer.ini
[RT_TIMER]
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 00:00:00
DURING_START_DATE = 2016-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
IS_VALID=1
RT_TIMER为定时器名称,和dmarch.ini中的ARCH_TIMER_NAME保持一致。上述的配置是每天的0点钟触发主库发送归档日志到异步备库。
5.主库的dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dm/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmserver
需要注意DW_TYPE为LOCAL。
异步备库配置
1. 异步备库的dm.ini
INSTANCE_NAME = DM2
MAL_INI = 1
ARCH_INI = 1
2.异步备库dmmal.ini和主库相同
3.异步备库的dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dm/dmdbms/data/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
4.异步备库dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dm/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmserver