注册
一主两备改造一主一实时一同步步骤及相关故障测试
培训园地/ 文章详情 /

一主两备改造一主一实时一同步步骤及相关故障测试

VIII 2025/07/02 31 0 0

1 背景说明

段落引用前遇见某一现场有一主两备改造为一主一备一实时。日常中我们指的备库均为实时备库(REALTIME),但由于网络或其他问题,现场不希望备库出现问题后导致主库进入不可读的状态,且对数据的实时性也具有一定要求,此时就可以采用同步备库(SYNC)的方式来做主备库同步。

2 测试环境

2.2 dm8_01

操作系统 Redhat6.9
数据库版本 05134284194-20240814-239099-20108
服务器内存 5GB
数据库软件路径 /home/dmdba/dm/dmdbms
数据路径 /dbdata/dmdata
归档路径 /dbarch/dmarch
日志路径 /home/dmdba/dm/dmdbms/log
内部通信IP网络 192.168.20.61
对外服务IP地址 192.168.20.31

2.3 dm8_02

操作系统 Redhat6.9
数据库版本 05134284194-20240814-239099-20108
服务器内存 5GB
数据库软件路径 /home/dmdba/dm/dmdbms
数据路径 /dbdata/dmdata
归档路径 /dbarch/dmarch
日志路径 /home/dmdba/dm/dmdbms/log
内部通信IP网络 192.168.20.62
对外服务IP地址 192.168.20.32

2.4 dm8_03

操作系统 Redhat6.9
数据库版本 05134284194-20240814-239099-20108
服务器内存 4GB
数据库软件路径 /home/dmdba/dm/dmdbms
数据路径 /dbdata/dmdata
归档路径 /dbarch/dmarch
日志路径 /home/dmdba/dm/dmdbms/log
内部通信IP网络 192.168.20.64
对外服务IP地址 192.168.20.34

2.5 确认监视器

操作系统 Redhat6.9
数据库版本 05134284194-20240814-239099-20108
服务器内存 2GB
数据库软件路径 /home/dmdba/dm/dmdbms
数据路径 /dbdata/dmdata
归档路径 /dbarch/dmarch
日志路径 /home/dmdba/dm/dmdbms/log
内部通信IP网络 192.168.20.63
对外服务IP地址 192.168.20.33

3 一主两备改造一主一备一同步备库步骤

现有环境为一主两备,由于一备机服务器需要搬迁至异地机房,根据需求将搬迁至异地机房的实时备库更改为同步备库,本次对一主两备架构进行改造测试,改造后架构为一主一备加同步备库。

3.1 实时备库和同步备库的区别和适用场景

特性 同步备库(SYNC) 实时备库(REALTIME)
日志发送时机 主库归档日志刷盘后发送 主库写入联机日志前发送
响应机制 收到日志立即响应主库 事务一致模式需重演后响应,高性能模式立即响应
失败处理 设置归档为无效状态,不挂起主库 主库挂起(Suspend)等待守护进程干预
适用场景 高可用容灾,允许短暂数据延迟 强一致性场景,要求零数据丢失

3.2 测试步骤

改造前环境信息:

机器名 IP地址 初始状态
dm8_01 外部服务IP:192.168.20.31 主库:GRP1_DM1
dm8_01 内部通信IP:192.168.20.61 主库:GRP1_DM1
dm8_02 外部服务IP:192.168.20.33 备库一:GRP1_DM2
dm8_02 内部通信IP:192.168.20.63 备库一:GRP1_DM2
dm8_03 外部服务IP:192.168.20.34 备库二:GRP1_DM3
dm8_03 内部通信IP:192.168.20.64 备库二:GRP1_DM3
本次测试将会把GRP1_DM3改造为同步备库。

3.2.1 改造前检查,确认数据库运行正常

1.png

3.2.2 备份配置文件并修改主备数据库的dmarch.ini

备份:

dm8_01、dm8_02、dm8_03中执行:
cd /dbdata/dmdata/DAMENG
cp dm.ini dm.ini_250419
cp dmmal.ini dm.ini_250419
cp dmwatcher.ini  dmwatcher.ini_bak
cp dmarch.ini dmarch.ini_bak

修改dmarch.ini,将三台数据库中的GRP1_DM3修改为SYNC:

GRP1_DM1,GRP1_DM2进行如下操作:
vi dmarch.ini
[ARCHIVE_REALTIME2]
ARCH_TYPE = SYNC
ARCH_DEST = GRP1_DM3
ARCH_RECOVER_TIME = 5  同步备库的异步恢复间隔

