注册
DCP达梦守护集群
技术分享/ 文章详情 /

DCP达梦守护集群

2025/02/14 231 0 0

–主机:172.16.180.1:32141
备机:172.16.180.2:32142
instance_name:WWDMDB

—主库关机备份
backup database ‘/dm8/dmdata/WWDMDB/dm.ini’ backupset ‘/dm8/dmbak/full_backup_2024’;

—备库恢复:
restore database ‘/dm8/dmdata/WWDMDB/dm.ini’ from backupset ‘/dm8/dmbak/full_backup_2024’;
recover database ‘/dm8/dmdata/WWDMDB/dm.ini’ from backupset ‘/dm8/dmbak/full_backup_2024’;
recover database ‘/dm8/dmdata/WWDMDB/dm.ini’ update db_magic;

—配置相关:

检查下现有配置文件对应参数值

grep INSTANCE_NAME dm.ini
grep PORT_NUM dm.ini
grep DW_INACTIVE_INTERVAL dm.ini
grep ALTER_MODE_STATUS dm.ini
grep ENABLE_OFFLINE_TS dm.ini
grep MAL_INI dm.ini
grep ARCH_INI dm.ini
grep RLOG_SEND_APPLY_MON dm.ini

配置主库dm.ini

sed -i “s/INSTANCE_NAME = DMSERVER/INSTANCE_NAME = WWDMDB_01/g” dm.ini
sed -i “s/PORT_NUM = 5236/PORT_NUM = 32141/g” dm.ini
sed -i ‘s/DW_INACTIVE_INTERVAL = 60/DW_INACTIVE_INTERVAL = 60/g’ dm.ini
sed -i ‘s/ALTER_MODE_STATUS = 1/ALTER_MODE_STATUS = 0/g’ dm.ini
sed -i ‘s/ENABLE_OFFLINE_TS = 1/ENABLE_OFFLINE_TS = 2/g’ dm.ini
sed -i ‘s/MAL_INI = 0/MAL_INI = 1/g’ dm.ini
sed -i ‘s/ARCH_INI = 0/ARCH_INI = 1/g’ dm.ini
sed -i ‘s/RLOG_SEND_APPLY_MON = 64/RLOG_SEND_APPLY_MON = 64/g’ dm.ini

配置备库dm.ini

sed -i “s/INSTANCE_NAME = DMSERVER/INSTANCE_NAME = WWDMDB_02/g” dm.ini
sed -i “s/PORT_NUM = 5236/PORT_NUM = 32142/g” dm.ini
sed -i ‘s/DW_INACTIVE_INTERVAL = 60/DW_INACTIVE_INTERVAL = 60/g’ dm.ini
sed -i ‘s/ALTER_MODE_STATUS = 1/ALTER_MODE_STATUS = 0/g’ dm.ini
sed -i ‘s/ENABLE_OFFLINE_TS = 1/ENABLE_OFFLINE_TS = 2/g’ dm.ini
sed -i ‘s/MAL_INI = 0/MAL_INI = 1/g’ dm.ini
sed -i ‘s/ARCH_INI = 0/ARCH_INI = 1/g’ dm.ini
sed -i ‘s/RLOG_SEND_APPLY_MON = 64/RLOG_SEND_APPLY_MON = 64/g’ dm.ini

INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 32142 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

配置dmmal.ini文件

MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间

[MAL_INST1]
MAL_INST_NAME = WWDMDB_01 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.180.1 #MAL系统监听TCP连接的IP地址
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.180.1 #实例的对外服务IP地址
MAL_INST_PORT = 32141 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端口

[MAL_INST2]
MAL_INST_NAME = WWDMDB_02
MAL_HOST = 172.16.180.2
MAL_PORT = 61142
MAL_INST_HOST = 172.16.180.2
MAL_INST_PORT = 32142
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

主配置dmarch.ini文件

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = WWDMDB_02 #实时归档目标实例名

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

备配置dmarch.ini文件

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = WWDMDB_01 #实时归档目标实例名

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

配置dmwatcher.ini文件

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/WWDMDB/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

