注册
基于Wmware搭建DM实时主备
技术分享/ 文章详情 /

基于Wmware搭建DM实时主备

苏童 2024/12/09 452 0 0

搭建虚拟机,配置多网卡

我在看网上搭建DMDW的文章时发现很多都只是使用了一个网卡。这其实不符合DW的设计理念,所以写这个文章教大家怎么在自己的虚拟机中搭建双网卡的DW。当然如果是企业的生产环境,自然会有系统管理员或网络管理员配置双网卡,大家只需要知道怎么使用就好了。

搭建虚拟机的流程不过多赘述,网上文章有很多,这里只说一些重点:

1.我使用的是Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso操作系统镜像,此处的版本需要选择Debain对应版本

微信截图_20241129101343.png

2.创建两个网络适配器,一个NAT,用于访问华为yum源:update.cs2c.com.cn;另一个仅主机模式即可,用于Dmmal系统[1]在主备间传输Redo日志。

image20241202144512512.png

3.修改网卡,DNS配置

需要将两台主机的网卡都改为静态,以防止重启后IP变更,导致Dm的守护进程、监视器失效,同时也避免了实例IP变化导致的应用连接失败。

[root@localhost network-scripts]# cd ~ [root@localhost ~]# cd /etc/sysconfig/network-scripts [root@localhost network-scripts]# cat ifcfg-ens3 ifcfg-ens33 ifcfg-ens33.bak ifcfg-ens36 ifcfg-ens36.bak [root@localhost network-scripts]# cat ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static IPADDR="192.168.131.151" # 设置的静态IP地址 NETMASK="255.255.255.0" # 子网掩码 GATEWAY="192.168.131.2" # 网关地址 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=ens33 UUID=084d2f74-1f37-4225-98e5-4a0cadda03bf DEVICE=ens33 ONBOOT=yes [root@localhost network-scripts]# cat ifcfg-ens36 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static IPADDR="192.168.26.128" # 设置的静态IP地址 NETMASK="255.255.255.0" # 子网掩码 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=no UUID=f566d616-a964-47a1-a9da-ee365e9b67c5 DEVICE=ens36 ONBOOT=yes ##修改网卡配置后重启网络服务:systemctl restart network.service

其中网关IP的选择可以查看虚拟机中的虚拟网络编辑器,选择WMnet8,点击NAT设置,查看网关IP。

image20241202152818029.png

网络规划

这里我只写网络规划,大家在生产环境部署前需要考虑更多,如CPU,OS类型与数据库版本是否匹配,glibc等版本底层程序的版本是否匹配,磁盘IO,RAID,内存配置,数据库参数,业务数据量/并发,主备配置差异等等…总之要在实际部署前就想好,避免后续不必要的问题。

IP规划

IP 地址 初始状态 备注
192.168.131.152 192.168.26.129 主库 DMPRIMARY 192.168.131.151 外部服务 IP; 192.168.26.129 内部通信 IP
192.168.131.153 192.168.26.130 备库 DMSTANDBY 192.168.131.153 外部服务 IP; 192.168.26.130 内部通信 IP
192.168.26.128 确认监视器

端口规划

实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
DMPRIMARY 5236 16236 192.168.26.129 6236 15236
DMSTANDBY 5237 16237 192.168.26.130 6327 15237

搭建实时主备

我比较懒,只创建了一次虚拟机,另外两台都是克隆后修改的IP。

也就是说只安装了一次数据库,单机安装也不再赘述了,大家可以参考我之前写的单机安装博客。

改完三台机器的网卡配置后,我们开始修改数据库的配置。

数据库配置

需要修改的配置文件有:dm.ini(实例相关),dmmal.ini( MAL 系统),dmarch.ini(归档),dmwatcher.ini(守护进程)

主库

dm.ini

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16,我这里为了便于区分,使用PRIMARY和STANDBY INSTANCE_NAME = PRIMARY 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

MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间 [MAL_INST1] MAL_INST_NAME = DMPrimary ##实例名,和dm.ini中的INSTANCE_NAME一致 MAL_HOST = 192.168.26.129 ##MAL系统监听TCP连接的IP地址 MAL_PORT = 6236 ##MAL系统监听TCP连接的端口 MAL_INST_HOST = 192.168.131.152 ##实例的对外服务IP地址 MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT = 15236 ##实例本地的守护进程监听TCP连接的端口 MAL_INST_DW_PORT = 16236 ##实例监听守护进程TCP连接的端口 [MAL_INST2] MAL_INST_NAME = DMStandby MAL_HOST = 192.168.26.130 MAL_PORT = 6237 MAL_INST_HOST = 192.168.131.153 MAL_INST_PORT = 5237 MAL_DW_PORT = 15237 MAL_INST_DW_PORT = 16237

