GS_TXN_LSN_TIME
GS_TXN_LSN_TIME系统表记录逻辑解码提交序列号、日志序列号、时间戳的对应关系。该表在分布式的环境中,只在DN节点存在数据。
字段名称 |
字段类型 |
说明 |
---|---|---|
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)