配置确认监视器

vi dmmonitor_auto.ini
vi dmmonitor_manual.ini

自动监视器

MON_DW_CONFIRM = 1 #确认监视器
MON_LOG_PATH = /dm8/dmmonitor/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 172.16.180.1:52141
MON_DW_IP = 172.16.180.2:52142

配置手动监视器

MON_DW_CONFIRM = 0 #普通监视器
MON_LOG_PATH = /dm8/dmmonitor/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 172.16.180.1:52141
MON_DW_IP = 172.16.180.2:52142

配置服务

—主机:
cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -p WWDMDB_01 -dm_ini /dm8/dmdata/WWDMDB/dm.ini -m mount
./dm_service_installer.sh -t dmwatcher -p WWDMDB_01 -watcher_ini /dm8/dmdata/WWDMDB/dmwatcher.ini

—备机
./dm_service_installer.sh -t dmserver -p WWDMDB_02 -dm_ini /dm8/dmdata/WWDMDB/dm.ini -m mount
./dm_service_installer.sh -t dmwatcher -p WWDMDB_02 -watcher_ini /dm8/dmdata/WWDMDB/dmwatcher.ini

启动服务

—主机
DmServiceWWDMDB_01 start
—备机
DmServiceWWDMDB_02 start

设置参数

—主
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

./dm_service_installer.sh -t dmmonitor -p GRP1 -monitor_ini /dm8/dmmonitor/dmmonitor_auto.ini

—备
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
alter database standby;
错的

启动守护进程

DmWatcherServiceWWDMDB_01 start
DmWatcherServiceWWDMDB_02 start

启动数据库并修改参数

DmServiceWWDMDB_01 restart

DmServiceWWDMDB_02 restart

配置备份

1) 全量备份作业:
SELECT SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,’/dm8/dmbak’);
call SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB(‘full_bak’,1,0,’’,0,0,’’,0,’’);
call SP_JOB_CONFIG_START(‘full_bak’);
call SP_ADD_JOB_STEP(‘full_bak’, ‘fbak’, 6, ‘01000000/dm8/dmbak/full_bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘full_bak’, ‘meizhou’, 1, 2, 1, 1, 0, ‘02:00:00’, NULL, ‘2020-07-08 11:39:58’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘full_bak’);

2)增量备份
call SP_CREATE_JOB(‘incre_bak’,1,0,’’,0,0,’’,0,’’);
call SP_JOB_CONFIG_START(‘incre_bak’);
call SP_ADD_JOB_STEP(‘incre_bak’, ‘incre_bak’, 6, ‘40000000/dm8/dmbak/full_bak|/dmbak/incr_bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘incre_bak’, ‘tian’, 1, 2, 1, 126, 0, ‘02:00:00’, NULL, ‘2022-10-26 11:39:58’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘incre_bak’);

3)定期清理作业
call SP_CREATE_JOB(‘bak_clear’,1,0,’’,0,0,’’,0,‘每天删除30天前的备份’);
call SP_JOB_CONFIG_START(‘bak_clear’);
call SP_ADD_JOB_STEP(‘bak_clear’, ‘del_bak’, 0, ‘SF_BAKSET_BACKUP_DIR_ADD(’‘DISK’’,’’/dm8/dmbak/full_bak’’);SF_BAKSET_BACKUP_DIR_ADD(’‘DISK’’,’’/dm8/dmbak/incr_bak’’); CALL SP_DB_BAKSET_REMOVE_BATCH(’‘DISK’’,SYSDATE-30);’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘bak_clear’, ‘diaodu_del’, 1, 1, 1, 0, 0, ‘03:00:00’, NULL, ‘2020-06-25 22:54:03’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘bak_clear’);

4)查看备份
select NAME,ENABLE,USERNAME,VALID,DESCRIBE from SYSJOB.SYSJOBS;
select NAME,ENABLE,TYPE,FREQ_INTERVAL,FREQ_MINUTE_INTERVAL,STARTTIME,SCHNAME, TRIGNAME,VALID from sysjob.SYSJOBSCHEDULES;

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服