dmarch.ini

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

dmwatcher.ini

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

启动脚本,将START_MODE改为mount

##查看启动脚本所在位置 [root@localhost DAMENG]# systemctl status DmServiceDMSERVICE.service ● DmServiceDMSERVICE.service - DM Instance Service(DmServiceDMSERVICE). Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVICE.service; enabled; vendor preset: disabled) ##编辑启动脚本,修改启动模式为mount [root@localhost ~]# cd /usr/lib/systemd/system/ [root@localhost system]# vim DmServiceDMSERVICE.service ExecStart=/home/dmdba/dmdbms/bin/DmServiceDMSERVICE start mount ##启动数据库服务

修改DmServiceDMSERVICE.service中提到的/home/dmdba/dmdbms/bin/DmServiceDMSERVICE [dmdba@localhost ~]$ vim DmServiceDMSERVICE.service START_MODE=mount

配置dmwatcher启动服务

[root@localhost system]# cd /home/dmdba/dmdbms/script/root [root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p DmWatch -watcher_ini /home/dmdba/data/DAMENG/dmwatcher.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDmWatch.service → /usr/lib/systemd/system/DmWatcherServiceDmWatch.service. 创建服务(DmWatcherServiceDmWatch)完成 [root@localhost root]# systemctl list-unit-files |grep Dm DmAPService.service enabled DmServiceDMSERVICE.service enabled DmWatcherServiceDmWatch.service enabled

备库

dm.ini

INSTANCE_NAME = DMStandby 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

MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间 [MAL_INST1] MAL_INST_NAME = DMPrimary ##实例名,和dm.ini中的INSTANCE_NAME一致 MAL_HOST = 192.168.26.129 ##MAL系统监听TCP连接的IP地址 MAL_PORT = 6236 ##MAL系统监听TCP连接的端口 MAL_INST_HOST = 192.168.131.152 ##实例的对外服务IP地址 MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT = 15236 ##实例本地的守护进程监听TCP连接的端口 MAL_INST_DW_PORT = 16236 ##实例监听守护进程TCP连接的端口 [MAL_INST2] MAL_INST_NAME = DMStandby MAL_HOST = 192.168.26.130 MAL_PORT = 6237 MAL_INST_HOST = 192.168.131.153 MAL_INST_PORT = 5237 MAL_DW_PORT = 15237 MAL_INST_DW_PORT = 16237

dmarch.ini

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

dmwatcher.ini

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

启动脚本,将START_MODE改为mount

配置dmwatcher启动服务

[root@localhost system]# cd /home/dmdba/dmdbms/script/root [root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p DmWatch -watcher_ini /home/dmdba/data/DAMENG/dmwatcher.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDmWatch.service → /usr/lib/systemd/system/DmWatcherServiceDmWatch.service. 创建服务(DmWatcherServiceDmWatch)完成 [root@localhost root]# systemctl list-unit-files |grep Dm DmAPService.service enabled DmServiceDMSERVICE.service enabled DmWatcherServiceDmWatch.service enabled

监视器

在192.168.26.128服务器上启动监视器。

dmmonitor.ini配置:

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

配置dmmonitor自启动,这台机器主要是用来做GRP1主备的监视器,所以service,ap不需要自启动。

[root@localhost root]# ./dm_service_installer.sh -t dmmonitor -p 4_152_153 -monitor_ini /home/dmdba/data/DAMENG/dmmonitor.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmMonitorService4_152_153.service → /usr/lib/systemd/system/DmMonitorService4_152_153.service. 创建服务(DmMonitorService4_152_153)完成 [root@localhost root]# systemctl list-unit-files |grep Dm DmAPService.service disabled DmMonitorService4_152_153.service enabled DmServiceDMSERVICE.service disabled

Tips:复制一份dmmonitor.ini,MON_DW_CONFIRM 改为0,可以再启动一个监视器查看集群转态或进行手动切换

启动命令:dmmonitor path=/home/dmdba/data/DAMENG/dmmonitor0.ini

备份恢复

前边提到了,我只创建一次虚拟机+数据库,另外两台都是克隆的。只修改配置是不够的,因为在主备数据库的文件中DB_MAGIC是完全一样的,在我们配置了自动管理状态的情况下,系统无法判断哪个库的状态更新,它的主备切换无法正常工作。

在这个状态时启动集群会报错:Db(DMPRIMARY)'s SYSOPENHISTORY is crossed with other db(num:1), local dmwatcher’s act_type is ACT_KEEP, need user to intervene。

这意味着我们必须更新其中一个库的DB_MAGIC。最简单的方式莫过于借助备份恢复(必须按步骤逐步操作)

备份主库

backup database backupset '/home/dmdba/backup/2024';

将备份目录scp到备库

备库恢复

