1.switchover 切换
cat switchover_OA2.sh
#!/bin/bash
expect -c '
spawn /home/dmdba/dmdbms/bin/dmmonitor /dm/dmdata/OA/dmmonitor_manual.ini
send "login\r"
expect "username:"
send "sysdba\r"
expect "password:"
send "按照实际密码输入\r"
expect "choose switchover GRP_RW"
##切换OA2实例为主库
send "switchover GRP_RW.OA2\r"
interact
'
执行日志如下
[dmdba@xxxx ~]$ sh switchover_OA2.sh
spawn /home/dmdba/dmdbms/bin/dmmonitor /dm/dmdata/OA/dmmonitor_manual.ini
login
[monitor] 2024-10-28 19:26:53: DMMONITOR[4.0] V8
[monitor] 2024-10-28 19:26:54: DMMONITOR[4.0] IS READY.
[monitor] 2024-10-28 19:26:54: Received message from(OA1)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-10-28 19:26:54 OPEN OK OA1 OPEN PRIMARY VALID 22 77517 77517
[monitor] 2024-10-28 19:26:54: Received message from(OA2)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-10-28 19:26:54 OPEN OK OA2 OPEN STANDBY VALID 22 77517 77517
username:sysdba
password:
[monitor] 2024-10-28 19:26:56: Login dmmonitor success!
switchover GRP_RW.OA2
[monitor] 2024-10-28 19:27:06: Start to switchover instance OA2
[monitor] 2024-10-28 19:27:06: Notify dmwatcher(OA1) switch to SWITCHOVER status
[monitor] 2024-10-28 19:27:06: Dmwatcher process OA1 status switching [OPEN-->SWITCHOVER]
[monitor] 2024-10-28 19:27:07: Switch dmwatcher OA1 to SWITCHOVER status success
[monitor] 2024-10-28 19:27:07: Notify dmwatcher(OA2) switch to SWITCHOVER status
[monitor] 2024-10-28 19:27:07: Dmwatcher process OA2 status switching [OPEN-->SWITCHOVER]
[monitor] 2024-10-28 19:27:09: Switch dmwatcher OA2 to SWITCHOVER status success
[monitor] 2024-10-28 19:27:09: Instance OA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor] 2024-10-28 19:27:09: Instance OA1 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor] 2024-10-28 19:27:09: Instance OA2 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor] 2024-10-28 19:27:09: Instance OA2 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor] 2024-10-28 19:27:09: Instance OA1 start to execute sql ALTER DATABASE MOUNT
[monitor] 2024-10-28 19:27:09: Instance OA1 execute sql ALTER DATABASE MOUNT success
[monitor] 2024-10-28 19:27:09: Instance OA2 start to execute sql SP_APPLY_KEEP_PKG()
[monitor] 2024-10-28 19:27:09: Instance OA2 execute sql SP_APPLY_KEEP_PKG() success
[monitor] 2024-10-28 19:27:09: Instance OA2 start to execute sql ALTER DATABASE MOUNT
[monitor] 2024-10-28 19:27:10: Instance OA2 execute sql ALTER DATABASE MOUNT success
[monitor] 2024-10-28 19:27:10: Instance OA1 start to execute sql ALTER DATABASE STANDBY
[monitor] 2024-10-28 19:27:10: Instance OA1 execute sql ALTER DATABASE STANDBY success
[monitor] 2024-10-28 19:27:10: Instance OA2 start to execute sql ALTER DATABASE PRIMARY
[monitor] 2024-10-28 19:27:11: Instance OA2 execute sql ALTER DATABASE PRIMARY success
[monitor] 2024-10-28 19:27:11: Notify instance OA2 to change all arch status to be invalid
[monitor] 2024-10-28 19:27:11: Succeed to change all instances arch status to be invalid
[monitor] 2024-10-28 19:27:11: Instance OA1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor] 2024-10-28 19:27:12: Instance OA1 execute sql ALTER DATABASE OPEN FORCE success
[monitor] 2024-10-28 19:27:12: Instance OA2 start to execute sql ALTER DATABASE OPEN FORCE
[monitor] 2024-10-28 19:27:13: Instance OA2 execute sql ALTER DATABASE OPEN FORCE success
[monitor] 2024-10-28 19:27:13: Instance OA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor] 2024-10-28 19:27:13: Instance OA1 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor] 2024-10-28 19:27:13: Instance OA2 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor] 2024-10-28 19:27:13: Instance OA2 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor] 2024-10-28 19:27:13: Notify dmwatcher(OA1) switch to OPEN status
[monitor] 2024-10-28 19:27:13: Dmwatcher process OA1 status switching [SWITCHOVER-->OPEN]
[monitor] 2024-10-28 19:27:14: Switch dmwatcher OA1 to OPEN status success
[monitor] 2024-10-28 19:27:14: Notify dmwatcher(OA2) switch to OPEN status
[monitor] 2024-10-28 19:27:14: Dmwatcher process OA2 status switching [SWITCHOVER-->OPEN]
[monitor] 2024-10-28 19:27:14: Switch dmwatcher OA2 to OPEN status success
[monitor] 2024-10-28 19:27:14: Notify group(GRP_RW)'s dmwatcher to do clear
[monitor] 2024-10-28 19:27:15: Clean request of dmwatcher processer OA1 success
2024-10-28 19:27:15
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP_RW 453331 FALSE MANUAL 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
10.186.10.11 52141 2024-10-28 19:27:15 GLOBAL VALID OPEN OA2 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.11 5236 OK OA2 OPEN PRIMARY 0 0 REALTIME VALID 4456 79964 4456 79964 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
10.186.10.10 52141 2024-10-28 19:27:15 GLOBAL VALID OPEN OA1 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.10 5236 OK OA1 OPEN STANDBY 0 0 REALTIME INVALID 4454 77518 4454 77518 NONE
DATABASE(OA1) APPLY INFO FROM (OA2), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4454, 4454, 4454], (RLSN, SLSN, KLSN)[77518, 77518, 77518], N_TSK[0], TSK_MEM_USE[0]
REDO_LSN_ARR: (77518)
#================================================================================#
[monitor] 2024-10-28 19:27:15: Clean request of dmwatcher processer OA2 success
[monitor] 2024-10-28 19:27:15: Switchover instance OA2 success
[monitor] 2024-10-28 19:27:17: Dmwatcher process OA2 status switching [OPEN-->RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-10-28 19:27:17 RECOVERY OK OA2 OPEN PRIMARY VALID 23 79964 79964
[monitor] 2024-10-28 19:27:19: Dmwatcher process OA2 status switching [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-10-28 19:27:20 OPEN OK OA2 OPEN PRIMARY VALID 23 79964 79964
2.takeover切换
模拟其中一台机器宕机,然后执行此脚本。
cat takeover_OA1.sh
#!/bin/bash
expect -c '
spawn /home/dmdba/dmdbms/bin/dmmonitor /dm/dmdata/OA/dmmonitor_manual.ini
send "login\r"
expect "username:"
send "sysdba\r"
expect "password:"
send "按照实际密码输入\r"
expect "choose takeover force GRP_RW"
##切换OA1实例为主库
send "takeover force GRP_RW.OA1\r"
expect "Be careful to do so, this operation may cause data split, please confirm to continue or not(Y/N)?\r"
send "Y\r"
interact
'
执行日志如下
[dmdba@xxx ~]$ sh takeover_OA1.sh
spawn /home/dmdba/dmdbms/bin/dmmonitor /dm/dmdata/OA/dmmonitor_manual.ini
login
[monitor] 2024-10-28 19:18:10: DMMONITOR[4.0] V8
[monitor] 2024-10-28 19:18:10: DMMONITOR[4.0] IS READY.
[monitor] 2024-10-28 19:18:10: Received message from(OA1)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-10-28 19:18:10 OPEN OK OA1 OPEN STANDBY NULL 21 75071 75071
username:sysdba
password:
[monitor] 2024-10-28 19:18:15: Login dmmonitor success!
takeover force GRP_RW.OA1
Be careful to do so, this operation may cause data split, please confirm to continue or not(Y/N)?
Y
[monitor] 2024-10-28 19:18:26: Start to takeover use instance OA1
[monitor] 2024-10-28 19:18:26: Notify dmwatcher(OA1) switch to TAKEOVER status
[monitor] 2024-10-28 19:18:26: Dmwatcher process OA1 status switching [OPEN-->TAKEOVER]
[monitor] 2024-10-28 19:18:27: Switch dmwatcher OA1 to TAKEOVER status success
[monitor] 2024-10-28 19:18:27: Instance OA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 7)
[monitor] 2024-10-28 19:18:27: Instance OA1 execute sql SP_SET_GLOBAL_DW_STATUS(0, 7) success
[monitor] 2024-10-28 19:18:27: Instance OA1 start to execute sql SP_APPLY_KEEP_PKG()
[monitor] 2024-10-28 19:18:28: Instance OA1 execute sql SP_APPLY_KEEP_PKG() success
[monitor] 2024-10-28 19:18:28: Instance OA1 start to execute sql ALTER DATABASE MOUNT
[monitor] 2024-10-28 19:18:28: Instance OA1 execute sql ALTER DATABASE MOUNT success
[monitor] 2024-10-28 19:18:28: Instance OA1 start to execute sql ALTER DATABASE PRIMARY
[monitor] 2024-10-28 19:18:28: Instance OA1 execute sql ALTER DATABASE PRIMARY success
[monitor] 2024-10-28 19:18:28: Notify instance OA1 to change all arch status to be invalid
[monitor] 2024-10-28 19:18:28: Succeed to change all instances arch status to be invalid
[monitor] 2024-10-28 19:18:28: Instance OA1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor] 2024-10-28 19:18:29: Instance OA1 execute sql ALTER DATABASE OPEN FORCE success
[monitor] 2024-10-28 19:18:29: Instance OA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(7, 0)
[monitor] 2024-10-28 19:18:29: Instance OA1 execute sql SP_SET_GLOBAL_DW_STATUS(7, 0) success
[monitor] 2024-10-28 19:18:29: Notify dmwatcher(OA1) switch to OPEN status
[monitor] 2024-10-28 19:18:29: Dmwatcher process OA1 status switching [TAKEOVER-->OPEN]
[monitor] 2024-10-28 19:18:30: Switch dmwatcher OA1 to OPEN status success
[monitor] 2024-10-28 19:18:30: Notify group(GRP_RW)'s dmwatcher to do clear
2024-10-28 19:18:30
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP_RW 453331 FALSE MANUAL 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
10.186.10.10 52141 2024-10-28 19:18:30 GLOBAL VALID OPEN OA1 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.10 5236 OK OA1 OPEN PRIMARY 0 0 REALTIME VALID 4446 77517 4446 77517 NONE
#================================================================================#
[monitor] 2024-10-28 19:18:30: Clean request of dmwatcher processer OA1 success
[monitor] 2024-10-28 19:18:30: Success to takeover use instance OA1
备注:使用expect命令,需要先安装tcl包,然后再安装expect包。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




