配置好三台初始化的单机库,一台主库 DM01,一台 DM02 异备,DM03 实时。
主库 ip:192.168.209.167 备库 ip:192.168.209.179 192.168.209.180
备份还原,同步主备库在主库中:
./dmrman ctlstmt=“backup database '/home/dmdata/DAMENG/dm.ini' full to backuptest backupset '/home/dmbak/backuptest’”
发送到备库:
scp -r /home/dmbak/backuptest dmdba@192.168.209.179:/home/dmbak
在备库中:
还原:
./dmrman ctlstmt=“restore database '/home/dmdata/DAMENG/dm.ini' from backupset '/home/dmbak/backuptest'”
恢 复 :
./dmrman ctlstmt=“recover database '/home/dmdata/DAMENG/dm.ini' from backupset '/home/dmbak/backuptest'”
更 新 :
./dmrman ctlstmt=“recover database '/home/dmdata/DAMENG/dm.ini' update db_magic”
配置主库:
INSTANCE_NAME=DM01
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2
TIMER_INI = 1
异步备库无需修改
配置 dmmal.ini: MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME =DM01
MAL_HOST = 192.168.209.167
MAL_PORT = 61141
MAL_INST_HOST = 192.168.209.167
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME =DM02
MAL_HOST = 192.168.209.179
MAL_PORT = 61141
MAL_INST_HOST = 192.168.209.179
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = DM03
MAL_HOST = 192.168.209.180
MAL_PORT = 61141
MAL_INST_HOST = 192.168.209.180
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
配置 dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DM02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmarch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DM02#异步归档目标实例名
ARCH_TIMER_NAME = TIMER01 #定时器名称,和 dmtimer.ini 中的名称一致
异步备库只保留本地归档
配置 dmtimer.ini 主备库都需要设置,用于定时触发实例发送归档日志。
[TIMER01] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 22:30:00
END_TIME = 22:40:00
DURING_START_DATE = 2021-08-28 22:25:00
DURING_END_DATE = 2021-08-28 22:45:00
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1
配置 dmwatcher.ini 主库:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0
备库:
[GRP1]
DW_TYPE = LOCAL #本地守护类型
DW_MODE = MANUAL #故障手动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /home/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
配置主备库的 OGUID:
./dmserver /home/dmdata/DAMENG/dm.ini mount
disql工具:
sp_set_oguid(453331);
alter database primary;
备库:
sp_set_oguid(453331);
alter database standby;
在备库上配置监视器 dmmonitor.ini
MON_DW_Confirm = 1
MON_LOG_PATH = /home/dmdba/dmdbms/monitor_DM_log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_DW_IP = 192.168.209.167:52141
MON_DW_IP = 192.168.209.179:52141
MON_DW_IP = 192.168.209.180:52141
注册服务
主库:
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdata/DAMENG/dmwatcher.ini -p DM01
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdata/DAMENG/dmwatcher.ini
-p DM01
异步备库:
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdata/DAMENG/dmwatcher.ini -p DM02
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdata/DAMENG/dmwatcher.ini
-p DM02
实时备库:
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdata/DAMENG/dmwatcher.ini -p DM03
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdata/DAMENG/dmwatcher.ini
-p DM03
启动服务:以 mount 状态启动数据库,然后再启动守护进程
此时已配置完成。
测试:主库建表
create table test1(no1 char(10),no2 varchar(20));
:
同步备库可查到:
异步备库无反应:
因为未触发开始时间,修改 dmtimer.ini
改动时间后,等待至开始时间触发,即可查到数据
更多资讯请上达梦技术社区了解: https://eco.dameng.com