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

AntDB 集中式安装部署 / 高可用容灾环境部署2

tocata 2024-08-16
69

重建备中心

步骤一:修改主中心的 hba 文件

重建备中心需要执行 adb_basebackup 命令,因此需要配置 hba,从而允许备机通过流复制连接到主节点。

1、修改主节点的 pg_hba.conf 文件,例如:

host    replication     all             0.0.0.0/0            trust

2、reload 主节点,使配置生效;

adb_ctl reload -D /home/antdb/data

步骤二:主中心的主节点创建复制槽(可选)

# 记录下创建的复制槽名称为adbhamgr(自定义)
select pg_create_physical_replication_slot('adbhamgr', true);

步骤三:重建备中心(每个节点都执行,操作一样)

下面以数据目录 /home/antdb/data/ 为例。

1、清理数据目录;

rm -rf /home/antdb/data/*

2、修改 adbhamgr 的配置文件;

# 备中心adbhamgr的yml配置文件中bootstrap.dcs下添加 standby_cluster 参数块,如下:
bootstrap:
  # this section will be written into adbdcs:/<namespace>/<scope>/config after initializing new cluster
  # and all other cluster members will use it as a `global configuration`
  dcs:
    ……
    standby_cluster:               # 添加standby_cluster参数设置,注意对其格式
      host: 10.21.10.222           # 主中心某个节点ip, 执行adb_basebackup和建立流复制的远程节点
      port: 6655                   # 远程节点的端口
      primart_slot_name: adbhamgr  # 建立流复制的复制槽,如果使用,需要手动在主中心建立相应的复制槽。(步骤二创建)
      create_replica_methods:      # 建立基础备份使用的方法,一般为adb_basebackup
        - basebackup

注意:host设置的节点与primart_slot_name所在的节点要保持一致。
     这里建议设置为主中心的主节点,与上述步骤一、二都是以主中心的主节点操作保持一致。

3、最后,启动各节点的 adbhamgr;

# 启动各节点的adbhamgr:
sudo systemctl start adbhamgr

# 成功后查看集群状态,备中心的主节点为Standby Leader,其余节点都是Replica
[antdb@localhost ~]$ adbhamgrctl -c /etc/adbhamgr/adbhamgr_antdbcluster.yaml list
+ Cluster: antdbcluster (7240007647780694395) ----+---------+----+-----------+
| Member    | Host               | Role           | State   | TL | Lag in MB |
+-----------+--------------------+----------------+---------+----+-----------+
| adbhamgr-1 | 10.1.206.202:55551 | Standby Leader | running |  5 |           |
| adbhamgr-2 | 10.1.206.213:55551 | Replica        | running |  5 |         0 |
| adbhamgr-3 | 10.1.206.226:55551 | Replica        | running |  5 |         0 |
+-----------+--------------------+----------------+---------+----+-----------+

# 查看备中心主节点的流复制,可以看到备中心的主节点的流复制源是主中心的主节点
[antdb@localhost ~]$ adb -d antdb -p 55551 -h 10.21.10.222
psql (13.3)
Type "help" for help.
antdb=# \x
Expanded display is on.
antdb=# select * from pg_stat_wal_receiver;
-[ RECORD 1 ]---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid                   | 3565881
status                | streaming
receive_start_lsn     | 0/8000000
receive_start_tli     | 5
written_lsn           | 0/8000148
flushed_lsn           | 0/8000000
received_tli          | 5
last_msg_send_time    | 2023-06-05 14:46:43.939936+08
last_msg_receipt_time | 2023-06-05 14:45:14.263009+08
latest_end_lsn        | 0/8000148
latest_end_time       | 2023-06-05 14:02:36.843889+08
slot_name             |
sender_host           | 10.21.10.211
sender_port           | 55551
conninfo              | user=replicator passfile=/data/antdb/.pgpass channel_binding=prefer dbname=replication host=10.21.10.211 port=55551 application_name=adbhamgr-1 fallback_application_name=antdbcluster sslmode=prefer sslcompression=0 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any


# 查看备中心备节点的流复制,可以看到备中心的备节点的流复制源是备中心的主节点
antdb=# select * from pg_stat_wal_receiver;
-[ RECORD 1 ]---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid                   | 866301
status                | streaming
receive_start_lsn     | 0/8000000
receive_start_tli     | 5
written_lsn           | 0/8000148
flushed_lsn           | 0/8000000
received_tli          | 5
last_msg_send_time    | 2023-06-05 14:46:38.010682+08
last_msg_receipt_time | 2023-06-05 14:46:37.350915+08
latest_end_lsn        | 0/8000148
latest_end_time       | 2023-06-05 14:01:34.527452+08
slot_name             | adbhamgr_2
sender_host           | 10.1.206.202
sender_port           | 55551
conninfo              | user=replicator passfile=/data/antdb/.pgpass channel_binding=prefer dbname=replication host=10.1.206.202 port=55551 application_name=adbhamgr-2 fallback_application_name=antdbcluster sslmode=prefer sslcompression=0 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any


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

评论