代码之家  ›  专栏  ›  技术社区  ›  Suren Aznauryan

Debezium的来源。lsn`快照记录中的字段值(当`_op=r`)

  •  0
  • Suren Aznauryan  · 技术社区  · 3 年前

    我在Debezium Postgresql连接器配置中找不到信息 documentation page 关于 source.lsn 快照事件的字段值(具有 __op=r ).我已经在我的开发环境数据库上运行了一个测试,该数据库没有太多负载,并且 非空 lsn 所有事件的价值 __op=r .由于我的数据库没有太多负载,我假设从一开始创建的所有WAL段都仍然存在,但对此不确定。

    我的问题如下:

    1. debezium如何获得非空值 lsn 快照记录的值,如果它只是通过发出 select 查询所有现有数据(与检查WAL以生成具有 __op=c __op=u __op=d ) ? 在拍摄过程中是否检查了墙壁?
    2. 假设在快照期间检查了墙,那么 lsn 如果相应的WAL段已被删除,是否在快照事件中?是 lsn 相当于 null 在这种情况下?
    3. Debezium是否有任何文件说明可能的情况 lsn 快照时的值?
    0 回复  |  直到 3 年前
        1
  •  0
  •   Naros    3 年前

    debezium如何获得非空值 lsn

    这个 source.lsn 新快照的值来源于 consistent_point 当连接器启动时,可通过新创建的复制插槽使用。这是有意义的,因为它是创建插槽的时间点和获取导出快照的时间点。

    它的价值是什么 lsn 如果相应的WAL段已被删除,是否在快照事件中?是 lsn 在这种情况下等于null?

    创建复制插槽时,如果WAL中的条目正在等待传递给复制插槽的使用者,则在PG表示不再需要WAL段之前,WAL段无法释放。好吧,你不能达到你描述的状态。

    Debezium是否有任何文档描述了快照时可能的lsn值?

    我们在文档中没有介绍这一点,但应该可以通过在快照发生时查询复制插槽来查看,并查看起始LSN值与快照中记录的值相同。

    推荐文章