背景
这篇会说明 failover slot 的创建和使用步骤。
前提条件
·处于同一 VPC 下的两个云数据库 PostgreSQL 实例,分别作为主节点和备节点。
·两个实例大版本需一致,且均为11~16。
操作步骤
一、1、主节点创建 publication
登录主实例,执行以下命令,创建 publication。本示例中,publication 名称为 pub_1,需要发布的表为 table_1。
CREATE PUBLICATION pub_1 FOR TABLE table_1;
注意:说明:
注意:创建 slot 时,系统默认创建为 failover slot ,并在创建订阅时自动创建与 subscription 同名的 failover slot。具体说明请参见 创建 Failover slot 。
二、2、备节点创建订阅
登录备节点,依次执行以下命令,创建订阅。本示例中,subscription 的名称为 sub_1。
注意:创建订阅之前,请确保备节点已经创建与 publication 所连接的 table_1 结构相同的表。
— 创建订阅create subscription sub_1connection 'instanceid=postgres-***** host=*.*.*.* port=5432 dbname=database_name user=user_name password=****** access_type=1'publication pub_1;
命令中的参数说明如下:
·instanceid:主实例的实例 ID ,可在控制台的实例列表获取。
·host:主节点实例的内网 IP。
·port:连接端口号,默认5432。
·dbname:主实例发布的 publication 所在的数据库名称。
·user:可在主实例所使用的用户名称。
·password:可在主实例使用的账户密码。
·access_type:取值为1,表示目标实例为 TencentDB 实例。
备库创建订阅后,failover slot 将在主备切换后自动转移到备节点,无需再配置 slot 跟随。
三、检查复制槽状态
在主实例上执行:
SELECT slot_name, slot_type, activeFROM pg_replication_slotsWHERE slot_name = 'sub_1';
若 active 值为 true ,表示 failover slot 正在被使用。
四、检查数据同步
在主库插入数据后,在备库查询 table_1 ,能够看到新插入的数据,则 failover_slot 正常运行。
五、主备切换验证
在实例详情页单击主备切换,切换后在新主库上重复上述查询,查询结果与上述一致,则备库订阅依然正常,failover_slot 正常运行。