更新时间:2026-07-28 GMT+08:00
分享

PGReplicationStream

PGReplicationStream是GaussDB JDBC驱动中提供的一个API接口类,用于操作逻辑复制流。

PGReplicationStream的继承关系

PGReplicationStream是逻辑复制的接口,非透明多写场景下的实现类是V3PGReplicationStream,该类位于com.huawei.gaussdb.jdbc.core.v3.replication Package中,该类的声明如下:
public class V3PGReplicationStream implements PGReplicationStream

构造方法

  • public V3PGReplicationStream(CopyDual copyDual, LogSequenceNumber startLSN, long updateIntervalMs, ReplicationType replicationType)
  • public MultiPrimaryReplicationStream(CopyDual copyDual, LogSequenceNumber startLSN, long updateIntervalMs, ReplicationType replicationType)

常用方法

表1 PGReplicationStream常用方法

方法名

返回值类型

描述

throws

close()

void

结束逻辑复制,并释放资源。

SQLException

forceUpdateStatus()

void

强制将上次接收、刷新和应用的 LSN 状态发送到后端。

SQLException

getLastAppliedLSN()

LogSequenceNumber

获取上次主机日志回放的LSN。

-

getLastFlushedLSN()

LogSequenceNumber

获取上次主机刷新的LSN,即当前逻辑解码推进的LSN。

-

getLastReceiveLSN()

LogSequenceNumber

获取上次接收的LSN(针对LSN序复制槽)或CSN(针对CSN序复制槽)。

-

isClosed()

boolean

复制流是否关闭。

-

read()

ByteBuffer

从后端读取下一条WAL记录。如果读取不到,该方法阻塞I/O读。

SQLException

readPending()

ByteBuffer

从后端读取下一条WAL记录。如果读取不到,该方法不阻塞I/O读。

SQLException

setAppliedLSN(LogSequenceNumber applied)

void

设置应用的LSN。

-

setFlushedLSN(LogSequenceNumber flushed)

void

设置刷新的LSN(针对LSN序复制槽)或CSN(针对CSN序复制槽),在下次更新时发送至后端,用于推进服务端LSN(针对LSN序复制槽)或CSN(针对CSN序复制槽)。

-

相关文档