注册
DM8 数据守护
技术分享/ 文章详情 /

DM8 数据守护

Monei 2025/06/27 62 0 0

DM数据守护(Data Watch)

定义与核心价值

DM数据守护是集成化的高可用、高性能数据库解决方案,作为异地容灾首选,可在硬件故障、自然灾害等极端场景下避免数据损坏/丢失,保障数据安全,并实现快速恢复服务(秒级切换,不受数据规模影响),相比传统备份还原(需数小时甚至更久)效率显著更高。

核心优势

  • 快速恢复:秒级切换备库为主库,满足不间断服务需求;
  • 灵活适配:提供多种解决方案,覆盖系统可用性、数据安全性、性能等综合需求,降低总体投入。

主要解决方案及特点

  1. 实时主备

    • 组成:1个主库 + 1个或多个实时归档备库;
    • 目标:保障数据库可用性与数据安全;
    • 机制:主库Redo日志实时写入联机日志前发送至备库,备库重演日志保持同步;主库故障时,备库完成日志重演后切换为主库。
  2. MPP主备

    • 组成:MPP集群每个节点配置实时主备系统(称为“数据守护组”),组间独立;
    • 目标:保障MPP集群整体可用性;
    • 机制:单个MPP节点故障时,其对应数据守护组内备库切换为主库,确保集群正常运行。
  3. DMDSC主备

    • 组成:支持DMDSC集群与单节点互为主备(建议集群为主库,单节点为备库);
    • 机制:
      • 集群为主库时,控制节点收集各节点Redo日志发送至备库,备库按节点修改顺序重演;
      • 集群为备库时,主库直接发送日志至集群控制节点重演。
  4. 读写分离集群

    • 组成:1个主库 + 1个或多个即时/实时归档备库;
    • 目标:在保障可用性基础上实现读写分离,提升业务支撑能力;
    • 机制:通过事务一致模式保证主备数据一致性,结合JDBC、DPI等接口自动分流只读操作至备库,降低主库负载,提升吞吐量。

实现原理

DM数据守护的核心逻辑为:主库(生产库)将产生的Redo日志传输至备库,备库接收并重新应用(重演)该日志,从而实现与主库的数据同步。其核心思想是通过监控主备库状态及数据同步情况,针对Redo日志传输、重演过程中可能出现的异常提供解决方案。

系统结构

DM数据守护系统主要由以下组件构成:

  • 主库(生产库):生成Redo日志并传输至备库;
  • 备库:接收主库Redo日志并重演,保持与主库数据同步;
  • Redo日志:记录主库数据变更的关键日志;
  • Redo日志传输:负责主库向备库传输Redo日志的过程;
  • Redo日志重演:备库通过重演Redo日志实现数据同步;
  • 守护进程(dmwatcher):监控数据库状态及同步情况;
  • 监视器(dmmonitor):辅助监控与管理整个守护系统。
    image.png

数据库模式

  • Normal模式:提供无限制的正常数据库服务。
  • Primary模式:提供正常服务,仅极少数操作受限(如修改表空间文件名、arch_ini参数);除临时表空间外,所有数据库对象修改强制生成Redo日志。
  • Standby模式:仅支持联机备份、查询等只读操作;时间触发器、事件触发器失效。

数据库状态

  • Startup:系统刚启动时的初始状态。
  • After Redo:启动中完成联机日志重做,回滚活动事务前;非Standby模式执行alter database open前也会进入此状态。
  • Open:数据库正常提供服务,但无法修改归档配置等操作。
  • Mount:不可修改数据或访问表/视图等对象;支持修改归档配置、控制文件、切换模式及只读操作(如查询动态视图);不生成PWR日志,数据页正常刷盘并推进检查点;Open→Mount会回滚活动事务,但不清理已提交事务、不断开连接、不强制脏页刷盘。
  • Suspend:可访问对象甚至修改数据,但限制Redo日志刷盘;触发刷盘操作(如COMMIT)会挂起。切换比Open→Mount更高效(不回滚活动事务);常用于修改归档状态(如备库恢复后启用实时归档);实时归档失败时Primary实例自动切换Suspend,防止日志写入导致主备不一致,成功后可丢弃多余日志。

