GaussDB 数据库架构师修炼(六)-3 集群工具管理-主备倒换

1 业务背景

  • switchover为维护操作,确保集群状态正常,所有业务结束,并使用pgxc_get_senders_catchup_time()视图查询无主备追赶后,再进行switchover操作。

[Ruby@hcd1 ~]$ gsql -d postgres -p 8000 -ar
gsql ((GaussDB Kernel 505.2.1 build 159cea95) compiled at 2024-12-27 09:22:44 commit 10161 last mr 21504 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

gaussdb=# select pgxc_get_senders_catchup_time();
 pgxc_get_senders_catchup_time
-------------------------------
(0 rows)

gaussdb=#
  • switchover前主动执行一次CHECKPOINT,保证脏页刷盘完成,避免switchover执行超时。

2 命令格式

cm_ctl switchover{ -z <AZ_NAME> | -n <NODE_ID> -D <DATA_DIR> [-q]  [-f] | -a [-q] | -A} [-t <SECS>]

3 参数说明

  • -z <AZ_NAME>:将所有GTM、DN主实例切换到指定AZ,AZ_NAME为AZ名称,可通过cm_ctl query -Cvz ALL命令查询。

  • -n <NODE_ID>:将指定的实例切换为主实例,NODE_ID为节点名称,可通过cm_ctl query -Cv命令查询。-n参数需要和-D参数一起使用。

  • -D <DATA_DIR>:将指定的实例切换为主实例,DATA_DIR为指定实例数据目录,可通过cm_ctl query -Cvd命令查询。-D参数需要和-n参数一起使用。

  • -f:指定进行-f类型switchover。-f参数需要和-n以及-D参数一起使用。

  • -a:重置集群主备关系为初始配置状态。

  • -A:将所有GTM、DN实例统一从主切换到备,并选择相应分片的其它实例升主。

  • -t <SECS>:指定超时时间。超时后,会退出并报错。不设置该参数时,cm_ctl switchover命令默认超时时间为120s。

4 示例

1)指定AZ的数据库主备倒换:

cm_ctl switchover -z AZ1

2)指定实例的数据库主备倒换:

cm_ctl switchover -n 1 -D /data1/omm/cluster/data/datanode1p

3)将所有GTM、DN实例统一从主切换到备,并选择相应分片的其它实例升主:

cm_ctl switchover -A

4)重置集群主备关系为初始配置状态:

cm_ctl switchover -a

5) DCC模式下指定cm_server主备切换:

cm_ctl switchover -n 1 -D /data1/omm/cluster/cm/cm_server

5 批注

 在有些场景需要做主备切换,如灰度升级,临时解决内存过载等问题。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值