2.png
3.png

GRP1_DM3进行如下操作:
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dbarch/dmarch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 1024

4.png

3.2.3 修改GRP1_DM3的dmwatcher.ini

修改GRP1_DM3的守护类型和故障切换模式:
vi dmwatcher.ini
DW_TYPE = LOCAL
DW_MODE = MANUAL

image.png

3.2.4 停止三台数据库运行

停止先后顺序有要求,必须要先停止主库
./DmWatcherServiceDM1 stop
./DmWatcherServiceDM2 stop
./DmWatcherServiceDM3 stop
./DmServiceDM1 stop
./DmServiceDM2 stop
./DmServiceDM3 stop

3.2.5 以mount方式启动实例和守护进程

按照GRP1_DM2、GRP1_DM1、GRP1_DM3先后执行实例启动:
./dmserver  /dbdata/dmdata/DAMENG/dm.ini mount
按照如下顺序执行守护进程启动:
./DmWatcherServiceDM2 start
./DmWatcherServiceDM1 start
./DmWatcherServiceDM3 start

启动后监视器显示如下:
5.png

4 故障测试

4.1 主库网络故障

Down掉主库的内部通信网络,实时备库自动接管,切换为主库
1.png
2.png
3.png

4.2 实时备库网络故障

Down掉实时备库内部通信网卡,主库进行FAILOVER,强制切换为OPEN状态,如下图:
1.png
其中主主库会短时进入到SUPPEND状态,如下图:
2.png
实时备库网络恢复后,实时备库追上同步,如下图:
3.png

4.3 同步备库网络故障

Down掉同步备库网卡内部通信网卡,主库读写不受到影响,同步备库归档状态切换为INVALID,等待网络恢复后异步恢复。
1.png
网络恢复后同步备库追上同步后归档状态切换为有效
2.png

4.4 主库、实时备库出现网络故障

无法写入数据,只能进行现在数据读取
1.png
同步备库无法通过dmmontor去切换为主库
2.png
可以暂时将主备库的内部通信IP地址更换为外部访问IP地址恢复对外服务。

4.5 主库、同步备库网络故障

Down掉主库和同步备库的内部通信网卡,实时备库会自动接管切换为主库。
3.png

4.6 主库服务器掉电测试

目前主库为GRP1_DM2,强制对GRP1_DM2虚拟机进行关机
image.png
观察监视器输出
image.png
实时备库自动接管,切换为主库。
同步备库数据同步正常。

4.7 备库服务器掉电测试

目前实时备库为GRP1_DM2,强制对GRP1_DM2虚拟机进行关机
image.png
观察监视器输出:备库服务器掉电后,主库会进入failover流程,强制OPEN。如下图:
image.png
主库会短时进入到SUPPEND状态,如下图:
1.png

4.8 主库和实时备库服务器故障,短期无法恢复

只能够将同步备库更改为实时备库,并强制takeover force切换为主库。如下步骤所示:
先停止同步备库的运行和原来的GRP1_DM1、GRP1_DM2库的运行:
image.png
更改同步备库的dmarch.ini和dmwathcer.ini两个配置文件(先备份):
image.png
image.png
然后启动GRP1_DM3:
image.png
进入到监视器中,执行takeover force命令:

1111.png
注意:takeover无法执行成功
image.png
GRP1_DM3接管完成后可正常读写,业务恢复访问:
image.png
后继数据库进入备库重建及同步备库重建环节。

5 附件

5.1 一主两备相关配置文件

5.1.1 GRP1_DM1(主库)

dmmal.ini
dmwatcher.ini
dmarch.ini
dm.ini

5.1.2 GRP1_DM2(实时备库)

dmmal.ini
dmarch.ini
dmwatcher.ini
dm.ini

5.1.3 GRP1_DM3(实时备库)

dmmal.ini
dmarch.ini
dmwatcher.ini
dm.ini

5.2 一主一实时一同步配置文件

5.2.1 GRP1_DM1(主库)

dmarch.ini
dmmal.ini
dmwatcher.ini
dm.ini

5.2.2 GRP1_DM2(实时备库)

dmarch.ini
dmmal.ini
dmwatcher.ini
dm.ini

5.2.3 GRP1_DM3(同步备库)

dmarch.ini
dmmal.ini
dmwatcher.ini
dm.ini

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服