达梦一主+备+异备+DEM管理

达梦一主+备+异备+DEM管理


一、安装前准备

1.1集群规划
A机器	B机器	C机器(异步备机)
业务IP	192.168.10.100	192.168.10.101	192.168.10.102
心跳IP	192.168.10.100	192.168.10.101	192.168.10.102
实例名	RWC1_01	RWC1_01B	RWC1_02B
实例端口	5236	5236	5236
MAL端口	5336	5336	5336
MAL守护进程端口	5436	5436	5436
守护进程端口	5536	5536	5536
OGUID	45331
守护组	GRWC1
安装目录	/dm8
实例目录	/dm8/data/
归档上限	51200
确认监视器IP	192.168.10.103

说明:虚拟机只配置了一个网卡

二、配置A机器

2.1实例、备份数据

--初始化实例
[dmdba@DM01 ~]$ /dm8/bin/dminit PATH=/dm8/data/ INSTANCE_NAME=RWC1_01 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048
--启动服务
[dmdba@DM01 ~]$ /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini
--开启归档
[dmdba@DM01 ~]$ /dm8/bin/disql SYSDBA/SYSDBA@192.168.10.100:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;
--备份数据
SQL> BACKUP DATABASE BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE';
--修改dm.ini
SQL> SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SQL> SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SQL> SP_SET_PARA_VALUE (2,'MAL_INI',1);
SQL> SP_SET_PARA_VALUE (2,'TIMER_INI',1);
SQL> SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
关闭前台实例服务

2.2替换dmarch.ini

[dmdba@DM01 ~]$ vi /dm8/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY            = 1  #1表示事务一致模式,0表示高性能模式 
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/DAMENG/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_TIMELY1]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = RWC1_01B  #即时归档目标实例名
[ARCHIVE_ASYNC]
  ARCH_TYPE                = ASYNC  #异步归档类型
  ARCH_DEST                = RWC1_02B  #异步归档目标实例名
  ARCH_TIMER_NAME          = RT_TIMER  #定时器名称,和dmtimer.ini中的名称一致

2.3创建dmmal.ini

[dmdba@DM01 ~]$ vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
MAL_TEMP_PATH              = /dm8/data/malpath/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE           = 2048  #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩

[MAL_INST1]
  MAL_INST_NAME            = RWC1_01  #实例名,和 dm.ini的INSTANCE_NAME一致
  MAL_HOST                 = 192.168.10.100  #MAL系统监听TCP连接的IP地址
  MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
  MAL_INST_HOST            = 192.168.10.100  #实例的对外服务IP地址
  MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini的PORT_NUM一致
  MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口
[MAL_INST2]
  MAL_INST_NAME            = RWC1_01B
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5336
  MAL_INST_HOST            = 192.168.10.101
  MAL_INST_PORT            = 5236
  MAL_DW_PORT              = 5436
  MAL_INST_DW_PORT         = 5536
[MAL_INST3]
  MAL_INST_NAME            = RWC1_02B
  MAL_HOST                 = 192.168.10.102
  MAL_PORT                 = 5336
  MAL_INST_HOST            = 192.168.10.102
  MAL_INST_PORT            = 5236
  MAL_DW_PORT              = 5436
  MAL_INST_DW_PORT         = 5536

2.4创建dmwatcher.ini

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

2.5创建dmtimer.ini

[dmdba@DM01 ~]$ vi /dm8/data/DAMENG/dmtimer.ini
#定时器配置为每十分钟触发主库发送归档日志到异步备库
[RT_TIMER]  #和dmarch.ini中的ARCH_TIMER_NAME一致
  TYPE                     = 2  #按日执行
  FREQ_MONTH_WEEK_INTERVAL = 1  #间隔周数或月数
  FREQ_SUB_INTERVAL        = 1  #间隔天数
  FREQ_MINUTE_INTERVAL     = 10  #间隔分钟数
  START_TIME               = 00:00:00  #开始时间
  END_TIME                 = 00:00:00  #结束时间
  DURING_START_DATE        = 2022-08-11 00:00:01  #开始时间点
  DURING_END_DATE          = 9999-12-31 23:59:59  #结束时间点
  NO_END_DATE_FLAG         = 1  #是否结束标记
  DESCRIBE                 = RT TIMER  #定时器描述
  IS_VALID                 = 1  #开启定时器

