注册
dm8两节点 DSC + 实时备机集群安装部署
专栏/技术分享/ 文章详情 /

dm8两节点 DSC + 实时备机集群安装部署

。。 2025/11/21 335 0 0
摘要

一、安装前准备

1.1 实时备机磁盘规划

名称 拟定配置 备注
数据库安装目录 /dm/dmdbms 数据库安装路径,存放数据库运行日志等信息
数据库备份目录 /dm/dmbak 用于存放数据库备份文件
数据库 SQL 日志目录 /dm/dmsqllog 用于存放数据库 dmsql 日志
集群配置文件目录 /dm/dsc_config 用于存放数据库集群配置文件
系统 core 目录 /dm/core 用于存放系统的 core 文件
数据目录 /dmdata 根据库数据量大小,申请磁盘
数据库归档目录 /dmarch 用于存放归档日志
监控文件 nmon 目录 /dm/nmon_output 用于存放服务器性能监控 nmon 日志文件

1.2 实时备机端口规划

数据库相关配置 信息
数据库服务器名称 db2
业务IP 192.168.4.22
实例名 DW01
PORT_NUM 5236
MAL_PORT 6536
MAL_DW_PORT 52141
MAL_INST_DW_PORT 5276

二、搭建步骤

2.1 搭建2节点DSC集群

参考DM8数据共享集群手册或dm8DSC双节点集群搭建完成搭建并检验。搭建完成后,正常退出DMDSC集群的两个dmserver节点实例,不需要退出dmcssdmasmsvr

2.2 备份 DSC 集群数据

在DMDSC集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
备注:dmrman的use_ap参数可以参考DM8备份与还原手册,当值位2时,采用无辅助进程方式,由DMRMAN进程自身完成备份还原,不依赖DMAP服务;配置成2的情况下,不能执行第三方备份(即指定DEVICE TYPE为TAPE)
节点1:(db0)

# 启动dmrman
./dmrman use_ap=2 dcr_ini=/home/dmdba/dsc_config/dmdcr.ini

# 脱机备份DMDSC集群 
RMAN>BACKUP DATABASE '/home/dmdba/dsc_config/DSC01_conf/dm.ini' FULL BACKUPSET '/home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC'; 

# 检查备份文件有效性
RMAN> check backupset '/home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC';

# 将备份文件发送到db2机器
[dmdba@~]# scp -r /home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC dmdba@192.168.4.22:/home/dmdba/dmbak/

2.3 备机创建用户、目录、安装数据库

db2 机器将数据库安装在/home/dmdba/dmdbms目录下,并初始化实例到/dmdata目录,且初始化实例参数应与DSC集群初始化参数保持一致

./dminit path=/home/dmdba/data/EP01/ SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025

2.4 实时备机上还原 DSC 集群数据

##登录备机使用 rman 进行还原(注意:备机初始化参数要与主库一致)
./dmrman 

RMAN> check backupset '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RESTORE DATABASE  '/home/dmdba/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RECOVER DATABASE '/home/dmdba/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RECOVER DATABASE '/home/dmdba/data/EP01/DAMENG/dm.ini' UPDATE DB_MAGIC;

2.5 修改db0和db1的dm.ini

db0和db1

cd /home/dmdba/dsc_config/DSC01_conf/
vi dm.ini

# 修改部分
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 次的日志发送信息

db2

cd /home/dmdba/data/EP01/DAMENG
vi dm.ini

# 修改部分
INSTANCE_NAME = DW01
PORT_NUM = 5238 #数据库实例监听端口 
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 次的日志发送信息

2.6 配置dmmal.ini

db0、db1 和 db2 机器配置 dmmal.ini(dmmal.ini 和 dm.ini 放在同一路径下),三台机器的 dmmal.ini 文件内容必须一致。

MAL_CHECK_INTERVAL=30
MAL_CONN_FAIL_INTERVAL=10
MAL_SYS_BUF_SIZE=6000
MAL_BUF_SIZE=3000
MAL_VPOOL_SIZE=5000
MAL_COMPRESS_LEVEL=0
[MAL_INST0]
MAL_INST_NAME   = DSC01
MAL_HOST   = 192.168.4.20
MAL_PORT   = 6536
MAL_INST_HOST            = 192.168.4.20
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =1 #值一样,dmwatcher之间和dmserver之间的通信使用的是MAL_HOST,值不一致则用的是MAL_INST_HOST。
[MAL_INST1]
MAL_INST_NAME            = DSC02
MAL_HOST                 = 192.168.4.21
MAL_PORT                 = 6537
MAL_INST_HOST            = 192.168.4.21
MAL_INST_PORT            = 5237
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =1
[MAL_INST2]
MAL_INST_NAME            = DW01
MAL_HOST                 = 192.168.4.22
MAL_PORT                 = 6538
MAL_INST_HOST            = 192.168.4.22
MAL_INST_PORT            = 5238
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =2

