注册
数据守护(集群搭建+主备切换)实践
培训园地/ 文章详情 /

数据守护(集群搭建+主备切换)实践

say山 2025/06/26 166 0 0

dmwatch守护进程

dmwmon监视器

主库发送实时归档
image20250622171336510.png

# 部署DM数据守护的网络环境: -2台服务器(主备机) -1台服务器(监视器) 外部网络 #开始部署--环境规划如下 数据守护节点规划: zb1 192.168.136.132 ---主机 GRP1_RT_01 zb2 192.168.136.133 ---备机 GRP1_RT_03 zb3 192.168.136.134 ---监视器 数据守护端口规划: ./disql sysdba/Dameng123@localhost:5246 数据库名 实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT GRP1_RT_01 GRP1_RT_01 5246 45101 192.168.136.132 55101 65101 GRP1_RT_03 GRP1_RT_03 5246 45121 192.168.136.133 55121 65121 Dameng123 ----先初始化主备库实例,dbca建库,注意名称 或者命令行初始化命令如下: #图形化创建实例即可 主库(IP: 192.168.136.132 实例名:GRP1_RT_01): ./dminit path=/dm9/data DB_NAME=GRP1_RT_01 INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=8 EXTENT_SIZE=16 LOG_SIZE=500 CASE_SENSITIVE=Y SYSDBA_PWD=dameng123 备库(IP: 192.168.136.133 实例名:GRP1_RT_03): ./dminit path=/dm9/data DB_NAME=GRP1_RT_03 INSTANCE_NAME=GRP1_RT_03 PAGE_SIZE=8 EXTENT_SIZE=16 LOG_SIZE=500 CASE_SENSITIVE=Y SYSDBA_PWD=dameng123 --注意 dbca初始化数据库,在初始化过程中会注册数据库服务。如果用命令初始化需要自己手动注册服务,命令如下: 主库: /dm9/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm9/data/GRP1_RT_01/dm.ini 备库: /dm9/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_03 -dm_ini /dm9/data/GRP1_RT_03/dm/.ini --主备两台实例关掉 dmdba ./DmServiceGRP1_RT_01 stop ./DmServiceGRP1_RT_03 stop --对主机进行备份:dmdba ./dmrman CTLSTMT="BACKUP DATABASE '/dm9/data/GRP1_RT_01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm9/backup/BACKUP_FILE_01'" 或者bin下 ./dmrman执行双引号中内容即可 --从主传到备 备创建 /dm9/backup scp /dm9/backup/BACKUP_FILE_01/* 192.168.136.133:/dm9/backup --在备上进行恢复 ./dmrman CTLSTMT="RESTORE DATABASE '/dm9/data/GRP1_RT_03/dm.ini' FROM BACKUPSET '/dm9/backup'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm9/data/GRP1_RT_03/dm.ini' FROM BACKUPSET '/dm9/backup'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm9/data/GRP1_RT_03/dm.ini' UPDATE DB_MAGIC" --------主库primary配置------------ /dm9/data/GRP1_RT_01/dm.ini ---------- INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 5246 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 #不允许手工修改模式 ENABLE_OFFLINE_TS = 2 #不允许备库offline表空间 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64 --------------- 新建 dmmal.ini ------------ MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 MAL_HOST = 192.168.136.132 MAL_PORT = 55101 MAL_INST_HOST = 192.168.136.132 MAL_INST_PORT = 5246 MAL_DW_PORT = 65101 MAL_INST_DW_PORT = 45101 [MAL_INST2] MAL_INST_NAME = GRP1_RT_03 MAL_HOST = 192.168.136.133 MAL_PORT = 55121 MAL_INST_HOST = 192.168.136.133 MAL_INST_PORT = 5246 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121 ------------------ 新建 dmarch.ini #归档配置 (注:arch_dest备机写主机实例,主机写备机实例) ------------ [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_03 #写备机实例 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm9/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 ------------------------- dmwatcher.ini #守护进程 ---------------- [GRP1] DW_TYPE = GLOBAL DW_MODE = AUTO #生产中一般设定为手动,防止网络波动导致切换 DW_ERROR_TIME = 10 #故障认定时间 最好60,比告警高一点 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 453331 #标识,和备库一致 INST_INI = /dm9/data/GRP1_RT_01/dm.ini #主库 INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm9/bin/dmserver RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0 # 启动主库 ./dmserver /dm9/data/GRP1_RT_01/dm.ini mount 或者 cd /dm9/bin ./DmServiceGRP1_RT_01 mount #此时再开一个窗口查看主库和修改配置 ---------------- [dmdba@zb1 bin]$ ./disql sysdba/Dameng123@localhost:5246 服务器[localhost:5246]:处于普通配置状态 登录使用时间 : 6.770(ms) disql V8 SQL> ---------------- 修改主库的模式和设置oguid。 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); [dmdba@zb1 bin]$ ./disql sysdba/Dameng123@localhost:5246 服务器[localhost:5246]:处于主库配置状态 登录使用时间 : 3.355(ms) disql V8 SQL> -------------------------备库standby配置---------------------- standby ----------- /dm9/data/GRP1_RT_03/dm.ini ----------- INSTANCE_NAME = GRP1_RT_03 PORT_NUM = 5246 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64 -------------- dmmal.ini -------------- MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 MAL_HOST = 192.168.136.132 MAL_PORT = 55101 MAL_INST_HOST = 192.168.136.132 MAL_INST_PORT = 5246 MAL_DW_PORT = 65101 MAL_INST_DW_PORT = 45101 [MAL_INST2] MAL_INST_NAME = GRP1_RT_03 MAL_HOST = 192.168.136.133 MAL_PORT = 55121 MAL_INST_HOST = 192.168.136.133 MAL_INST_PORT = 5246 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121 --------------- dmarch.ini (注:arch_dest备机写主机实例,主机写备机实例) --------------- [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_01 #写主库 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm9/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 ----------------- dmwatcher.ini ----------------- [GRP1] DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 453331 INST_INI = /dm9/data/GRP1_RT_03/dm.ini #备库 INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm9/bin/dmserver RLOG_APPLY_THRESHOLD = 0 以 Mount 方式启动备库 ./dmserver /dm9/data/GRP1_RT_03/dm.ini mount 或者 cd /dm9/bin ./DmServiceGRP1_RT_03 mount ./disql sysdba/Dameng123@localhost:5246 设置备库模式和oguid值 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); [root@zb2 bin]# ./disql sysdba/Dameng123@localhost:5246 服务器[localhost:5246]:处于备库配置状态 登录使用时间 : 13.195(ms) disql V8 --启主备库的守护进程 启主库守护进程 [dmdba@/dm9/bin]#./dmwatcher /dm9/data/GRP1_RT_01/dmwatcher.ini DMWATCHER[4.0] V8 DMWATCHER[4.0] IS READY 启备库守护进程 [dmdba@/dm9/bin]#./dmwatcher /dm9/data/GRP1_RT_03/dmwatcher.ini DMWATCHER[4.0] V8 DMWATCHER[4.0] IS READY # 配置监视器 zb3主机 dmdba用户,新建一个/dm9/mon目录存放 [dmdba@zb3 mon]$ cat dmmonitor.ini MON_DW_CONFIRM = 1 # 1为确认模式(故障自动切换),0为监控模式(不自动切换) MON_LOG_PATH = /dm9/data/log MON_LOG_INTERVAL = 60 #记录日志间隔时间 MON_LOG_FILE_SIZE = 32 MON_LOG_SPACE_LIMIT = 0 [GRP1] #主备数据库的组名 ,可监控多个组 MON_INST_OGUID = 453331 MON_DW_IP = 192.168.136.132:65101 MON_DW_IP = 192.168.136.133:65121 --启动监视器查看监视状态 [dmdba@zb3 bin]$ ./dmmonitor /dm9/mon/dmmonitor.ini --注册监视器服务(也可以不注册) /dm9/script/root/dm_service_installer.sh -t dmmonitor -p ITSM_DB -monitor_ini /dm9/dmmonitor.ini -- 注意守护进程注册服务(否则进程还得前台运行)考试最好执行下 注册主库的守护进程 必须root执行 [root@~]# /dm9/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm9/data/GRP1_RT_01/dmwatcher.ini 注册备库的守护进程 [root@~]# /dm9/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm9/data/GRP1_RT_03/dmwatcher.ini

image20250622175131774.png

#--在备上进行恢复
image20250622182628740.png
#启动监视器显示主备机实例状态,show查看详情
image20250622182748366.png
image20250622184352935.png

#关闭监视器 实时主备集群关闭有顺序要求: 1、关闭监视器 2、关闭备库守护进程 dmwatcher.ini 3、关闭主库守护进程 dmwatcher.ini 4、关闭主库实例 5、关闭备库实例 监视器:监控数据守护系统 管理数据守护系统 确认状态信息 发起故障自动接管命令----确认模式
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服