RMAN> restore database '/home/dmdba/data/DAMENG/dm.ini' from backupset '/home/dmdba/backup/2024'; RMAN> recover database '/home/dmdba/data/DAMENG/dm.ini' from backupset '/home/dmdba/backup/2024'; 更新DB_MAGIC:(数据库的 ID 号) RMAN> recover database '/home/dmdba/data/DAMENG/dm.ini' update db_magic;

设置OGUID

将主备都启动至mount状态

--主备执行同样的操作 SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>sp_set_oguid(12345); SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

完成后启动主备服务器的dmwatcher,监视服务器的dmmonitor。便完成了实时主备的搭建。

主备切换

dmwatcher启动后自动将主备拉起至open状态

##在disql中查看启动状态 [root@localhost system]# su - dmdba ##主库 [dmdba@localhost ~]$ disql SYSDBA/SYSDBA 服务器[LOCALHOST:5236]:处于主库打开状态 登录使用时间 : 5.636(ms) disql V8 SQL> select NAME,INSTANCE_NAME,STATUS$,MODE$,OGUID from v$instance; 行号 NAME INSTANCE_NAME STATUS$ MODE$ OGUID ---------- --------- ------------- ------- ------- ----------- 1 DMPRIMARY DMPRIMARY OPEN PRIMARY 12345 已用时间: 0.861(毫秒). 执行号:601. ##备库 [dmdba@localhost ~]$ disql SYSDBA/SYSDBA:5237 服务器[LOCALHOST:5237]:处于备库打开状态 登录使用时间 : 3.519(ms) disql V8 SQL> select NAME,INSTANCE_NAME,STATUS$,MODE$,OGUID from v$instance; 行号 NAME INSTANCE_NAME STATUS$ MODE$ OGUID ---------- --------- ------------- ------- ------- ----------- 1 DMSTANDBY DMSTANDBY OPEN STANDBY 12345 已用时间: 4.365(毫秒). 执行号:0.

查询两个库的DB_MAGIC

SELECT DB_MAGIC FROM V$RLOG;

在监视服务器上再启动一个监视器进行切换,启动后使用指令show查看状态,login登录远程集群,switchover切换,help查看有哪些指令可用。