2.7 配置dmarch.ini

db0配置

[ARCHIVE_LOCAL1] 
 ARCH_TYPE   = LOCAL  
 ARCH_DEST   = +DMDATA/DSC/DSC01/arch 
 ARCH_FILE_SIZE  = 128  
 ARCH_SPACE_LIMIT = 0  
[ARCHIVE_REMOTE] 
 ARCH_TYPE   = REMOTE 
 ARCH_DEST   = DSC02 
 ARCH_INCOMING_PATH = +DMDATA/DSC/DSC02/arch 
[ARCHIVE_REALTIME]  
 ARCH_TYPE    = REALTIME 
 ARCH_DEST    = DW01 

db1配置

[ARCHIVE_LOCAL1] 
 ARCH_TYPE   = LOCAL  
 ARCH_DEST   = +DMDATA/DSC/DSC02/arch 
 ARCH_FILE_SIZE  = 128  
 ARCH_SPACE_LIMIT = 0  
[ARCHIVE_REMOTE] 
 ARCH_TYPE   = REMOTE 
 ARCH_DEST   = DSC01 
 ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch
[ARCHIVE_REALTIME]  
 ARCH_TYPE    = REALTIME 
 ARCH_DEST    = DW01

db2配置

[ARCHIVE_LOCAL1] 
 ARCH_TYPE   = LOCAL 
 ARCH_DEST   = /home/dmdba/dmarch 
 ARCH_FILE_SIZE  = 128 
 ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME1] 
 ARCH_TYPE   = REALTIME 
 ARCH_DEST   = DSC01/DSC02  

2.8 配置dmwatcher.ini

db0

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/dsc_config/DSC01_conf/dm.ini
DCR_INI= /home/dmdba/dmdbms/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /home/dmdaba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

db1

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dsc_config/DSC02_conf/dm.ini
DCR_INI= /home/dmdba/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /home/dmdaba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

db2

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

2.9 配置 DSC+ 实时备机监视器

在db0编辑dmmonitor.ini

MON_DW_CONFIRM         = 0
MON_LOG_PATH           = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL       = 60
MON_LOG_FILE_SIZE      = 64 
MON_LOG_SPACE_LIMIT    = 0 
[GRP1]
MON_INST_OGUID    = 453331
MON_DW_IP         = 192.168.4.20:52141/192.168.4.21:52141
MON_DW_IP         = 192.168.4.22:52141

2.10 启动主备库

注意需要以mount方式启动

./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC01_conf/dm.ini mount
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC02_conf/dm.ini mount
./dmserver /home/dmdba/data/EP01/DAMENG/dm.ini mount

2.11 设置 OGUID

启动disql链接DMDSC集群中的任意一个节点,设置DMDSC主库的OGUID值

./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5236
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(453331); 
SQL> alter database primary; 
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);

disql连接单节点备库,设置备库OGUID

./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5238
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(453331); 
SQL> alter database standby; 
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);

2.12 配置db2的DSC监视器(选做)

vi /home/dmdba/dmdbms/bin/dmcssm.ini

CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.4.20:9836
CSSM_CSS_IP = 192.168.4.21:9837
CSSM_LOG_PATH = /home/dmdba/dm/cssmlog
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0

启停集群

在启动DSC+实时主备集群之前,需要先启动DSC集群

# 双节点执行
./dmcss DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
# 双节点执行
./dmasmsvr DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
# 节点1和节点2分别启动数据库实例
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC01_conf/dm.ini mount
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC02_conf/dm.ini mount
# 节点3启动数据库实例
./dmserver /home/dmdba/data/EP01/DAMENG/dm.ini mount

三个节点分别启动守护进程

./dmwatcher /home/dmdba/dsc_config/DSC01_conf/dmwatcher.ini 
./dmwatcher /home/dmdba/dsc_config/DSC02_conf/dmwatcher.ini 
./dmwatcher /home/dmdba/data/EP01/DAMENG/dmwatcher.ini
# db0启动监视器
./dmmonitor path=/home/dmdba/dsc_config/DSC01_conf/dmmonitor.ini 
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服