暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

MogDB主备切换之switchover与failover

569

switchover

在主备机正常时,出于维护的需要,将备机切换为主机,可保证切换过程中数据不丢失。
查看集群实例主备状态:1节点为主库,2节点为备库

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Primary Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Standby Normal

在备节点执行切换主备操作:

$ gs_ctl switchover -D /opt/MogDB/data/dn [2021-01-15 02:44:55.125][1034][][gs_ctl]: gs_ctl switchover ,datadir is /opt/MogDB/data/dn [2021-01-15 02:44:55.125][1034][][gs_ctl]: switchover term (1) [2021-01-15 02:44:55.137][1034][][gs_ctl]: waiting for server to switchover… [2021-01-15 02:45:06.250][1034][][gs_ctl]: done [2021-01-15 02:45:06.250][1034][][gs_ctl]: switchover completed (/opt/MogDB/data/dn)

确认集群主备状态:1节点为备库,2节点为主库

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Standby Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Primary Normal

保存数据库主备机器信息:确保gs_om -t refreshconf 命令执行成功,否则再次重启会影响数据库状态。

$ gs_om -t refreshconf Generating dynamic configuration file for all nodes. Successfully generated dynamic configuration file.

failover

测试1:在主机异常时,将备机切换为主机。

查看集群实例主备状态:1节点为备库,2节点为主库

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------- 1 og201.2.test 192.168.2.157 6001 /mogdata/db1 P Primary Normal | 2 og201.3.test 192.168.2.158 6002 /mogdata/db1 S Standby Normal

主节点关闭数据库,模拟主节点故障

$ gs_ctl stop -D /mogdata/db1 [2021-12-27 11:34:07.742][24807][][gs_ctl]: gs_ctl stopped ,datadir is /mogdata/db1 waiting for server to shut down......... done server stopped

备节点执行主备切换操作:

$ gs_ctl failover -D /mogdata/db1 [2021-12-27 11:34:42.304][28315][][gs_ctl]: gs_ctl failover ,datadir is /mogdata/db1 [2021-12-27 11:34:42.304][28315][][gs_ctl]: failover term (1) [2021-12-27 11:34:42.310][28315][][gs_ctl]: waiting for server to failover... .[2021-12-27 11:34:43.327][28315][][gs_ctl]: done [2021-12-27 11:34:43.327][28315][][gs_ctl]: failover completed (/mogdata/db1)

确认集群主备状态:备库切换为主库

$ gs_om -t status --detail [ Cluster State ] cluster_state : Degraded redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------- 1 og201.2.test 192.168.2.157 6001 /mogdata/db1 P Down Manually stopped | 2 og201.3.test 192.168.2.158 6002 /mogdata/db1 S Primary Normal

在确定降为备机的节点以standy模式启动MogDB服务:

$$ gs_ctl start -D /mogdata/db1 -M standby [2021-12-27 11:35:10.858][24918][][gs_ctl]: gs_ctl started,datadir is /mogdata/db1 [2021-12-27 11:35:11.010][24918][][gs_ctl]: waiting for server to start... … [2021-12-27 11:35:12.032][24918][][gs_ctl]: done [2021-12-27 11:35:12.032][24918][][gs_ctl]: server started (/mogdata/db1)

确认集群状态:主备节点已顺利切换

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------- 1 og201.2.test 192.168.2.157 6001 /mogdata/db1 P Standby Normal | 2 og201.3.test 192.168.2.158 6002 /mogdata/db1 S Primary Normal

保存数据库主备机器信息:确保gs_om -t refreshconf 命令执行成功,否则再次重启会影响数据库状态。

$ gs_om -t refreshconf Generating dynamic configuration file for all nodes. Successfully generated dynamic configuration file.

测试2:在主机正常时,将备机切换为主机。

将主机重启为备机之后,备机将处于需要修复状态,需要对备机进行build操作。

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Standby Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Primary Normal

备节点执行主备切换操作:

$ gs_ctl failover -D /opt/MogDB/data/dn [2021-01-15 03:33:13.803][17292][][gs_ctl]: gs_ctl failover ,datadir is /opt/MogDB/data/dn [2021-01-15 03:33:13.803][17292][][gs_ctl]: failover term (1) [2021-01-15 03:33:13.810][17292][][gs_ctl]: waiting for server to failover… [2021-01-15 03:33:14.823][17292][][gs_ctl]: done [2021-01-15 03:33:14.823][17292][][gs_ctl]: failover completed (/opt/MogDB/data/dn)

确认集群主备状态:双主状态

$ gs_om -t status --detail [ Cluster State ] cluster_state : Unavailable redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Primary Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Primary Normal

在确定降为备机的节点关闭并以standy模式启动MogDB服务:

$ gs_ctl start -D /opt/MogDB/data/dn -M standby [2021-01-15 03:03:08.695][9126][][gs_ctl]: gs_ctl started,datadir is /opt/MogDB/data/dn [2021-01-15 03:03:08.864][9126][][gs_ctl]: waiting for server to start… … [2021-01-15 03:03:10.921][9126][][gs_ctl]: done [2021-01-15 03:03:10.921][9126][][gs_ctl]: server started (/opt/MogDB/data/dn)

确认集群状态:1节点为主库,2节点为备库,但备库需要修复

$ gs_om -t status --detail [ Cluster State ] cluster_state : Degraded redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Primary Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Standby Need repair(WAL)

在备库所在节点执行修复命令:

[omm@cen7-og1-03 ~]$ gs_ctl build -D /opt/MogDB/data/dn [2021-01-15 03:23:57.702][30784][][gs_ctl]: gs_ctl incremental build ,datadir is /opt/MogDB/data/dn waiting for server to shut down… done server stopped [2021-01-15 03:23:58.726][30784][][gs_ctl]: fopen build pid file “/opt/MogDB/data/dn/gs_build.pid” success [2021-01-15 03:23:58.726][30784][][gs_ctl]: fprintf build pid file “/opt/MogDB/data/dn/gs_build.pid” success [2021-01-15 03:23:58.727][30784][][gs_ctl]: fsync build pid file “/opt/MogDB/data/dn/gs_build.pid” success … [2021-01-15 03:24:02.833][30784][dn_6001_6002][gs_ctl]: done [2021-01-15 03:24:02.833][30784][dn_6001_6002][gs_ctl]: server started (/opt/MogDB/data/dn) [2021-01-15 03:24:02.833][30784][dn_6001_6002][gs_ctl]: fopen build pid file “/opt/MogDB/data/dn/gs_build.pid” success [2021-01-15 03:24:02.833][30784][dn_6001_6002][gs_ctl]: fprintf build pid file “/opt/MogDB/data/dn/gs_build.pid” success [2021-01-15 03:24:02.835][30784][dn_6001_6002][gs_ctl]: fsync build pid file “/opt/MogDB/data/dn/gs_build.pid” success

确认集群状态:正常

$ gs_om -t status --detail [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 cen7-og1-02 192.168.229.53 6001 /opt/MogDB/data/dn P Primary Normal | 2 cen7-og1-03 192.168.229.54 6002 /opt/MogDB/data/dn S Standby Normal

保存数据库主备机器信息:确保gs_om -t refreshconf 命令执行成功,否则再次重启会影响数据库状态。

$ gs_om -t refreshconf Generating dynamic configuration file for all nodes. Successfully generated dynamic configuration file.
最后修改时间:2021-12-27 11:49:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论