更新时间:2024-11-12 GMT+08:00
分享

GS_TXN_LSN_TIME

GS_TXN_LSN_TIME系统表记录逻辑解码提交序列号、日志序列号、时间戳的对应关系。该表在分布式的环境中,只在DN节点存在数据。

表1 GS_TXN_LSN_TIME字段

字段名称

字段类型

说明

create_csn

bigint

提交序列号。

create_lsn

bigint

日志序列号。

snp_xmin

bigint

快照xmin。

snp_snapshot

text

快照序列化文本。

barrier

text

barrier信息。

create_time

timestamp with time zone

插入元组的时间戳。

  • create_lsn在该系统表中是以数字形式存储的,该LSN可以通过SQL语法转换为常见的LSN格式(仅供参考),即XXXXXXXX/XXXXXXXX,转换语法如下所示:
    SELECT CONCAT(to_hex(({lsn_num}::bigint >> 32) & x'ffffffff'::bigint), '/', to_hex(({lsn_num}::bigint << 32 >> 32) & x'ffffffff'::bigint));

    使用上述SQL语句时需将lsn_num转为自己需要的数字,以607906688为例如下所示:

    gaussdb=# SELECT CONCAT(to_hex((607906688::bigint >> 32) & x'ffffffff'::bigint), '/', to_hex((607906688::bigint << 32 >> 32) & x'ffffffff'::bigint));
    concat
    ------------
    0/243beb80
    (1 row)
  • 由于M兼容语法与高斯数据库语法有区别,M兼容库需要使用以下转换语句:
    SELECT CONCAT(hex(({lsn_num} >> 32) & 4294967295), '/', hex((({lsn_num}<< 32) >> 32) & 4294967295));

    使用上述SQL语句时需将lsn_num转为自己需要的数字,以607906688为例如下所示:

    gaussdb_m=# SELECT CONCAT(hex((607906688 >> 32) & 4294967295), '/', hex(((607906688 << 32) >> 32) & 4294967295));
       concat
    ------------
     0/243BEB80
    (1 row)

相关文档