函数 | 描述 |
pg_create_physical_replication_slot ( slot_name name [, immediately_reserve boolean , temporary boolean ] ) → record ( slot_name name , lsn pg_lsn ) | 创建一个新的名为slot_name 的物理复制槽。 第二个参数是可选的,当它为true 时,立即为这个物理槽指定要被保留的LSN。 否则该LSN会被保留在来自一个流复制客户端的第一个连接上。 来自一个物理槽的流改变只可能出现在使用流复制协议时 — 见第 52.4 节。 当可选的第三参数temporary 被设置为真时,指定那个槽不会被持久地存储在磁盘上并且仅对当前会话的使用有意义。 临时槽也会在发生任何错误时被释放。这个函数对应于复制协议命令CREATE_REPLICATION_SLOT ... PHYSICAL 。 |
pg_drop_replication_slot ( slot_name name ) → void | 丢弃名为slot_name 的物理或逻辑复制槽。 和复制协议命令DROP_REPLICATION_SLOT 相同。对于逻辑槽, 在连接到在其中创建该槽的同一个数据库时,必须调用这个函数。 |
pg_create_logical_replication_slot ( slot_name name , plugin name [, temporary boolean ] ) → record ( slot_name name , lsn pg_lsn ) | 使用输出插件plugin 创建一个名字为slot_name 的新逻辑(解码)复制槽。 当可选的第三参数temporary 被设置为真时,指定那个槽不会被持久地存储在磁盘上并且仅对当前会话的使用有意义。 临时槽也会在发生任何错误时被释放。对这个函数的调用与复制协议命令CREATE_REPLICATION_SLOT ... LOGICAL 。 |
pg_copy_physical_replication_slot ( src_slot_name name , dst_slot_name name [, temporary boolean ] ) → record ( slot_name name , lsn pg_lsn ) | 将一个名为src_slot_name 的现有物理复制槽复制到一个名为dst_slot_name 的物理复制槽。 被复制的物理槽开始从与源槽相同的LSN开始保留WAL。temporary 是可选的。 如果省略了temporary ,则使用与源槽相同的值。 |
pg_copy_logical_replication_slot ( src_slot_name name , dst_slot_name name [, temporary boolean [, plugin name ]] ) → record ( slot_name name , lsn pg_lsn ) | 复制一个名为src_slot_name 的现有逻辑复制槽到一个名为dst_slot_name 的逻辑复制槽,选择性的改变输出插件和持久性。 被复制的逻辑槽从与源逻辑槽相同的LSN开始。temporary 和plugin 都是可选的。 如果它们被省略了,使用与源逻辑槽相同的值。 |
pg_logical_slot_get_changes ( slot_name name , upto_lsn pg_lsn , upto_nchanges integer , VARIADIC options text[] ) → setof record ( lsn pg_lsn , xid xid , data text ) | 返回槽slot_name 中的改变,从最后一次使用更改的点开始。 如果upto_lsn 和upto_nchanges 为 NULL,逻辑解码将一直继续到 WAL 的末尾。 如果upto_lsn 为非 NULL,解码将只包括那些在指定 LSN 之前提交的事务。 如果upto_nchanges 为非 NULL,解码将在其产生的行数超过指定值后停止。 不过要注意,被返回的实际行数可能更大,因为对这个限制的检查只会在增加了解码每个新的提交事务产生的行之后进行。 |
pg_logical_slot_peek_changes ( slot_name name , upto_lsn pg_lsn , upto_nchanges integer , VARIADIC options text[] ) → setof record ( lsn pg_lsn , xid xid , data text ) | 行为就像pg_logical_slot_get_changes() 函数, 不过改变不会被消费, 即在未来的调用中还会返回这些改变。 |
pg_logical_slot_get_binary_changes ( slot_name name , upto_lsn pg_lsn , upto_nchanges integer , VARIADIC options text[] ) → setof record ( lsn pg_lsn , xid xid , data bytea ) | 行为就像pg_logical_slot_get_changes() 函数, 不过改变会以bytea 返回。 |
pg_logical_slot_peek_binary_changes ( slot_name name , upto_lsn pg_lsn , upto_nchanges integer , VARIADIC options text[] ) → setof record ( lsn pg_lsn , xid xid , data bytea ) | 行为就像pg_logical_slot_peek_changes() 函数,不过改变会以bytea 返回。 |
pg_replication_slot_advance ( slot_name name , upto_lsn pg_lsn ) → record ( slot_name name , end_lsn pg_lsn ) | 将复制槽的当前确认的位置提前到名为slot_name 的复制槽的当前确认位置。 该槽不会向后移动,也不会移动到当前插入位置之外。返回该槽的名称和它被推进到的真实位置。 如果有任何进展,则在下一个检查点中写出更新后的槽位置信息。所以如果发生崩溃,该槽位可能会返回到之前的位置。 |
pg_replication_origin_create ( node_name text ) → oid | 用给定的外部名称创建一个复制源,并且返回分配给它的内部 ID。 |
pg_replication_origin_drop ( node_name text ) → void | 删除一个以前创建的复制源,包括任何相关的重放进度。 |
pg_replication_origin_oid ( node_name text ) → oid | 根据名称查找复制源并返回内部ID。如果没有发现这样的复制源,则抛出错误。 |
pg_replication_origin_session_setup ( node_name text ) → void | 将当前会话标记为从给定的原点回放,从而允许跟踪回放进度。 只能在当前没有选择原点时使用。使用pg_replication_origin_session_reset 命令来撤销。 |
pg_replication_origin_session_reset () → void | 取消pg_replication_origin_session_setup() 的效果。 |
pg_replication_origin_session_is_setup () → boolean | 如果在当前会话中选择了复制源则返回真。 |
pg_replication_origin_session_progress ( flush boolean ) → pg_lsn | 返回当前会话中选择的复制源的重放位置。参数flush 决定对应的本地事务是否被确保已经刷入磁盘。 |
pg_replication_origin_xact_setup ( origin_lsn pg_lsn , origin_timestamp timestamp with time zone ) → void | 将当前事务标记为重放在给定LSN和时间戳上提交的事务。 只能在使用pg_replication_origin_session_setup 选择复制源时调用。 |
pg_replication_origin_xact_reset () → void | 取消pg_replication_origin_xact_setup() 的效果。 |
pg_replication_origin_advance ( node_name text , lsn pg_lsn ) → void | 将给定节点的复制进度设置为给定的位置。这主要用于设置初始位置,或在配置更改或类似的变更后设置新位置。 请注意这个函数的不当使用可能会导致不一致的复制数据。 |
pg_replication_origin_progress ( node_name text , flush boolean ) → pg_lsn | 返回给定复制元的重放位置。参数flush 决定对应的本地事务是否被确保已经刷入磁盘。 |
pg_logical_emit_message ( transactional boolean , prefix text , content text ) → pg_lsn pg_logical_emit_message ( transactional boolean , prefix text , content bytea ) → pg_lsn
| 发出逻辑解码消息。这可以被用来通过 WAL 向逻辑解码插件传递一般消息。 transactional 参数指定该消息是否应该是当前事务的一部分或者当逻辑解码读到该记录时该消息是否应该被立刻写入并且解码。 prefix 参数是逻辑解码插件可以用来识别它们感兴趣的消息的文本前缀。 content 是消息的文本,以文本或二进制形式给出。 |