注册
DSC+DW部署
技术分享/ 文章详情 /

DSC+DW部署

不夜侯 2026/07/31 172 0 0

部署准备

准备好一个DSC集群和单机部署:DSC部署过程可以见我之前发的文章

开始部署

DW部署

在DSC主机上备份

--开启DmAP服务
./DmAPService start
--启动dmrman
./dmrman use_ap=2 dcr_ini=/data/dm8/dmdbms/config/dmdcr.ini
--做备份
RMAN>backup database '/data/dm8/dmdbms/config/db0_config/dm.ini' full backupset '/data/dm8/dmbak/fullbak_20260724';

 
--校验备份
check BACKUPSET  '/data/dm8/dmbak/fullbak_20260724'
显示successfully,即为备份集有效。

做完备份后把备份拷贝到异步备机上

scp  -r  /data/dm8/dmbak/fullbak_20260724 dmdba@192.168.247.139:/data/dm8/dmbak/

对异步备库进行脱机还原恢复

--开启dmrman
./dmrman USE_AP=2
--使用 DMDSC 库的备份集还原恢复到异步备库
check backupset '/data/dm8/dmbak/fullbak_20260724';
restore database '/data/dm8/dmdata/DSC/dm.ini' from backupset '/data/dm8/dmbak/fullbak_20260724';
recover database '/data/dm8/dmdata/DSC/dm.ini' from backupset '/data/dm8/dmbak/fullbak_20260724';
recover database '/data/dm8/dmdata/DSC/dm.ini' update db_magic;

配置dm.ini

依次配置DMDSC主库每个节点与异步备库的dm.ini文件

修改DSC0的dm.ini文件

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

修改DSC1的dm.ini文件

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

修改DSC_DW的dm.ini文件

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

配置dmmal.ini

在 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 DSC_DW 的配置项。
所有节点实例的 dmmal.ini 文件内容是一致的,配置完成后,拷贝到每个节点实例
dm.ini 中指定的 CONFIG_PATH 目录下

MAL_CHECK_INTERVAL = 87
MAL_CONN_FAIL_INTERVAL =33 
[MAL_INST0]
 MAL_INST_NAME = DSC0
 MAL_HOST = 192.168.247.137
 MAL_PORT = 11246
 MAL_INST_HOST = 192.168.247.137
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306
[MAL_INST1]
 MAL_INST_NAME = DSC1 
 MAL_HOST = 192.168.247.139
 MAL_PORT = 11246 
 MAL_INST_HOST = 192.168.247.139
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306
[MAL_INST2]
 MAL_INST_NAME = DSC_DW
 MAL_HOST = 192.168.247.138          # 采用心跳网时,不加MAGIC参数
 MAL_PORT = 11246
 MAL_INST_HOST = 192.168.247.138
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306

配置dmarch.ini

再次编辑各个节点的dmarch.ini,增加异步归档配置

修改DSC0的dmarch.ini

ARCH_LOCAL_SHARE=1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/DSC0/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DM_DATA/DSC1/arch
ARCH_FILE_SIZE = 1024

[ARCHIVE_ASYNC] 
ARCH_TYPE = ASYNC
ARCH_DEST = DSC_DW
ARCH_TIMER_NAME = RT_TIMER

修改DSC1的dmarch.ini

ARCH_LOCAL_SHARE=1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/DSC1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DM_DATA/DSC0/arch
ARCH_FILE_SIZE = 1024

[ARCHIVE_ASYNC] 
ARCH_TYPE = ASYNC
ARCH_DEST = DSC_DW
ARCH_TIMER_NAME = RT_TIMER

修改DSC_DW的dmarch.ini

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dm8/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240

配置dmtimer.ini

配置在DSC集群的两个节点dm.ini 中指定的 CONFIG_PATH 目录下

配置DSC0的dmtimer.ini

[RT_TIMER]  #和dmarch.ini中的ARCH_TIMER_NAME一致
TYPE = 2
 FREQ_MONTH_WEEK_INTERVAL = 1
 FREQ_SUB_INTERVAL = 0
 FREQ_MINUTE_INTERVAL = 0
 START_TIME = 01:00:00
 END_TIME = 01:00:10
 DURING_START_DATE = 2016-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 

配置DSC1的dmtimer.ini

[RT_TIMER]#和dmarch.ini中的ARCH_TIMER_NAME一致 
 TYPE = 2
 FREQ_MONTH_WEEK_INTERVAL = 1
 FREQ_SUB_INTERVAL = 0
 FREQ_MINUTE_INTERVAL = 0
 START_TIME = 01:00:00
 END_TIME = 01:00:10
 DURING_START_DATE = 2016-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

配置dmwatcher.ini

配置在每个节点dm.ini 中指定的 CONFIG_PATH 目录下

配置DSC0的dmwatcher.ini

