DM DW主备集群切换测试
目 录
一、DW主备集群IP地址信息规划
(1)IP地址信息规划
系统 |
节点 |
主机名 |
服务IP |
心跳IP |
实例名 |
实例监听端口 |
DW主备集群 |
PRIMARY主库 |
dm3 |
192.168.2.13 |
192.168.0.13 |
DMOA1 |
5234 |
STANDBY备库 |
dm4 |
192.168.2.14 |
192.168.0.14 |
DMOA2 |
5234 |
(2)端口信息规划
角色 项目 |
主库 |
备库 |
实例名称 |
DMOA1 |
DMOA2 |
主机名称 |
dm3 |
dm4 |
角色 |
PRIMARY |
STANDBY |
PORT_NUM |
5234 |
5234 |
MAL_PORT |
61141 |
61141 |
MAL_INST_PORT |
5234 |
5234 |
MAL_DW_PORT |
52141 |
52141 |
INST_OGUID |
453331 |
453331 |
二、数据守护系统架构
数据守护系统结构图
(1)DM数据守护实现原理
DM数据守护(Data Watch)的实现原理非常简单:将主库(生产库)产生的Redo日志传输到备库,备库接收并重新应用Redo日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为Redo日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。
DM数据守护系统结构主要由主库、备库、Redo日志、Redo日志传输、Redo日志重演、守护进程(dmwatcher)、监视器(dmmonitor)组成。
三、主备集群切换前的验证
3.1 查看集群主备状态
通过dmmonitor管理界面查看集群状态,
命令是:show global info --查看集群状态
(1)节点一(192.168.0.13)数据库角色是PRIMARY主库,INST_OK状态时OK,ISTATUS状态时OPEN。
(2)节点二(192.168.0.14)数据库角色是STANDBY备库,INST_OK状态时OK,ISTATUS状态时OPEN。
3.2 检查数据一致性
(1)在节点一dm3上查询永久魔数和CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN四个值,在切换之前,这四个值在主备节点要分别保持一致。如果这四个值在主备节点分别是一致的,说明主备节点数据是一致的,可以进行主备库切换。
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/cssWEB123@192.168.2.13:5234 --连接数据库
select permanent_magic; --查看永久魔数
select CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN from v$rlog; --查看数据库LSN值
如果不一致,可以手动切换日志或手动产生检查点。
checkpoint(100) --手动刷新检查点
ALTER SYSTEM SWITCH LOGFILE; --手动切换日志
(2)在节点二dm4查询永久魔数和CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN四个值,这四个值在主备节点要分别保持一致。
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/cssWEB123@192.168.2.14:5234
select permanent_magic;
select CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN from v$rlog;
3.3 主备集群切换注意事项
(1)切换前一定要检查主备库数据是否一致,可以通过查询永久魔数和LSN值进行验证。
(2)生产系统的主备集群建议定期进行切换演练,验证主备集群的稳定性和可靠性,一般一年进行两次切换演练。
(3)主备集群切换演练时间,建议安排在业务低峰期间进行操作,减少对业务系统的影响。切换演练前,做好数据备份工作和切换演练方案的评审。
四、进行主备库切换
4.1 用SYSDBA进行主备库切换
(1)首先登录dmmonitor管理界面,用SYSDBA登录。执行choose switchover命令。
login
username:SYSDBA
password:******
[monitor] 2021-07-02 23:52:45: Login dmmonitor success!
choose switchover
Can choose one of the following instances to do switchover:
1: DMOA2
switchover
[monitor] 2021-07-02 23:54:02: Start to switchover instance DMOA2
[monitor] 2021-07-02 23:54:02: Notify dmwatcher(DMOA1) switch to SWITCHOVER status
[monitor] 2021-07-02 23:54:03: Dmwatcher process DMOA1 status switching [OPEN-->SWITCHOVER]
[monitor] 2021-07-02 23:54:03: Switch dmwatcher DMOA1 to SWITCHOVER status success
[monitor] 2021-07-02 23:54:03: Notify dmwatcher(DMOA2) switch to SWITCHOVER status
[monitor] 2021-07-02 23:54:04: Dmwatcher process DMOA2 status switching [OPEN-->SWITCHOVER]
[monitor] 2021-07-02 23:54:05: Switch dmwatcher DMOA2 to SWITCHOVER status success
[monitor] 2021-07-02 23:54:05: Instance DMOA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor] 2021-07-02 23:54:05: Instance DMOA1 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor] 2021-07-02 23:54:05: Instance DMOA2 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor] 2021-07-02 23:54:05: Instance DMOA2 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor] 2021-07-02 23:54:05: Instance DMOA1 start to execute sql ALTER DATABASE MOUNT
[monitor] 2021-07-02 23:54:07: Instance DMOA1 execute sql ALTER DATABASE MOUNT success
[monitor] 2021-07-02 23:54:07: Instance DMOA2 start to execute sql SP_APPLY_KEEP_PKG()
[monitor] 2021-07-02 23:54:07: Instance DMOA2 execute sql SP_APPLY_KEEP_PKG() success
[monitor] 2021-07-02 23:54:07: Instance DMOA2 start to execute sql ALTER DATABASE MOUNT
[monitor] 2021-07-02 23:54:09: Instance DMOA2 execute sql ALTER DATABASE MOUNT success
[monitor] 2021-07-02 23:54:09: Instance DMOA1 start to execute sql ALTER DATABASE STANDBY
[monitor] 2021-07-02 23:54:09: Instance DMOA1 execute sql ALTER DATABASE STANDBY success
[monitor] 2021-07-02 23:54:09: Instance DMOA2 start to execute sql ALTER DATABASE PRIMARY
[monitor] 2021-07-02 23:54:09: Instance DMOA2 execute sql ALTER DATABASE PRIMARY success
[monitor] 2021-07-02 23:54:09: Notify instance DMOA2 to change all arch status to be invalid
[monitor] 2021-07-02 23:54:09: Succeed to change all instances arch status to be invalid
[monitor] 2021-07-02 23:54:09: Instance DMOA1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor] 2021-07-02 23:54:09: Instance DMOA1 execute sql ALTER DATABASE OPEN FORCE success
[monitor] 2021-07-02 23:54:09: Instance DMOA2 start to execute sql ALTER DATABASE OPEN FORCE
[monitor] 2021-07-02 23:54:11: Instance DMOA2 execute sql ALTER DATABASE OPEN FORCE success
[monitor] 2021-07-02 23:54:11: Instance DMOA1 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor] 2021-07-02 23:54:13: Instance DMOA1 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor] 2021-07-02 23:54:13: Instance DMOA2 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor] 2021-07-02 23:54:13: Instance DMOA2 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor] 2021-07-02 23:54:13: Notify dmwatcher(DMOA1) switch to OPEN status
[monitor] 2021-07-02 23:54:13: Dmwatcher process DMOA1 status switching [SWITCHOVER-->OPEN]
[monitor] 2021-07-02 23:54:14: Switch dmwatcher DMOA1 to OPEN status success
[monitor] 2021-07-02 23:54:14: Notify dmwatcher(DMOA2) switch to OPEN status
[monitor] 2021-07-02 23:54:14: Dmwatcher process DMOA2 status switching [SWITCHOVER-->OPEN]
[monitor] 2021-07-02 23:54:15: Switch dmwatcher DMOA2 to OPEN status success
[monitor] 2021-07-02 23:54:15: Notify group(DMOA)'s dmwatcher to do clear
[monitor] 2021-07-02 23:54:15: Clean request of dmwatcher processer DMOA1 success
2021-07-02 23:54:15
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
DMOA 453331 TRUE AUTO FALSE
4.2 切换后查询主备集群状态
通过dmmonitor管理界面查看集群状态,
命令是:show global info --查看集群状态
(1)节点一(192.168.0.13)角色是STANDBY主库,INST_OK状态时OK,ISTATUS状态时OPEN。
(2)节点二(192.168.0.14)角色是PRIMARY备库,INST_OK状态时OK,ISTATUS状态时OPEN。
版权声明:本文为博主原创文章,未经博主允许不得转载。
https://www.dameng.com/
- 上一篇:DM 数据库相关进程
- 下一篇:DM 重做日志文件管理