[dmdba@localhost ~]$ dmmonitor path=/home/dmdba/data/DAMENG/dmmonitor0.ini [monitor] 2024-12-08 22:25:12: DMMONITOR[4.0] V8 [monitor] 2024-12-08 22:25:13: DMMONITOR[4.0] IS READY. [monitor] 2024-12-08 22:25:13: #-----------------------------------------------------------------------------------------------# GET MONITOR CONNECT INFO FROM DMWATCHER(DMSTANDBY), THE FIRST LINE IS SELF INFO. DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION 2024-12-08 22:25:14 FALSE 898051625 ::ffff:192.168.26.128 DMMONITOR[4.0] V8 2024-12-08 02:39:38 TRUE 625004084 ::ffff:192.168.26.128 DMMONITOR[4.0] V8 #-----------------------------------------------------------------------------------------------# [monitor] 2024-12-08 22:25:13: 收到守护进程(DMSTANDBY)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2024-12-08 22:25:14 OPEN OK DMSTANDBY OPEN STANDBY NULL 41 1572797 1572797 [monitor] 2024-12-08 22:25:14: 收到守护进程(DMPRIMARY)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2024-12-08 22:25:14 STARTUP ERROR DMPRIMARY SHUTDOWN PRIMARY VALID 41 1572634 1572634 show 2024-12-08 22:26:56 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP1 12345 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 192.168.26.129 15236 2024-12-08 22:26:56 GLOBAL VALID OPEN DMPRIMARY OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID 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.131.135 5236 OK DMPRIMARY OPEN PRIMARY 0 0 REALTIME VALID 101792 1572966 101792 1572966 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 192.168.26.130 15237 2024-12-08 22:26:57 GLOBAL VALID OPEN DMSTANDBY OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID 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.131.138 5237 OK DMSTANDBY OPEN STANDBY 0 0 REALTIME VALID 101710 1572966 101710 1572966 NONE DATABASE(DMSTANDBY) APPLY INFO FROM (DMPRIMARY), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]: DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[101792, 101792, 101792], (RLSN, SLSN, KLSN)[1572966, 1572966, 1572966], N_TSK[0], TSK_MEM_USE[0] REDO_LSN_ARR: (1572966) #================================================================================# login ##注意这里是使用数据库账户登录 用户名:SYSDBA 密码: [monitor] 2024-12-08 22:27:42: 登录监视器成功! SWITCHOVER 此操作需谨慎, 将会导致主库发生切换, 是否继续使用GRP1.DMSTANDBY执行SWITCHOVER操作(YES/NO/Y/N)? Y [monitor] 2024-12-08 22:27:51: 开始切换实例DMSTANDBY [monitor] 2024-12-08 22:27:51: 通知守护进程DMPRIMARY切换SWITCHOVER状态 [monitor] 2024-12-08 22:27:51: 守护进程(DMPRIMARY)状态切换 [OPEN-->SWITCHOVER] [monitor] 2024-12-08 22:27:51: 切换守护进程DMPRIMARY为SWITCHOVER状态成功 [monitor] 2024-12-08 22:27:51: 通知守护进程DMSTANDBY切换SWITCHOVER状态 [monitor] 2024-12-08 22:27:51: 守护进程(DMSTANDBY)状态切换 [OPEN-->SWITCHOVER] [monitor] 2024-12-08 22:27:51: 切换守护进程DMSTANDBY为SWITCHOVER状态成功 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY开始执行ALTER DATABASE MOUNT语句 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY执行ALTER DATABASE MOUNT语句成功 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY开始执行SP_APPLY_KEEP_PKG()语句 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY执行SP_APPLY_KEEP_PKG()语句成功 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY开始执行ALTER DATABASE MOUNT语句 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY执行ALTER DATABASE MOUNT语句成功 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY开始执行ALTER DATABASE STANDBY语句 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY执行ALTER DATABASE STANDBY语句成功 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY开始执行ALTER DATABASE PRIMARY语句 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY执行ALTER DATABASE PRIMARY语句成功 [monitor] 2024-12-08 22:27:51: 通知实例DMSTANDBY修改所有归档状态无效 [monitor] 2024-12-08 22:27:51: 修改所有实例归档为无效状态成功 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2024-12-08 22:27:51: 实例DMPRIMARY执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2024-12-08 22:27:51: 实例DMSTANDBY开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2024-12-08 22:27:52: 实例DMSTANDBY执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2024-12-08 22:27:52: 实例DMPRIMARY开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2024-12-08 22:27:52: 实例DMPRIMARY执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2024-12-08 22:27:52: 实例DMSTANDBY开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2024-12-08 22:27:52: 实例DMSTANDBY执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2024-12-08 22:27:52: 通知守护进程DMPRIMARY切换OPEN状态 [monitor] 2024-12-08 22:27:52: 守护进程(DMPRIMARY)状态切换 [SWITCHOVER-->OPEN] [monitor] 2024-12-08 22:27:52: 切换守护进程DMPRIMARY为OPEN状态成功 [monitor] 2024-12-08 22:27:52: 通知守护进程DMSTANDBY切换OPEN状态 [monitor] 2024-12-08 22:27:52: 守护进程(DMSTANDBY)状态切换 [SWITCHOVER-->OPEN] [monitor] 2024-12-08 22:27:52: 切换守护进程DMSTANDBY为OPEN状态成功 [monitor] 2024-12-08 22:27:52: 通知组(GRP1)的守护进程执行清理操作 [monitor] 2024-12-08 22:27:52: 清理守护进程(DMPRIMARY)请求成功 [monitor] 2024-12-08 22:27:52: 清理守护进程(DMSTANDBY)请求成功 [monitor] 2024-12-08 22:27:52: 实例DMSTANDBY切换成功 2024-12-08 22:27:52 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP1 12345 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 192.168.26.130 15237 2024-12-08 22:27:53 GLOBAL VALID OPEN DMSTANDBY OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID 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.131.138 5237 OK DMSTANDBY OPEN PRIMARY 0 0 REALTIME VALID 101793 1572967 101710 1573153 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 192.168.26.129 15236 2024-12-08 22:27:52 GLOBAL VALID OPEN DMPRIMARY OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALID 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.131.135 5236 OK DMPRIMARY OPEN STANDBY 0 0 REALTIME INVALID 101793 1572967 101793 1572967 NONE DATABASE(DMPRIMARY) APPLY INFO FROM (DMSTANDBY), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]: DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[101793, 101793, 101793], (RLSN, SLSN, KLSN)[1572967, 1572967, 1572967], N_TSK[0], TSK_MEM_USE[0] REDO_LSN_ARR: (1572967) #================================================================================# [monitor] 2024-12-08 22:27:55: 守护进程(DMSTANDBY)状态切换 [OPEN-->RECOVERY] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2024-12-08 22:27:56 RECOVERY OK DMSTANDBY OPEN PRIMARY VALID 43 1573153 1573153 [monitor] 2024-12-08 22:27:58: 守护进程(DMSTANDBY)状态切换 [RECOVERY-->OPEN] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2024-12-08 22:27:59 OPEN OK DMSTANDBY OPEN PRIMARY VALID 43 1573153 1573153

  1. DM通过MAL系统实现Redo日志传输,以及其他一些实例间的消息通讯。 ↩︎

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服