[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 120
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 20
INST_INI = /data/dm8/dmdbms/config/db0_config/dm.ini
DCR_INI = /data/dm8/dmdbms/config/dmdcr.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /data/dm8/dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
DW_RECONNECT = 2        #让主节点coredump 结束前开始进行切主

配置DSC1的dmwatcher.ini

[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 120
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 20
INST_INI = /data/dm8/dmdbms/config/db1_config/dm.ini
DCR_INI = /data/dm8/dmdbms/config/dmdcr.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /data/dm8/dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
DW_RECONNECT = 2        #让主节点coredump 结束前开始进行切主

配置DSC_DW的dmwatcher.ini

[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 120
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 20
INST_INI = /data/dm8/dmdata/DSC/dm.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /data/dm8/dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
DW_RECONNECT = 2        #让主节点coredump 结束前开始进行切主

配置dmmonitor.ini

配置在备库的/data/dm8/dmdbms/bin目录下

MON_LOG_PATH = /data/dm8/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.247.137:11296/192.168.247.139:11296
MON_DW_IP = 192.168.247.138:11296

重启CSS和ASM

停止顺序:关闭DMSERVER集群组→关闭ASM集群组→关闭CSS集群组组
启动顺序:启动CSS集群组组→启动ASM集群组→启动DMSERVER集群组

启动主备库

启动DMDSC主库,两个节点都要改

DSC两个节点修改DmServiceDMS后台启动脚本,以mount状态启动
vi DmServiceDMS
把START_MODE=open改为START_MODE=mount
启动DMDSC主库数据库服务
./DmServiceDMS start

启动异步备库

修改DmServiceDMS后台启动脚本,以mount状态启动
vi  DmServiceDMS
把START_MODE=open改为START_MODE=mount
启动异步备库库数据库服务
DmServiceDMS start

设置OGUID

启动命令行工具 disql,连接 DMDSC 集群中的任意一个节点,设置 DMDSC 主库的OGUID 值。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

DIsql 连接异步备库,设置备库 OGUID。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

修改主备模式:

启动命令行工具 DIsql,连接 DMDSC 集群中的任意一个节点,修改 DMDSC 库为
Primary 模式。
SQL>ALTER DATABASE PRIMARY;
disql 连接异步备库,修改备库为 Standby 模式。
SQL>ALTER DATABASE STANDBY;

启动守护进程

在每个节点的目录/dmdbms/bin/service_template拷贝DmWatcherService文件到/ dmdbms/bin目录下,然后修改DmWatcherService中 INI_PATH为指定守护进程配置文件dmwatcher.ini的对应的路径。

cd /data/dm8/dmdbms/script/root
dsc0:
./dm_service_installer.sh -p DSC0 -t dmwatcher -watcher_ini  /data/dm8/dmdbms/config/dmwatcher.ini
dsc1:
./dm_service_installer.sh -p DSC1 -t dmwatcher -watcher_ini  /data/dm8/dmdbms/config/dmwatcher.ini
dsc2:
./dm_service_installer.sh -p DSC2 -t dmwatcher -watcher_ini  /data/dm8/dmdata/DSC/dmwatcher.ini

启动守护进程

①启动DSC0的守护进程
./DmWatcherServiceDSC0 start
②启动DSC1的守护进程
./DmWatcherServiceDSC1 start
③启动DSC_DW的守护进程
./DmWatcherServiceDSC2  start

确认数据库状态

  1. 登录disql,查看DMDSC主库两个节点是否为主库打开状态
  2. 登录disql,查看异步备库节点是否为备库打开状态

修改dmdcr.ini脚本

修改DMDSC两个节点上的dmdcr.ini文件,让dmcss自动拉起dmasm和dmserver服务,这样只需要分别在两台机器上启动dmcss服务即可拉起dmasm服务和dmserver服务
dsc0:

DMDCR_PATH     =/dev/ASMDISK/dmdcr
DMDCR_MAL_PATH =/data/dm8/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO   = 0
 
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /data/dm8/dmdbms/bin/dmasmsvr dcr_ini=/data/dm8/dmdbms/config/dmdcr.ini
 
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /data/dm8/dmdbms/bin/dmserver path=/data/dm8/dmdbms/config/db0_config/dm.ini dcr_ini=/data/dm8/dmdbms/config/dmdcr.ini
 
DMDCR_ASM_TRACE_LEVEL = 2
DMDCR_AUTO_OPEN_CHECK = 30
DMDCR_ASM_MAX_FILE_OPEN=4096
DMDCR_CRASH_CHECK_OPT_COUNT=30

dsc1:

DMDCR_PATH     =/dev/ASMDISK/dmdcr
DMDCR_MAL_PATH =/data/dm8/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO   = 1

DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /data/dm8/dmdbms/bin/dmasmsvr dcr_ini=/data/dm8/dmdbms/config/dmdcr.ini
 
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /data/dm8/dmdbms/bin/dmserver path=/data/dm8/dmdbms/config/db1_config/dm.ini dcr_ini=/data/dm8/dmdbms/config/dmdcr.ini
 
DMDCR_ASM_TRACE_LEVEL = 2
DMDCR_AUTO_OPEN_CHECK = 30
DMDCR_ASM_MAX_FILE_OPEN=4096
DMDCR_CRASH_CHECK_OPT_COUNT=30

启动监视器:

启动DSC监视器

cd /data/dm8/dmdbms/bin
./dmcssm INI_PATH=/data/dm8/dmdbms/config/dmcssm.ini

show

image.png

启动数据守护监视器

在异步备库服务器上

cd /data/dm8/dmdbms/bin
./dmmonitor dmmonitor.ini

show

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服