这里采用之前已经配置好的一主+一备实时主备环境,增加一台机器用来配置异步备库,其他环境不变。
环境
主库: 172.15.55.230 DM01
实时备库: 172.15.55.231 DM02(监视器部署在此台机器上)
异步备库: 172.15.55.232 DM03
数据准备
如果搭建数据守护之前,数据库系统已经上线运行了,那么我们可以通过拷贝数据文件的方式实现主库和备库的数据同步。具体步骤包括:
- 正常关闭数据库。
- 严格按照数据文件在主库上的分布,拷贝数据文件到备库的对应目录。
- 如果数据文件统一存放在一个目录下,则直接拷贝整个目录即可。
配置文件
dm.ini
主库、实时备库:
#配置有异步归档时,打开定时器,定时同步归档到异备库
TIMER_INI = 1
异步备库:
INSTANCE_NAME = DM03
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 1 #允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2
注:此处的 ALTER_MODE_STATUS 若设置为0,后面设置OGUID会报错-720
dmmal.ini
主库、实时备库:
#增加以下内容
[MAL_INST3]
MAL_INST_NAME = DM03
MAL_HOST = 172.15.55.232
MAL_PORT = 5238
MAL_INST_HOST = 172.15.55.232
MAL_INST_PORT = 5236
MAL_DW_PORT = 5237
MAL_INST_DW_PORT = 5239
异步备库:
主备库 dmmal.ini 配置需保持一致,可以直接拷贝主库的 dmmal.ini 文件
dmarch.ini
主库、实时备库:
#增加以下内容
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DM03 #异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致
异步备库:
#只需配置本地归档
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
dmwatcher.ini
异步备库:
[GRP1]
DW_TYPE = LOCAL
#DW_MODE = AUTO
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
dmtimer.ini
主库、实时备库:
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 1
START_TIME = 00:00:00
END_TIME = 00:00:00
DURING_START_DATE = 2023-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1
注册服务
异步备库:
进入 /dm8/script/root 目录
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM01/dm.ini -p DM03 -m mount #注册dmserver服务(以mount方式启动)
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DM01/dmwatcher.ini -p DM03 #注册dmwatcher服务
启动服务
依次启动主库,实时备库的 dmserver 和 dmwatcher 服务,再启动异步备库的 dmserver 服务。
异步备库:
进入/dm8/tool 目录,执行:
./disql SYSDBA/SYSDBA
CONN SYSDBA/SYSDBA
登录数据库
设置OGUID
异步备库:
SQL>sp_set_oguid(453331);
修改数据库模式
异步备库:
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
修改监视器配置
实时备库:
修改实时备库中的 dmmonitor.ini 文件,新增到异步备库守护进程的连接信息
#增加以下内容
MON_DW_IP = 172.15.55.232:5237
启动守护进程
启动异步备库的 dmwatcher 服务。
启动监视器
启动部署在实时备库上的监视器:
./dmmonitor /dm8/data/DM01/dmmonitor.ini
至此实时主备环境下的异步备库搭建完成,可以根据实际情况考虑配置多个异步备库。在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到异步备库实例和异步备库守护进程都处于 Open 状态。