AWS Aurora postgresql12同一个实例之间做逻辑复制步骤

来源:这里教程网 时间:2026-03-14 20:25:28 作者:

版本: AWS Aurora PostgreSQL 12.6 实现目标: 从prod库的mdm.test_user表数据逻辑复制至test库下的mdm.test_user表 操作说明: 需要在发布端先建好复制槽,然后订阅端指定使用该复制槽,,注意发布端和订阅端两边都必须创建同名schema 具体操作步骤如下: #创建test库 create database test; \c test #创建同名schema: test=> create schema mdm; #创建同名表结构: test=> CREATE TABLE "mdm"."test_user" (   "id" int4 NOT NULL,   "user_num" varchar(20) COLLATE "pg_catalog"."default",   "resource_flag" int2,   "syn_record_id" int4,   "login_number" varchar(20) COLLATE "pg_catalog"."default",   "employee_number" varchar(12) COLLATE "pg_catalog"."default",   CONSTRAINT "test_user_pkey" PRIMARY KEY ("id") ) ; #切换到prod库 \c prod #发布端建立逻辑复制槽 prod=> select pg_create_logical_replication_slot('pg_logical_test_user_slot','pgoutput'); #发布端创建逻辑发布 prod=>  CREATE PUBLICATION pub_test_user for table mdm.test_user; #订阅端创建订阅: #切换到test库: \c test test=> CREATE SUBSCRIPTION sub_test_user CONNECTION    'host=xxxxxxx port=5432 dbname=prod user=postgres password=123456'    PUBLICATION pub_test_user with (create_slot=false,slot_name='pg_logical_test_user_slot'); ##发布端和订阅端数据查看: 发布端: prod=> select count(*) from mdm.test_user; +-------+ | count | +-------+ |  1000 | +-------+ (1 行记录) #订阅端: test=> select count(*) from mdm.test_user; +-------+ | count | +-------+ |  1000 | +-------+ (1 行记录) #查看发布: prod=> \dRp                               发布列表 +-------------------+----------+--------+------+------+------+------+ |       名称        |  拥有者  | 所有表 | 插入 | 更新 | 删除 | 截断 | +-------------------+----------+--------+------+------+------+------+ | pub_test_user      | postgres | f      | t    | t    | t    | t    | +-------------------+----------+--------+------+------+------+------+ (1 行记录) #查看发布的表: prod=>  table pg_publication_tables; +-------------------+------------+---------------+ |      pubname      | schemaname |   tablename   | +-------------------+------------+---------------+ | pub_test_user      | mdm        | test_user      | +-------------------+------------+---------------+ (1 行记录)

相关推荐