设置逻辑复制起点的步骤及关键参数
- 创建发布(Publication):
- 关键参数:
FOR TABLE
:指定要发布的表。例如,如果要发布名为users
的表,可以使用FOR TABLE users
。
INCLUDE DROP
:可选参数,若设置为true
,则发布的内容中会包含表的删除操作。
- 步骤:
CREATE PUBLICATION my_publication FOR TABLE users;
- 创建订阅(Subscription):
- 关键参数:
CONNECTION
:指定连接到源数据库的字符串。例如'host=source_host port=5432 dbname=source_db user=replication_user password=password'
。
PUBLICATION
:指定源数据库中创建的发布名称,如my_publication
。
- 步骤:
CREATE SUBSCRIPTION my_subscription
CONNECTION 'host=source_host port=5432 dbname=source_db user=replication_user password=password'
PUBLICATION my_publication;
- 确定复制起点:
- 关键参数:
snapshot
:默认情况下,订阅创建时会获取源数据库的当前状态作为初始快照,这就是复制的起点。
- 对于基于日志的复制起点(如果需要从特定的日志位置开始),可能涉及
start_lsn
(日志序列号)等参数,但这种情况相对复杂且不常用,一般在需要基于特定历史位置恢复复制等场景下使用。
- 步骤:
- 在创建订阅时,系统会自动处理获取初始快照作为复制起点的操作。如果需要从特定日志位置开始,需要先在源数据库中确定合适的
start_lsn
,然后在创建订阅时通过OPTIONS (start_lsn 'your_start_lsn_value')
这样的方式指定(需要超级用户权限等额外条件)。