核心配置文件列表

DM数据守护涉及以下配置文件:dm.ini(数据库配置)、dm.ctl(数据库控制文件)、dmmal.ini(MAL配置)、dmarch.ini(Redo日志归档配置)、dmwatcher.ini(守护进程配置)、dmmonitor.ini(监视器配置)、dmtimer.ini(定时器配置)、dmmpp.ctl(MPP控制文件)等。

  • dmmpp.ctl:MPP控制文件;

  • dm.ctl:无需用户修改,放置于指定目录即可;

  • 一致性要求

    • 同一MAL环境的实例,dmmal.ini需严格一致;
    • 同一守护进程组内GLOBAL类型的实例,dmarch.ini需配置相同ARCH_TYPE
    • 同一守护进程内GLOBAL类型的实例,dmwatcher.ini需配置相同DW_TYPEDW_MODEDW_ERROR_TIME
  • 存放路径

    • dm.ini:无限制,通常放数据库目录;
    • dmmal.inidmarch.inidmtimer.ini:路径由dm.iniCONFIG_PATH指定;
    • dmwatcher.inidmmonitor.ini:通常与dm.ini同目录;
    • dm.ctl:路径由dm.iniCTL_PATH指定;
    • dmmpp.ctl:路径由dm.iniSYSTEM_PATH指定。
  • dm.ini:数据库核心配置文件,含数据守护相关参数;

  • dmtimer.ini:定时器配置文件,参数与SP_ADD_TIMER()过程用法一致。

监视器(dmmonitor)

监视器(dmmonitor)是基于监视器接口实现的命令行工具,作为DM数据守护系统的核心组件,主要功能如下:

  • 监控系统运行:接收守护进程消息,实时显示主备库状态变化及故障切换中数据库模式/状态的完整过程;
  • 管理守护系统:支持用户输入命令,启动/停止守护进程监控,执行主备库切换、备库故障接管等操作;
  • 确认状态信息:在故障自动切换场景中,故障处理前通过监视器确认主/备库异常,避免网络故障引发脑裂;
  • 发起故障接管:主库故障时,挑选符合条件的备库并通知其执行接管操作。

数据守护搭建

数据守护

配置前提

配置数据守护,需通过备份还原同步各数据库数据,确保数据完全一致。主库可为新初始化库或生产库;备库需先初始化一个新库。

禁止直接初始化/拷贝数据文件的原因

  • 永久魔数(permenant_magic):主库传送日志时会校验该值,确保与备库同属一个数据守护环境,否则无法传输日志;
  • 加密密钥dminit初始化数据库时生成随机密钥,主备库密钥不同,备库无法解析主库加密数据;
  • 数据库魔数(DB_MAGIC):每次还原/恢复操作会改变该值,用于区分同一数据守护环境中的不同库。
    环境说明
序号 Primary Standby
服务器名 dmtest1 dmtest2
对应ID地址 192.168.123.10 192.168.123.11
实例名 DMSERVER DMTEST
实例端口 5236 5237
系统监听MAL端口 61141 61142
本地守护进程端口 52141 52142
监听守护进程端口 33141 33142
OGUID 453331 453331
安装目录 /home/dmdba/dmdbms /home/dmdba/dmdbms
实例目录 /home/dmdba/dmdbms/data/DAMENG/ /home/dmdba/dmdbms/data/DAMENG/
归档目录 /oradata/arch /oradata/arch
备注
监视器主机名称 - dbtest3
监视器IP地址 - 10.12.10.104

如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据,如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数据。
两种方式都需要服务器配置本地归档,本地归档配置方式如下:

[dmdba@dbtest1 mnt]$ dm
服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 5.958(ms)
disql V8
SQL> alter database mount;
操作已执行
已用时间: 3.775(毫秒). 执行号:0.
SQL> alter database archivelog;
操作已执行
已用时间: 1.733(毫秒). 执行号:0.
SQL> alter database add archivelog 'dest=/dmdata/arch,type=local,file_size=1024,space_limit=2048,arch_flush_buf_size=16,hang_flag=1';
操作已执行
已用时间: 3.221(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 35.335(毫秒). 执行号:0.

脱机备份/还原流程

  1. 正常关闭数据库;
  2. 执行脱机全备份(dmrman命令);
  3. 拷贝备份文件至备库机器;
  4. 备库执行脱机还原(RESTORE DATABASE);
  5. 因无REDO日志,跳过恢复步骤;
  6. 更新备库DB_MAGIC(RECOVER DATABASE UPDATE DB_MAGIC)。

联机备份/还原流程

  1. 主库执行联机备份(SQL命令BACKUP DATABASE);
  2. 拷贝备份文件至备库机器;
  3. 备库执行脱机还原(RESTORE DATABASE);
  4. 备库执行STANDBY恢复(RECOVER DATABASE FOR STANDBY);
  5. 更新备库DB_MAGIC(RECOVER DATABASE UPDATE DB_MAGIC)。

下面按照脱机备份恢复流程进行操作

关闭数据库服务

[dmdba@dbtest1 arch]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]

进行脱机全库备份

