注册
DSC集群动态添加实时DSC备库
培训园地/ 文章详情 /

DSC集群动态添加实时DSC备库

猴小侯￿ 2026/01/04 52 0 0
  1. 环境准备
    准备两套dsc集群:
    主库:
    节点一:
    业务网:30.30.30.221 心跳网:10.77.18.71
    备库:
    节点二:
    业务网:30.30.30.222 心跳网:10.77.18.72
    备库:
    节点一:
    业务网:30.30.30.223 心跳网:10.77.18.73
    备库:
    节点二:
    业务网:30.30.30.224 心跳网:10.77.18.74
  2. 主库-DSC集群操作
    2.1 查看主库运行状态,检查归档是否开启
    1)登录dmcssm /dm/dsc_config/dmcssm.ini ,输入show,查看当前集群运行状态
    image.png
    2)登录disql,执行sql,查看归档是否开启
    select * from v$dm_arch_ini;
    image.png
    2.2 修改dm.ini文件
    登录disql,执行如下sql:
    SP_SET_PARA_VALUE (1,'DW_INACTIVE_INTERVAL',60);
    SP_SET_PARA_VALUE (1,'ALTER_MODE_STATUS',0);
    SP_SET_PARA_VALUE (1,'ENABLE_OFFLINE_TS',2);
    image.png
    2.3 修改dmmal
    2.3.1 修改DSC集群mal信息—DSC两个节点都执行
    1)在节点一上配置DSC1的mal信息:
    查看当前mal信息:select * from v$dm_mal_ini;
    image.png
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_HOST','10.77.18.71');
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_PORT',5236);
    --配置MAL_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC1','MAL_DW_PORT',7623);
    --配置MAL_INST_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_DW_PORT',7723);
    image.png
    2)在节点一上配置DSC2的mal信息:
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_HOST','10.77.18.72');
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_PORT',5236);
    --配置MAL_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC2','MAL_DW_PORT',7623);
    --配置MAL_INST_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_DW_PORT',7723);
    image.png
    3)登录节点2,查看当前mal信息:select * from v$dm_mal_ini;
    image.png
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_HOST','10.77.18.71');
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_PORT',5236);
    --配置MAL_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC1','MAL_DW_PORT',7623);
    --配置MAL_INST_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC1','MAL_INST_DW_PORT',7723);
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_HOST','10.77.18.72');
    --配置MAL_INST_HOST,若已经配置可以跳过执行
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_PORT',5236);
    --配置MAL_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC2','MAL_DW_PORT',7623);
    --配置MAL_INST_DW_PORT,若已经配置可以跳过执行,需要确保端口未被占用
    SP_MAL_INST_MODIFY('DSC2','MAL_INST_DW_PORT',7723);
    image.png
    2.3.2 添加备库mal信息—DSC两个节点都执行
    1)登录disql,执行如下sql,两个节点都需要执行:
    SF_MAL_CONFIG(1,0);
    SF_MAL_INST_ADD('MAL_INST2','DSC3','30.30.30.223',9340,'10.77.18.73',5236,7623,0,7723); SF_MAL_INST_ADD('MAL_INST3','DSC4','30.30.30.224',9340,'10.77.18.74',5236,7623,0,7723);
    SF_MAL_CONFIG_APPLY();
    SF_MAL_CONFIG(0,0);
    image.png
    image.png
    2)查看两个节点的dmmal.ini文件:
    image.png
    2.4 修改dmarch
    1)两个节点都需要执行:
    ALTER DATABASE ADD ARCHIVELOG 'DEST=DSC3/DSC4,TYPE=REALTIME';
    image.png
    image.png
    2)查看dmarch.ini文件
    image.png
    2.5 配置dmwatcher.ini
    DSC1:
    [GRP_DSC_DSC]
    DW_TYPE = GLOBAL #全局守护类型
    DW_MODE = MANUAL #手动切换模式
    DW_ERROR_TIME = 60 #远程守护进程故障认定时间
    INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
    INST_ERROR_TIME = 35 #本地实例故障认定时间
    INST_OGUID = 71727374 #守护系统唯一 OGUID 值
    INST_INI = /dm/dsc_config/DSC1/dm.ini #dm.ini 配置文件路径
    DCR_INI =/dm/dsc_config/dmdcr.ini #dmdcr.ini 配置文件路径
    INST_STARTUP_CMD = /dm/dmdbms/bin/DmServiceDSC1 start #命令行方式启动
    INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
    RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
    RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