2.6拷贝实例

--拷贝实例到B机器、C机器
[dmdba@DM01 ~]$ scp -r /dm8/data/DAMENG dmdba@192.168.10.101:/dm8/data/
[dmdba@DM01 ~]$ scp -r /dm8/data/DAMENG dmdba@192.168.10.102:/dm8/data/

2.7注册服务

[root@DM01 ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p RWC1_01 -dm_ini /dm8/data/DAMENG/dm.ini -m mount
[root@DM01 ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
备注:删除自启
[root@DM01 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceRWC1_01
[root@DM01 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

三、配置B机器

3.1修改dm.ini

[dmdba@DM02 ~]$ vi /dm8/data/DAMENG/dm.ini
INSTANCE_NAME              = RWC1_01B  #数据库实例名

3.2替换dmarch.ini

[dmdba@DM02 ~]$ vi /dm8/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY            = 1  #1表示事务一致模式,0表示高性能模式
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/DAMENG/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_TIMELY1]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = RWC1_01  #即时归档目标实例名
[ARCHIVE_ASYNC]
  ARCH_TYPE                = ASYNC  #异步归档类型
  ARCH_DEST                = RWC1_02B  #异步归档目标实例名
  ARCH_TIMER_NAME          = RT_TIMER  #定时器名称,和dmtimer.ini中的名称一致

3.3相同配置项

dmmal.ini、dmwatcher.ini、dmtimer.ini配置项与A机器相同,不需要修改

3.4注册服务

[root@DM02 ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p RWC1_01B -dm_ini /dm8/data/DAMENG/dm.ini -m mount
[root@DM02 ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
备注:删除自启
[root@DM02 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceRWC1_01B
[root@DM02 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

3.5恢复数据

[dmdba@DM02 ~]$ /dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
[dmdba@DM02 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
[dmdba@DM02 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

四、配置C机器

4.1修改dm.ini

[dmdba@DM03 ~]$ vi /dm8/data/DAMENG/dm.ini
INSTANCE_NAME              = RWC1_02B  #数据库实例名

4.2替换dmarch.ini

[dmdba@DM03 ~]$ vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/DAMENG/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB

4.3创建dmwatcher.ini

[dmdba@DM03 ~]$ vi /dm8/data/DAMENG/dmwatcher.ini
[GRWC1]
  DW_TYPE                  = LOCAL  #本地守护类型
  DW_MODE                  = MANUAL  #故障手动切换模式
  DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
  INST_ERROR_TIME          = 20  #本地实例故障认定时间
  INST_OGUID               = 45331  #守护系统唯一OGUID值
  INST_INI                 = /dm8/data/DAMENG/dm.ini  #dm.ini文件路径
  INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
  INST_STARTUP_CMD         = /dm8/bin/dmserver  #命令行方式启动

4.4相同配置项

dmmal.ini、dmwatcher.ini、dmtimer.ini配置项与A机器相同,不需要修改

4.5注册服务

[root@DM03 ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p RWC1_02B -dm_ini /dm8/data/DAMENG/dm.ini -m mount
[root@DM03 ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
备注:删除自启
[root@DM03 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceRWC1_02B
[root@DM03 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

4.6恢复数据

[dmdba@DM03 ~]$ /dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
[dmdba@DM03 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
[dmdba@DM03 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

五、配置监视器

1、在各节点数据库的bin目录中 存放非确认监视器配置文件。
2、在确认监视器机器上(非集群节点) 注册确认监视器自启服务。

5.1创建dmmonitor.ini

[dmdba@DEM ~]$ vi /dm8/bin/dmmonitor.ini
MON_DW_CONFIRM             = 1  #0为非确认,1为确认
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位MB

[GRWC1]
  MON_INST_OGUID           = 45331  #组GRWC1的唯一OGUID 值
  MON_DW_IP                = 192.168.10.100:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
  MON_DW_IP                = 192.168.10.101:5436
  MON_DW_IP                = 192.168.10.102:5436

5.2注册服务

[root@DEM ~]$ /dm8/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm8/bin/dmmonitor.ini
备注:删除自启
[root@DEM ~]$ /dm8/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor

六、启动服务及查看信息

6.1启动数据库并修改参数

A机器
[dmdba@DM01 ~]$ /dm8/bin/DmServiceRWC1_01 start
[dmdba@DM01 ~]$ /dm8/bin/disql SYSDBA/SYSDBA
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
B机器
[dmdba@DM02 ~]$ /dm8/bin/DmServiceRWC1_01B start
[dmdba@DM02 ~]$ /dm8/bin/disql SYSDBA/SYSDBA
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;
C机器
[dmdba@DM03 ~]$ /dm8/bin/DmServiceRWC1_02B start
[dmdba@DM03 ~]$ /dm8/bin/disql SYSDBA/SYSDBA
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;

6.2启动守护进程

A/B/C机器:[dmdba@DM01 ~]$ /dm8/bin/DmWatcherServiceWatcher start

6.3启动监视器

[dmdba@DEM ~]$ /dm8/bin/DmMonitorServiceMonitor start
前台启动:[dmdba@DEM ~]$ /dm8/bin/dmmonitor /dm8/bin/dmmonitor.ini

6.4启停集群

启动:A/B/C机器守护进程
A/B/C机器:[dmdba@DM01 ~]$ /dm8/bin/DmWatcherServiceWatcher start

停止:A/B/C机器守护进程→A机器RWC1_01主库→B机器RWC1_01B备库→C机器RWC1_02B备库
A/B/C机器:[dmdba@DM01 ~]$ /dm8/bin/DmWatcherServiceWatcher stop
A机器:[dmdba@DM01 ~]$ /dm8/bin/DmServiceRWC1_01 stop
B机器:[dmdba@DM02 ~]$ /dm8/bin/DmServiceRWC1_01B stop
C机器:[dmdba@DM03 ~]$ /dm8/bin/DmServiceRWC1_02B stop

6.5 查看非确认监视器状态

[dmdba@DM01 bin]$ ./dmmonitor dmmonitor.ini 
[monitor]         2022-08-11 11:14:32: DMMONITOR[4.0] V8
[monitor]         2022-08-11 11:14:32: DMMONITOR[4.0] IS READY.

[monitor]         2022-08-11 11:14:33: 收到守护进程(RWC1_01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:14:32  OPEN           OK        RWC1_01          OPEN        PRIMARY   VALID    9        119151          119157          

[monitor]         2022-08-11 11:14:33: 收到守护进程(RWC1_01B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:14:32  OPEN           OK        RWC1_01B         OPEN        STANDBY   VALID    9        119151          119151          

[monitor]         2022-08-11 11:14:33: 收到守护进程(RWC1_02B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:14:32  OPEN           OK        RWC1_02B         OPEN        STANDBY   NULL     0        118837          118837          

show
2022-08-11 11:14:37 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRWC1            45331       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.10.100      5436         2022-08-11 11:14:36  GLOBAL    VALID     OPEN           RWC1_01          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.10.100      5236       OK        RWC1_01          OPEN        PRIMARY   0          0            REALTIME  VALID    30220           119167          30220           119167          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.10.101      5436         2022-08-11 11:14:36  GLOBAL    VALID     OPEN           RWC1_01B         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.10.101      5236       OK        RWC1_01B         OPEN        STANDBY   0          0            REALTIME  VALID    23825           119167          23825           119167          NONE                  

DATABASE(RWC1_01B) APPLY INFO FROM (RWC1_01), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30220, 30220, 30220], (RLSN, SLSN, KLSN)[119167, 119167, 119167], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (119167)


ASYNC SOURCE INSTANCE: RWC1_01

<<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.10.102      5436         2022-08-11 11:14:36  LOCAL     VALID     OPEN           RWC1_02B         OK        1     1     OPEN        STANDBY   DSC_OPEN       NONE      NULL     

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.10.102      5236       OK        RWC1_02B         OPEN        STANDBY   0          0            NONE      NULL     10702           118837          10702           118837          NONE                  

DATABASE(RWC1_02B) APPLY INFO FROM (RWC1_01), REDOS_PARALLEL_NUM (1), ARCH_SEND_UNTIL_TIME[NONE], APPLY_UNTIL_TIME[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30107, 30107, 30107], (RLSN, SLSN, KLSN)[118837, 118837, 118837], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (118837)


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

6.6 DEM安装部署后添加到集群中,查看状态

在这里插入图片描述

7故障测试

7.1手动切换灾备数据库

login
用户名:SYSDBA
密码:
[monitor]         2022-08-11 11:29:10: 登录监视器成功!

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

switchover RWC1_01B
[monitor]         2022-08-11 11:29:28: 开始切换实例RWC1_01B
[monitor]         2022-08-11 11:29:28: 通知守护进程RWC1_01切换SWITCHOVER状态
[monitor]         2022-08-11 11:29:28: 守护进程(RWC1_01)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2022-08-11 11:29:29: 切换守护进程RWC1_01为SWITCHOVER状态成功
[monitor]         2022-08-11 11:29:29: 通知守护进程RWC1_01B切换SWITCHOVER状态
[monitor]         2022-08-11 11:29:29: 守护进程(RWC1_01B)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2022-08-11 11:29:30: 切换守护进程RWC1_01B为SWITCHOVER状态成功
[monitor]         2022-08-11 11:29:30: 实例RWC1_01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2022-08-11 11:29:31: 实例RWC1_01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2022-08-11 11:29:31: 实例RWC1_01B开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2022-08-11 11:29:31: 实例RWC1_01B执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2022-08-11 11:29:31: 实例RWC1_01开始执行ALTER DATABASE MOUNT语句
[monitor]         2022-08-11 11:29:32: 实例RWC1_01执行ALTER DATABASE MOUNT语句成功
[monitor]         2022-08-11 11:29:32: 实例RWC1_01B开始执行SP_APPLY_KEEP_PKG()语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B执行SP_APPLY_KEEP_PKG()语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B开始执行ALTER DATABASE MOUNT语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B执行ALTER DATABASE MOUNT语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01开始执行ALTER DATABASE STANDBY语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01执行ALTER DATABASE STANDBY语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B开始执行ALTER DATABASE PRIMARY语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B执行ALTER DATABASE PRIMARY语句成功
[monitor]         2022-08-11 11:29:33: 通知实例RWC1_01B修改所有归档状态无效
[monitor]         2022-08-11 11:29:33: 修改所有实例归档为无效状态成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2022-08-11 11:29:33: 实例RWC1_01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2022-08-11 11:29:33: 实例RWC1_01B开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2022-08-11 11:29:34: 实例RWC1_01B执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2022-08-11 11:29:34: 通知守护进程RWC1_01切换OPEN状态
[monitor]         2022-08-11 11:29:34: 守护进程(RWC1_01)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2022-08-11 11:29:35: 切换守护进程RWC1_01为OPEN状态成功
[monitor]         2022-08-11 11:29:35: 通知守护进程RWC1_01B切换OPEN状态
[monitor]         2022-08-11 11:29:35: 守护进程(RWC1_01B)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2022-08-11 11:29:36: 切换守护进程RWC1_01B为OPEN状态成功
[monitor]         2022-08-11 11:29:36: 通知组(GRWC1)的守护进程执行清理操作
[monitor]         2022-08-11 11:29:36: 清理守护进程(RWC1_01)请求成功
[monitor]         2022-08-11 11:29:36: 清理守护进程(RWC1_01B)请求成功
[monitor]         2022-08-11 11:29:36: 清理守护进程(RWC1_02B)请求成功
[monitor]         2022-08-11 11:29:36: 实例RWC1_01B切换成功

2022-08-11 11:29:36 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRWC1            45331       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.10.101      5436         2022-08-11 11:29:36  GLOBAL    VALID     OPEN           RWC1_01B         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.10.101      5236       OK        RWC1_01B         OPEN        PRIMARY   0          0            REALTIME  VALID    30630           122665          30630           122665          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.10.100      5436         2022-08-11 11:29:36  GLOBAL    VALID     OPEN           RWC1_01          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.10.100      5236       OK        RWC1_01          OPEN        STANDBY   0          0            REALTIME  INVALID  30629           120219          30629           120219          NONE                  

DATABASE(RWC1_01) APPLY INFO FROM (RWC1_01B), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30629, 30629, 30629], (RLSN, SLSN, KLSN)[120219, 120219, 120219], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (120219)


ASYNC SOURCE INSTANCE: RWC1_01B

<<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.10.102      5436         2022-08-11 11:29:36  LOCAL     VALID     OPEN           RWC1_02B         OK        1     1     OPEN        STANDBY   DSC_OPEN       NONE      NULL     

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.10.102      5236       OK        RWC1_02B         OPEN        STANDBY   0          0            NONE      NULL     10702           119553          10702           119553          NONE                  

DATABASE(RWC1_02B) APPLY INFO FROM (RWC1_01), REDOS_PARALLEL_NUM (1), ARCH_SEND_UNTIL_TIME[NONE], APPLY_UNTIL_TIME[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30378, 30378, 30378], (RLSN, SLSN, KLSN)[119553, 119553, 119553], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (119553)

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

[monitor]         2022-08-11 11:29:38: 守护进程(RWC1_01B)状态切换 [OPEN-->RECOVERY]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:29:38  RECOVERY       OK        RWC1_01B         OPEN        PRIMARY   VALID    10       122666          122666          

[monitor]         2022-08-11 11:29:39: 守护进程(RWC1_01B)状态切换 [RECOVERY-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:29:39  OPEN           OK        RWC1_01B         OPEN        PRIMARY   VALID    10       122666          122667          

在这里插入图片描述

7.2自动切换灾备数据库

[dmdba@DM02 ~]$ ps -ef |grep dms
dmdba      7705   7650  0 11:32 pts/4    00:00:00 grep --color=auto dms
dmdba    113975      1  0 03:22 pts/0    00:03:21 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole mount
[dmdba@DM02 ~]$ kill -9 113975

[monitor]         2022-08-11 11:32:32: 实例RWC1_01B[PRIMARY, OPEN, ISTAT_SAME:TRUE]故障
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:32  STARTUP        ERROR     RWC1_01B         OPEN        PRIMARY   VALID    10       122863          122864          

[monitor]         2022-08-11 11:32:32: 守护进程(RWC1_01B)状态切换 [OPEN-->STARTUP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:32  STARTUP        ERROR     RWC1_01B         OPEN        PRIMARY   VALID    10       122863          122864          

[monitor]         2022-08-11 11:32:34: 守护进程(RWC1_01)状态切换 [OPEN-->TAKEOVER]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:34  TAKEOVER       OK        RWC1_01          OPEN        STANDBY   VALID    10       122863          122863          

[monitor]         2022-08-11 11:32:37: 守护进程(RWC1_01)状态切换 [TAKEOVER-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:36  OPEN           OK        RWC1_01          OPEN        PRIMARY   VALID    11       125310          125310          

[monitor]         2022-08-11 11:32:54: 实例RWC1_01B[PRIMARY, AFTER REDO, ISTAT_SAME:TRUE]恢复正常
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:54  STARTUP        OK        RWC1_01B         AFTER REDO  PRIMARY   VALID    10       122864          122864          

[monitor]         2022-08-11 11:32:55: 守护进程(RWC1_01B)状态切换 [STARTUP-->UNIFY EP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:55  UNIFY EP       OK        RWC1_01B         MOUNT       STANDBY   INVALID  10       122864          122864          

[monitor]         2022-08-11 11:32:55: 守护进程(RWC1_01B)状态切换 [UNIFY EP-->STARTUP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:55  STARTUP        OK        RWC1_01B         OPEN        STANDBY   INVALID  10       122864          122864          

[monitor]         2022-08-11 11:32:55: 守护进程(RWC1_01B)状态切换 [STARTUP-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:55  OPEN           OK        RWC1_01B         OPEN        STANDBY   INVALID  10       122864          122864          

[monitor]         2022-08-11 11:32:55: 守护进程(RWC1_01)状态切换 [OPEN-->RECOVERY]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:55  RECOVERY       OK        RWC1_01          OPEN        PRIMARY   VALID    11       125322          125322          

[monitor]         2022-08-11 11:32:58: 守护进程(RWC1_01)状态切换 [RECOVERY-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-08-11 11:32:58  OPEN           OK        RWC1_01          OPEN        PRIMARY   VALID    11       125323          125323          

show
2022-08-11 11:33:10 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRWC1            45331       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.10.100      5436         2022-08-11 11:33:10  GLOBAL    VALID     OPEN           RWC1_01          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.10.100      5236       OK        RWC1_01          OPEN        PRIMARY   0          0            REALTIME  VALID    30726           125326          30727           125327          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.10.101      5436         2022-08-11 11:33:10  GLOBAL    VALID     OPEN           RWC1_01B         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.10.101      5236       OK        RWC1_01B         OPEN        STANDBY   0          0            REALTIME  VALID    30713           125327          30713           125327          NONE                  

DATABASE(RWC1_01B) APPLY INFO FROM (RWC1_01), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30727, 30727, 30727], (RLSN, SLSN, KLSN)[125327, 125327, 125327], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (125327)


ASYNC SOURCE INSTANCE: RWC1_01

<<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.10.102      5436         2022-08-11 11:33:10  LOCAL     VALID     OPEN           RWC1_02B         OK        1     1     OPEN        STANDBY   DSC_OPEN       NONE      NULL     

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.10.102      5236       OK        RWC1_02B         OPEN        STANDBY   0          0            NONE      NULL     10702           122667          10702           122667          NONE                  

DATABASE(RWC1_02B) APPLY INFO FROM (RWC1_01B), REDOS_PARALLEL_NUM (1), ARCH_SEND_UNTIL_TIME[NONE], APPLY_UNTIL_TIME[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[30633, 30633, 30633], (RLSN, SLSN, KLSN)[122667, 122667, 122667], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (122667)

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

8验证主+备+异备同步是否正常

主库:创建一张测试表,记录创建时间
[dmdba@DM01 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 3.913(ms)
disql V8
SQL>              
SQL> select now();

行号     NOW()                     
---------- --------------------------
1          2022-08-11 14:06:59.995948

已用时间: 1.888(毫秒). 执行号:684900.
SQL> 
SQL> create TABLE ceshi1 as select * from dba_objects;
操作已执行
已用时间: 156.193(毫秒). 执行号:684901.
SQL> 
SQL> select count(*) from SYSDBA.CESHI1;

行号     COUNT(*)            
---------- --------------------
1          881

已用时间: 3.022(毫秒). 执行号:684902.
SQL> 


备库查询:表和数据正常
[dmdba@DM02 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间 : 7.219(ms)
disql V8
SQL> 
SQL> select now();

行号     NOW()                     
---------- --------------------------
1          2022-08-11 14:07:19.989434

已用时间: 4.597(毫秒). 执行号:262500.
SQL> 
SQL> select count(*) from SYSDBA.CESHI1;

行号     COUNT(*)            
---------- --------------------
1          881

已用时间: 2.661(毫秒). 执行号:262501.
SQL> 
SQL> 

异备库查询:发现表不存在,等待十分钟
[dmdba@DM03 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间 : 18.955(ms)
disql V8
SQL> 
SQL> select now();

行号     NOW()                     
---------- --------------------------
1          2022-08-11 14:07:34.250343

已用时间: 2.691(毫秒). 执行号:368000.
SQL> 
SQL> select count(*) from SYSDBA.CESHI1;
select count(*) from SYSDBA.CESHI1;
第1 行附近出现错误[-2106]:无效的表或视图名[CESHI1].
已用时间: 2.424(毫秒). 执行号:0.
SQL> 
SQL> select now();

行号     NOW()                     
---------- --------------------------
1          2022-08-11 14:17:26.885394

已用时间: 1.889(毫秒). 执行号:368001.
SQL> select count(*) from SYSDBA.CESHI1;

行号     COUNT(*)            
---------- --------------------
1          881

已用时间: 2.281(毫秒). 执行号:368002.
SQL> 
数据同步正常,DDL操作的结果也是一样的

社区地址:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值