[dmdba@dbtest1 arch]$ dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET  '/dmdata/data/BACKUP_FILE_01'"
dmrman V8
BACKUP DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmdata/data/BACKUP_FILE_01'
file dm.key not found, use default license!
Processing backupset /dmdata/data/BACKUP_FILE_01
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:04][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:05.548

查看备份文件并传输至备库-192.168.123.11

[dmdba@dbtest1 arch]$ ls -tlr /dmdata/data/
总用量 0
drwxr-xr-x. 2 dmdba dinstall 59 6月  25 23:03 BACKUP_FILE_01

备库停止服务

[dmdba@dmtest2 mnt]$ DmServiceDMTEST stop
Stopping DmServiceDMTEST:                                  [ OK ]

备库启动恢复

[dmdba@dmtest2 mnt]$ dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENGS/dm.ini' FROM BACKUPSET '/dmdata/data/BACKUP_FILE_01'"
dmrman V8
RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENGS/dm.ini' FROM BACKUPSET '/dmdata/data/BACKUP_FILE_01'
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.602

备库数据更新

[dmdba@dmtest2 mnt]$ dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENGS/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENGS/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
recover successfully!
time used: 00:00:01.245

主库文件配置

配置dm.ini

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16
INSTANCE_NAME = DMSERVER
PORT_NUM = 5236 ##数据库实例监听端口
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次的日志发送信息

配置 dmmal.ini

AL_CHECK_INTERVAL = 5 				##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 			##判定MAL链路断开的时间
[MAL_INST1]
	MAL_INST_NAME = DMSERVER 		##实例名,和dm.ini中的INSTANCE_NAME一致
	MAL_HOST = 192.168.1.10  		##MAL系统监听TCP连接的IP地址
	MAL_PORT = 61141 				##MAL系统监听TCP连接的端口
	MAL_INST_HOST = 192.168.123.10 	##实例的对外服务IP地址
	MAL_INST_PORT = 5236 			##实例的对外服务端口,和dm.ini中的PORT_NUM一致
	MAL_DW_PORT = 52141 			##实例本地的守护进程监听TCP连接的端口
	MAL_INST_DW_PORT = 33141 		##实例监听守护进程TCP连接的端口
[MAL_INST2]
	MAL_INST_NAME = DMTEST
	MAL_HOST = 192.168.1.11 
	MAL_PORT = 61142
	MAL_INST_HOST = 192.168.123.11 
	MAL_INST_PORT = 5236
	MAL_DW_PORT = 52142
	MAL_INST_DW_PORT = 33142

配置 dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME 				##实时归档类型
ARCH_DEST = DMTEST 				##实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 					##本地归档类型
ARCH_DEST = /dmdata/arch 	##本地归档文件存放路径
ARCH_FILE_SIZE = 128 				##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0				##单位Mb,0表示无限制,范围1024~2147483647M

配置 dmwatcher.ini

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

启动服务到mount阶段

[dmdba@dbtest1 bin]$ ./DmServiceDMSERVER start mount
Starting DmServiceDMSERVER:                                [ OK ]

设置 OGUID

服务器[localhost:5236]:处于普通配置状态
登录使用时间 : 4.284(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 11.816(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 3.781(毫秒). 执行号:2.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 12.630(毫秒). 执行号:3.

修改数据库模式

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 13.624(毫秒). 执行号:4.
SQL> ALTER DATABASE Primary;
操作已执行
已用时间: 15.753(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 21.753(毫秒). 执行号:5.

主库文件配置

配置dm.ini

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16
INSTANCE_NAME = DMTEST
PORT_NUM = 5237 				##数据库实例监听端口
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次的日志重演信息

** 配置 dmmal.ini**

AL_CHECK_INTERVAL = 5 				##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 			##判定MAL链路断开的时间
[MAL_INST1]
	MAL_INST_NAME = DMSERVER 		##实例名,和dm.ini中的INSTANCE_NAME一致
	MAL_HOST = 192.168.1.10  		##MAL系统监听TCP连接的IP地址
	MAL_PORT = 61141 				##MAL系统监听TCP连接的端口
	MAL_INST_HOST = 192.168.123.10 	##实例的对外服务IP地址
	MAL_INST_PORT = 5236 			##实例的对外服务端口,和dm.ini中的PORT_NUM一致
	MAL_DW_PORT = 52141 			##实例本地的守护进程监听TCP连接的端口
	MAL_INST_DW_PORT = 33141 		##实例监听守护进程TCP连接的端口
[MAL_INST2]
	MAL_INST_NAME = DMTEST
	MAL_HOST = 192.168.1.11 
	MAL_PORT = 61142
	MAL_INST_HOST = 192.168.123.11 
	MAL_INST_PORT = 5236
	MAL_DW_PORT = 52142
	MAL_INST_DW_PORT = 33142

配置 dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME 				##实时归档类型
ARCH_DEST = DMSERVER 				##实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 					##本地归档类型
ARCH_DEST = /dmdata/arch 	##本地归档文件存放路径
ARCH_FILE_SIZE = 128 				##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0				##单位Mb,0表示无限制,范围1024~2147483647M

配置 dmwatcher.ini

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

启动到mount

[dmdba@dmtest2 DAMENGS]$ DmServiceDMTEST start mount
Starting DmServiceDMTEST:                                  [ OK ]

设置 OGUID

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 12.816(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 4.181(毫秒). 执行号:2.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 11.680(毫秒). 执行号:3.

修改数据库模式

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 15.624(毫秒). 执行号:4.
SQL> ALTER DATABASE standby;
操作已执行
已用时间: 11.753(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 24.713(毫秒). 执行号:5.

配置监视器

192.168.123.12 服务器配置 dmmonitor.ini
目录位置与dm.ini保持一致即可

MON_DW_CONFIRM = 1 	        ##确认监视器模式
MON_LOG_PATH = /dmdata/data     ##监视器日志文件存放路径
MON_LOG_INTERVAL = 60 		##每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 		##每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 	##不限定日志文件总占用空间
[GRP1]
	MON_INST_OGUID = 453331 ##组GRP1的唯一OGUID值
##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
	MON_DW_IP = 192.168.1.10:52141
	MON_DW_IP = 192.168.1.11:52142

主备服务器配置dmwatcher服务

使用root用户,在$DM_HOME/script/root目录下
./dm_service_installer.sh -t dmwatcher -dm_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DW
注册DmWatcherServiceDW服务
主备操作启动DmWatcherServiceDW 服务
dbtest1 
[dmdba@dbtest1 data]$ DmWatcherServiceDW start
Starting DmWatcherServiceDW:                               [ OK ]
dbtest2
[dmdba@dmtest2 data]$ DmWatcherServiceDW start
Starting DmWatcherServiceDW:                               [ OK ]

启动dmmonitor服务查看状态
dmmonitor -h

Invalid input -h
dmmonitor V8
version: 03134284368-20250430-272000-20149 Pack1
书写格式: ./dmmonitor [ini_path] [path=ini_path] | help | [raft_file_path=file_path raft_file_size=file_size mon_magic=mon_magic mon_name=mon_name overwrite=overwrite]
使用示例: ./dmmonitor path=/opt/dmdbms/data/DAMENG/dmmonitor.ini
使用示例: ./dmmonitor /opt/dmdbms/data/DAMENG/dmmonitor.ini
使用示例: ./dmmonitor raft_file_path=xxx raft_file_size=xxx mon_magic=xxx mon_name=xxx overwrite=xxx
----------------------------------------------------------------------------------------------------------------------------------------
关键词(KEYWORD)        说明                                                                                   缺省值        是否必选项
----------------------------------------------------------------------------------------------------------------------------------------
PATH                     ini绝对路径或者当前目录的dmmonitor.ini/dmwmon.ini                                      无            是        
RAFT_FILE_PATH           多实例监视器联机日志路径,需要与dmmonitor.ini中MON_LOG_PATH一致                         无            否        
RAFT_FILE_SIZE           多实例监视器联机日志空闲大小,单位MB                                                    无            否        
MON_MAGIC                多实例监视器魔数,同一套多实例监视器集群需要一致                                        无            否        
MON_NAME                 多实例监视器实例名                                                                     无            否        
OVERWRITE                是否允许删除老联机日志,生成新的多实例监视器联机日志,取值0,则不允许,取值1,则允许        0             否        
HELP                     打印帮助信息                                                                           无            否        
----------------------------------------------------------------------------------------------------------------------------------------

查看状态
dmmonitor PATH=/home/dmdba/dmdbms/data/DAMENGJ/dmmonitor.ini

[monitor]         2025-06-26 18:52:19: DMMONITOR[4.0] V8
[monitor]         2025-06-26 18:52:20: DMMONITOR[4.0] IS READY.

[monitor]         2025-06-26 18:52:20: 
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DMSERVER), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME         MON_CONFIRM    MID            MON_IP               MON_VERSION                                                     
2025-06-26 18:52:20  FALSE          239757064      ::ffff:192.168.1.12  DMMONITOR[4.0] V8
                                              
#-----------------------------------------------------------------------------------------------#

[monitor]         2025-06-26 18:52:20: 收到守护进程(DMSERVER)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2025-06-26 18:52:20  OPEN           OK        DMSERVER         OPEN        PRIMARY   VALID    5        56619           56619           

[monitor]         2025-06-26 18:52:21: 收到守护进程(DMTEST)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2025-06-26 18:52:21  OPEN           OK        DMTEST           OPEN        STANDBY   VALID    5        56619           56619           


输入命令非法,请输入help命令查看帮助信息!

show
2025-06-26 18:55:56 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      FALSE           AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    
192.168.1.10  52141        2025-06-26 18:55:56  GLOBAL    VALID     OPEN           DMSERVER         OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID       FALSE       

EP INFO:
INST_IP         INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.123.10  5236       OK        DMSERVER         OPEN        PRIMARY   0          0            REALTIME  VALID       4576            56679           4576            56679           NONE                  

<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    
192.168.1.11  52142        2025-06-26 18:55:56  GLOBAL    VALID     OPEN           DMTEST           OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID       FALSE       

EP INFO:
INST_IP         INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.123.11  5237       OK        DMTEST           OPEN        STANDBY   0          0            REALTIME  VALID       4575            56678           4575            56678           NONE                  

DATABASE(DMTEST) APPLY INFO FROM (DMSERVER), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4575, 4575, 4576], (RLSN, SLSN, KLSN)[56678, 56678, 56679], N_TSK[0], TSK_MEM_USE[4096] 


#================================================================================#

dmmonitor 服务器进行switchover操作

输入命令非法,请输入help命令查看帮助信息!

login
用户名:sysdba
密码:
[monitor]         2025-06-27 17:58:08: 登录监视器成功!


输入命令非法,请输入help命令查看帮助信息!

choose switchover GRP1
Can choose one of the following instances to do switchover:
1: DMTEST

switchover GRP1.DMTEST
此操作需谨慎, 将会导致主库发生切换, 是否继续使用GRP1.DMTEST执行SWITCHOVER操作(YES/NO/Y/N)?
y
[monitor]         2025-06-27 17:58:32: 开始切换实例DMTEST
[monitor]         2025-06-27 17:58:32: 通知守护进程DMSERVER切换SWITCHOVER状态
[monitor]         2025-06-27 17:58:32: 守护进程(DMSERVER)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2025-06-27 17:58:32: 切换守护进程DMSERVER为SWITCHOVER状态成功
[monitor]         2025-06-27 17:58:32: 通知守护进程DMTEST切换SWITCHOVER状态
[monitor]         2025-06-27 17:58:32: 守护进程(DMTEST)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2025-06-27 17:58:32: 切换守护进程DMTEST为SWITCHOVER状态成功
[monitor]         2025-06-27 17:58:32: 实例DMSERVER开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2025-06-27 17:58:32: 实例DMSERVER执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2025-06-27 17:58:32: 实例DMSERVER开始执行ALTER DATABASE MOUNT语句
[monitor]         2025-06-27 17:58:32: 实例DMSERVER执行ALTER DATABASE MOUNT语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行SP_APPLY_KEEP_PKG()语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行SP_APPLY_KEEP_PKG()语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行ALTER DATABASE MOUNT语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行ALTER DATABASE MOUNT语句成功
[monitor]         2025-06-27 17:58:32: 实例DMSERVER开始执行ALTER DATABASE STANDBY语句
[monitor]         2025-06-27 17:58:32: 实例DMSERVER执行ALTER DATABASE STANDBY语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行ALTER DATABASE PRIMARY语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行ALTER DATABASE PRIMARY语句成功
[monitor]         2025-06-27 17:58:32: 通知实例DMTEST修改所有归档状态无效
[monitor]         2025-06-27 17:58:32: 修改所有实例归档为无效状态成功
[monitor]         2025-06-27 17:58:32: 实例DMSERVER开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2025-06-27 17:58:32: 实例DMSERVER执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2025-06-27 17:58:32: 实例DMSERVER开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2025-06-27 17:58:32: 实例DMSERVER执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2025-06-27 17:58:32: 实例DMTEST开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2025-06-27 17:58:32: 实例DMTEST执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2025-06-27 17:58:32: 通知守护进程DMSERVER切换OPEN状态
[monitor]         2025-06-27 17:58:32: 守护进程(DMSERVER)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2025-06-27 17:58:33: 切换守护进程DMSERVER为OPEN状态成功
[monitor]         2025-06-27 17:58:33: 通知守护进程DMTEST切换OPEN状态
[monitor]         2025-06-27 17:58:33: 守护进程(DMTEST)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2025-06-27 17:58:33: 切换守护进程DMTEST为OPEN状态成功
[monitor]         2025-06-27 17:58:33: 通知组(GRP1)的守护进程执行清理操作
[monitor]         2025-06-27 17:58:33: 清理守护进程(DMSERVER)请求成功
[monitor]         2025-06-27 17:58:33: 清理守护进程(DMTEST)请求成功
[monitor]         2025-06-27 17:58:33: 实例DMTEST切换成功

2025-06-27 17:58:33 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      FALSE           AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    
192.168.1.11  52142        2025-06-27 17:58:33  GLOBAL    VALID     OPEN           DMTEST           OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID       FALSE       

EP INFO:
INST_IP         INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.123.11  5237       OK        DMTEST           OPEN        PRIMARY   0          0            REALTIME  VALID       4628            57013           4628            57014           NONE                  

<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    
192.168.1.10  52141        2025-06-27 17:58:32  GLOBAL    VALID     OPEN           DMSERVER         OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  INVALID     FALSE       

EP INFO:
INST_IP         INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.123.10  5236       OK        DMSERVER         OPEN        STANDBY   0          0            REALTIME  INVALID     4626            56933           4626            56933           NONE                  

DATABASE(DMSERVER) APPLY INFO FROM (DMTEST), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4626, 4626, 4626], (RLSN, SLSN, KLSN)[56933, 56933, 56933], N_TSK[0], TSK_MEM_USE[0] 


#================================================================================#

[monitor]         2025-06-27 17:58:35: 守护进程(DMTEST)状态切换 [OPEN-->RECOVERY]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2025-06-27 17:58:36  RECOVERY       OK        DMTEST           OPEN        PRIMARY   VALID    7        57014           57014           

[monitor]         2025-06-27 17:58:38: 守护进程(DMTEST)状态切换 [RECOVERY-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2025-06-27 17:58:39  OPEN           OK        DMTEST           OPEN        PRIMARY   VALID    7        57014           57014           
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服