DSC2:
[GRP_DSC_DSC]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_OGUID = 71727374 #守护系统唯一 OGUID 值
INST_INI = /dm/dsc_config/DSC2/dm.ini #dm.ini 配置文件路径
DCR_INI =/dm/dsc_config/dmdcr.ini #dmdcr.ini 配置文件路径
INST_STARTUP_CMD = /dm/dmdbms/bin/DmServiceDSC2 start #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
2.6 设置OGUID
连接dsc集群任意节点执行:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(71727374);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
image.png
3. 备库-DSC集群操作
3.1 修改dmini
SP_SET_PARA_VALUE (1,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (1,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (1,'ENABLE_OFFLINE_TS',2);
image.png
3.2 修改dmmal文件
将主库集群的dmmal文件拷贝到备库两个节点
3.3 修改dmarch文件
1)备库节点一:vi dmarch.ini
ARCH_WAIT_APPLY=0
ARCH_LOCAL SHARE=1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST =+DMARCH/LOCAL_ARCH_DSC3
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC4
ARCH_INCOMING_PATH =+DMARCH/LOCAL_ARCH_DSC4
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC1/DSC2
2)备库节点二:vi dmarch.ini
ARCH_WAIT_APPLY=0
ARCH_LOCAL SHARE=1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST =+DMARCH/LOCAL_ARCH_DSC4
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC3
ARCH_INCOMING_PATH =+DMARCH/LOCAL_ARCH_DSC3
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC1/DSC2
3.4 配置dmwatcher.ini
1)备库节点一DSC3:
[GRP_DSC_DSC]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_OGUID = 71727374 #守护系统唯一 OGUID 值
INST_INI = /dm/dsc_config/DSC3/dm.ini #dm.ini 配置文件路径
DCR_INI =/dm/dsc_config/dmdcr.ini #dmdcr.ini 配置文件路径
INST_STARTUP_CMD = /dm/dmdbms/bin/DmServiceDSC3 start #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

2)备库节点二DSC4:
[GRP_DSC_DSC]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_OGUID = 71727374 #守护系统唯一 OGUID 值
INST_INI = /dm/dsc_config/DSC4/dm.ini #dm.ini 配置文件路径
DCR_INI =/dm/dsc_config/dmdcr.ini #dmdcr.ini 配置文件路径
INST_STARTUP_CMD = /dm/dmdbms/bin/DmServiceDSC4 start #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.5 设置OGUID
1)连接dsc集群任意节点执行:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(71727374);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2)调整备库的dm.ini文件中的ARCH_INI=1参数,通过dmcssm监视器停止数据库服务
4. 备份还原
4.1 在主节点上进行备份
SP_SET_PARA_VALUE(1,'BAK_USE_AP',2);
backup database BACKUPSET '/dm/bak';
scp -r bak/ dmdba@10.77.18.73:/dm/
4.2 在备库的控制节点上进行还原
RESTORE DATABASE '/dm/dsc_config/DSC3/dm.ini' FROM BACKUPSET '/dm/bak'
RECOVER DATABASE '/dm/dsc_config/DSC3/dm.ini' FROM BACKUPSET '/dm/bak'
RECOVER DATABASE '/dm/dsc_config/DSC3/dm.ini' UPDATE DB_MAGIC
image.png
4.3 以mount方式启动备库
1)修改服务名文件启动模式:
vim /dm/dmdbms/bin/DmServiceDSC3
vim /dm/dmdbms/bin/DmServiceDSC4
调整数据库启动模式为mount:
START_MODE = mount
2)通过dmcssm启动数据库服务:
./dmcssm /dm/dsc_config/dmcssm.ini
ep startup GRP_DSC4
数据库启动后,继续在dmcssm监控界面输入show,查看状态
image.png
5. 修改服务模式
1)修改主库DSC集群,在其中一个节点执行:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE Primary force;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2)修改备库DSC集群,在其中一个节点执行:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
6. 启动守护进程,配置监控查看集群状态
1)注册守护服务,启动四个节点的守护进程
使用root账号,cd /dm/dmdbms/
节点一:
./dm_service_installer.sh -t dmwatcher -p DSC1 -watcher_ini /dm/dsc_config/DSC1/dmwatcher.ini
节点二:
./dm_service_installer.sh -t dmwatcher -p DSC2 -watcher_ini /dm/dsc_config/DSC2/dmwatcher.ini
节点三:
./dm_service_installer.sh -t dmwatcher -p DSC3 -watcher_ini /dm/dsc_config/DSC3/dmwatcher.ini
节点四:
./dm_service_installer.sh -t dmwatcher -p DSC4 -watcher_ini /dm/dsc_config/DSC4/dmwatcher.ini
2)登录dmdba账号,cd /dm/dmdbms/bin,启动守护服务:
节点一:
./DmWatcherDSC1 start
节点二:
./DmWatcherDSC2 start
节点三:
./DmWatcherDSC3 start
节点四:
./DmWatcherDSC4 start
3)查看集群状态
配置监控配置文件:vi /dm/dsc_config/dmmonitor.ini
MON_DW_CONFIRM = 0 #0为非确认,1为确认
MON_LOG_PATH = /dm/log/monitor_log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 64 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 0 #日志上限,单位MB

[GRP_DSC_DSC]
MON_INST_OGUID = 71727374 #组GDW1的唯一OGUID 值
MON_DW_IP = 10.77.18.71:7623/10.77.18.72:7623
MON_DW_IP = 10.77.18.73:7623/10.77.18.74:7623
登录监视器,主备集群状态正常:
cd /dm/dmdbms/bin
./dmmonitor /dm/dsc_config/dmmonitor.ini
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服