首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在没有数据更改的情况下,AWS事务日志继续进行吗?

在没有数据更改的情况下,AWS事务日志继续进行吗?
EN

Stack Overflow用户
提问于 2018-10-01 10:21:47
回答 1查看 2.6K关注 0票数 1

你可以看到这些问题

  1. 直到/
  2. https://dba.stackexchange.com/questions/173267/aws-rds-postgres-logical-replication?rq=1

我的问题可能有点不同。当发生数据更改时,我使用https://github.com/jiamo/python-psql-replication进行从postgres到es的复制。当数据发生变化时,事务日志就可以了。但是,当数据不再改变时,Transactioin日志就会继续这样下去:

09/23-09/25是周末(因此不再有数据变化,事务日志继续进行)

我有一些技巧,想通过更新crontab中的一些数据来解决这个问题。但是,当数据更改时,事务日志似乎不会立即下降(这需要更多的时间来验证此方法)。

我现在的问题是:有人能解释这一现象并提供更好的解决方法吗?

添加更多关于诀窍的内容。

代码语言:javascript
运行
复制
=> SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
CD/1C0005C0
(1 row)

两个小时后:

代码语言:javascript
运行
复制
=> SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
CD/41000410

当没有插入/更新/删除活动时。pg_current_wal_lsn仍在持续增长。

pg的位置就像这样

代码语言:javascript
运行
复制
=> select * from pg_replication_slots;
slot_name   |  plugin  | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn
--------------+----------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
wal2json_rds | wal2json | logical   |  16400 | test | f         | t      |      11270 |      |       593776 | CD/140235B8 | CD/140235B8

confirmed_flush_lsnpg_current_wal_lsn小得多。

诀窍(这里是日志),我使用crontab更新了一个简单的行,但在此之后数据不再改变。confirmed_flush_lsn一直在CD/140235B8

代码语言:javascript
运行
复制
host:25a5743b67db time:2018-10-01 09:23:21.865489 before sleep wal_end 875955403896 hex CB/F302BC78 next_lsn 876123392024 hex CB/FD060818
host:25a5743b67db time:2018-10-01 09:23:32.087501 before sleep wal_end 875955403896 hex CB/F302BC78 next_lsn 876123392024 hex CB/FD060818
host:25a5743b67db time:2018-10-01 09:23:38.705198 future len tmp_list is 1
host:25a5743b67db time:2018-10-01 09:23:38.763092 success bulk 1
host:25a5743b67db time:2018-10-01 09:23:38.763327 queue 0 getters 1 putters 0
host:25a5743b67db time:2018-10-01 09:23:38.763503 queue begin to wait......
host:25a5743b67db time:2018-10-01 09:23:42.310556 before sleep wal_end 880803984024 hex CD/14023298 next_lsn 880803984824 hex CD/140235B8
host:25a5743b67db time:2018-10-01 09:23:52.531998 before sleep wal_end 880803984024 hex CD/14023298 next_lsn 880803984824 hex CD/140235B8

我想要做的是,在没有其他数据更改时(通过更新行的状态列)增加confirmed_flush_lsn。但它似乎增加了价值,但不让RDS删除一些事务日志。

-更新

我改变了更改两行的技巧,而不是一行(这意味着有更多的数据更改),这一次事务日志可以减少,但仍然不能减少太多,就像这个png。在周末,我的技巧奏效了,它减少了事务日志的大小。但不像正常的一天,有更多的数据变化,大小可以缩小到0。

EN

回答 1

Stack Overflow用户

发布于 2018-10-01 14:37:18

在CDC模式下,AWS的数据迁移服务(DMS)创建一个复制槽并订阅它,就像您正在做的事情一样。它包括一个选项,用于发送常规的虚拟查询,以确保复制槽位置提前。我不清楚它是如何实现的,但我相信它会为您指明正确的方向。在DMS发行说明中搜索"WAL心搏“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52589058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档