以下操作全部由dmdba用户操作,共享集群可以参考我上篇文章主备集群的搭建
以下为我的配置,DSC集群已经搭建完成。并且备库也安装完数据库,初始化完实例
节点名称 | IP Addr | 数据版本 |
DSC机器一 | 192.168.75.101(内外网) | dm8_20240314_x86_kylin10_64.ios |
DSC机器二 | 192.168.75.202(内外网) | dm8_20240314_x86_kylin10_64.ios |
备机 | 192.168.75.33(内外网) | dm8_20240314_x86_kylin10_64.ios |
数据库相关文件路径:
路径 | |
数据库安装路径 | /home/dmdba/dmdbms |
配置文件路径 | /home/data |
实例初始化后配置文件路径 | DSC机器一:/home/data/dsc1 DSC机器二:/home /data/dsc2 备机:/home/data/DAMENG/ |
1.配置dm.ini文件
1.dsc节点一
cd /home/data/dsc1
vim dm.ini
DSC节点1:
INSTANCE_NAME = DSC0 #不用改动
PORT_NUM = 5237 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
2.dsc节点二
cd /home/data/dsc2
vim dm.ini
DSC节点2:
INSTANCE_NAME = DSC1 #不用改动
PORT_NUM = 5237 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
3.备机
cd /home/data/DAMENG/
vim dm.ini
备机
INSTANCE_NAME = DMSERVER #不用改动
PORT_NUM = 5237 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
2.配置dmarch.ini
vim /home/data/dsc1/dmarch.ini
1.dsc1
ARCH_LOCAL_SHARE = 1 #DMDSC 集群本地归档是否共享给远程节点作为远程归档。0 表示不共享,1 表示共享,默认值>为 0。
ARCH_LOCAL_SHARE_CHECK=0 #是否进行 LOCAL 归档和 REMOTE 归档路径校验,默认值等于 ARCH_LOCAL_SHARE,1表示会校验。
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/LOCAL_ARCH_DSC0 #注意dsc集群的实例一名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch #注意dsc备份目录
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/LOCAL_ARCH_DSC1 #注意dsc集群的实例二名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER #实时归档目标实例名
2.dsc2
vim /home/data/dsc2/dmarch.ini
ARCH_LOCAL_SHARE = 1 #DMDSC 集群本地归档是否共享给远程节点作为远程归档。0 表示不共享,1 表示共享,默认值为 0。
ARCH_LOCAL_SHARE_CHECK=0 #是否进行 LOCAL 归档和 REMOTE 归档路径校验,默认值等于 ARCH_LOCAL_SHARE,1表示会校验。
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/LOCAL_ARCH_DSC1 #注意dsc集群的实例二名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch #注意dsc备份目录
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMDATA/LOCAL_ARCH_DSC0 #注意dsc集群的实例一名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER #实时归档目标实例名
3.备机
vim /home/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DSC0 #实时归档目标实例名,以DSC主库实际情况为准
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DSC1 #实时归档目标实例名,以DSC主库实际情况为准
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch/ #本地归档文件存放路径
ARCH_FILE_SIZE = 2048 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 1048576 #单位Mb,0表示无限制,范围 1024~2147483647M
3.配置dmmal.ini文件
1.dsc1
vim /home/data/dsc1/dmmal.ini
MAL_CHECK_INTERVAL =87 #线程检测间隔
MAL_CONN_FAIL_INTERVAL=180 #检测线程认定链路断开的时间
MAL_SYS_BUF_SIZE =600 #MAL系统总内存大小限制
MAL_BUF_SIZE =300 #单个MAL缓存大小限制
MAL_VPOOL_SIZE =500 #MAL系统使用的内存初始化大小
MAL_COMPRESS_LEVEL =0 #MAL消息压缩等级,0代表不进行消息压缩
[MAL_INST0]
MAL_INST_NAME = DSC0
MAL_HOST = 192.168.75.101
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.101
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.75.202
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.202
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST2]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.75.33
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.33
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
2.dsc2
vim /home/data/dsc2/dmmal.ini
MAL_CHECK_INTERVAL =87 #线程检测间隔
MAL_CONN_FAIL_INTERVAL=180 #检测线程认定链路断开的时间
MAL_SYS_BUF_SIZE =600 #MAL系统总内存大小限制
MAL_BUF_SIZE =300 #单个MAL缓存大小限制
MAL_VPOOL_SIZE =500 #MAL系统使用的内存初始化大小
MAL_COMPRESS_LEVEL =0 #MAL消息压缩等级,0代表不进行消息压缩
[MAL_INST0]
MAL_INST_NAME =DSC0
MAL_HOST = 192.168.75.101
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.101
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.75.202
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.202
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST2]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.75.33
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.33
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
3.备机
vim /home/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL =87 #线程检测间隔
MAL_CONN_FAIL_INTERVAL=180 #检测线程认定链路断开的时间
MAL_SYS_BUF_SIZE =600 #MAL系统总内存大小限制
MAL_BUF_SIZE =300 #单个MAL缓存大小限制
MAL_VPOOL_SIZE =500 #MAL系统使用的内存初始化大小
MAL_COMPRESS_LEVEL =0 #MAL消息压缩等级,0代表不进行消息压缩
[MAL_INST0]
MAL_INST_NAME =DSC0
MAL_HOST = 192.168.75.101
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.101
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.75.202
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.202
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST2]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.75.33
MAL_PORT = 31246
MAL_INST_HOST = 192.168.75.33
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
4.配置dmwatcher.ini
1.dsc1
vim /home/data/dsc1/dmwatcher.ini
[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/data/dsc1/dm.ini #路径以实际为准
DCR_INI= /home/data/dmdcr.ini #路径以实际为准
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmDSCService #路径以实际为准
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
2.dsc2
vim /home/data/dsc2/dmwatcher.ini
[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/data/dsc2/dm.ini #路径以实际为准
DCR_INI= /home/data/dmdcr.ini #路径以实际为准
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmDSCService #路径以实际为准
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.备机
vim /home/data/DAMENG/dmwatcher.ini
[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/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDMSERVER#命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
5.配置监视器
vim /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dmdata #根据实际环境修改路径
MON_LOG_INTERVAL = 0
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.75.101:52141/192.168.75.202:52141
MON_DW_IP = 192.168.75.33:52141
7.备份还原
这里需要保证DSC集群的CSS服务与ASM服务正常运行,关闭DSC服务
建议把DSC集群的自动拉起服务关闭
dsc1
vim /home/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
#DMDCR_ASM_RESTART_INTERVAL = 10
#DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 30
#DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/data/dsc1/dm.ini dcr_ini=/home/data/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
dsc2
vim /home/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
#DMDCR_ASM_RESTART_INTERVAL = 10
#DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 30
#DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/data/dsc2/dm.ini dcr_ini=/home/data/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
1.主库脱机备份
-
dsc1
cd /home/dmdba/dmdbms/bin
./DmDSCService stop
-
dsc2
cd /home/dmdba/dmdbms/bin
./DmDSCService stop
-
dsc1
cd /home/dmdba/dmdbms/bin
./dmrman DCR_INI=/home/data/dmdcr.ini
backup database '/home/data/dsc1/dm.ini' backupset '/home/data/bak'
-
备机
cd /home/dmdba/dmdbms/bin
./dmrman
restore database '/home/data/DAMENG/dm.ini' from backupset '/home/data/bak'
recover database '/home/data/DAMENG/dm.ini' from backupset '/home/data/bak'
recover database '/home/data/DAMENG/dm.ini' update DB_MAGIC
8.修改mount启动
-
dsc1
cd /home/dmdba/dmdbms/bin
vim DmDSCService
START_MODE=mount ##修改为mount
./DmDSCService start
-
dsc2
cd /home/dmdba/dmdbms/bin
vim DmDSCService
START_MODE=mount ##修改为mount
./DmDSCService start
-
备机
cd /home/dmdba/dmdbms/bin
vim DmServiceDMSERVER
START_MODE=mount ##修改为mount
./DmServiceDMSERVER start
9.修改OGUID和数据库模式
1.dsc1
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA:5237
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);
2.dsc2
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA:5237
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);
3.备库
cd /home/dmdba/dmdbms/bin
./disql
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
ALTER DATABASE standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
10.启动守护进程
1.编写启动脚本
dsc1
cd /home/dmdba/dmdbms/bin/service_template/
cp DmWatcherService ../
cd ..
vim DmWatcherService
INI_PATH="/home/data/dsc1/dmwatcher.ini" ##修改路径
dsc2
cd /home/dmdba/dmdbms/bin/service_template/
cp DmWatcherService ../
cd ..
vim DmWatcherService
INI_PATH="/home/data/dsc1/dmwatcher.ini" ##修改路径
备机
cd /home/dmdba/dmdbms/bin/service_template/
cp DmWatcherService ../
cd ..
vim DmWatcherService
INI_PATH="/home/data/DAMENG/dmwatcher.ini" ##修改路径
./DmWatcherService start ##先启动DSC集群的守护进程,再启动备机的守护进程
2.启动监视器查看状态
cd /home/dmdba/dmdbms/bin/dmmonitor.ini
./dmmonitor dmmonitor.ini