- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你可以看到这些问题
https://www.reddit.com/r/aws/comments/7snob5/postgresql_transaction_logs_fill_up_storage_till/
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 中的一些数据来解决这个问题。但是当数据发生变化时,事务日志似乎不会立即下降(需要更多时间来验证此方法)
我现在的问题:谁能解释这个现象并提供更好的解决方法?
添加更多有关技巧的信息。
=> SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
CD/1C0005C0
(1 row)
两个小时后:
=> SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
CD/41000410
当没有插入/更新/删除事件时。 pg_current_wal_lsn还在不断增加。
pg槽是这样的
=> 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_lsn
比 pg_current_wal_lsn
小很多。
诀窍(这是日志),我使用 crontab 更新了一个简单的行,但之后数据不再发生变化。 confirmed_flush_lsn 保持在 CD/140235B8
:
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
(通过更新行的状态列)。但似乎增加了值(value)但没有让RDS删除一些事务日志。
--------更新------------
这次我更改了更改两行而不是一行的技巧(意味着有更多的数据更改)事务日志可以减少但仍然不会像这个 png 那样减少太多。在周末,我的技巧奏效了,它减少了事务日志的大小。但不像平时有更多数据更改并且大小可以减少到 0。
最佳答案
在 CDC 模式下,AWS 的数据迁移服务 (DMS) 创建一个复制槽并订阅它,就像您正在做的一样。它包括一个发送常规虚拟查询的选项,以确保复制槽位置前进。我不确定它是如何实现的,但我相信它会为您指明正确的方向。在 DMS release notes 中搜索“WAL 心跳” .
关于postgresql - AWS RDS Postgresql 事务日志在没有数据更改时继续运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52589058/
我需要创建 RDS Aurora 5.7 数据库。我想我对 RDS 的概念不是很清楚。这是正确的层次结构吗? aws_rds_cluster -> aws_rds_cluster_instance -
我正在开发包含 RDS 数据库的 CloudFormation 模板,并且我想将安全组附加到 RDS。有一个资源AWS::RDS::DBSecurityGroup我想编写自己的入口规则,通过附加此资源
我有不同的 EC2 实例尝试访问 RDS 实例。我想在配置文件中预先设置 RDS 实例“规范名称”,以便在部署后我不需要对配置文件进行任何更改。 我有以下问题: 无论如何,人们可以在cloudform
当我在 python 中使用多处理器运行数据导入器时,发生了一些非常奇怪的行为。我相信这是一个数据库问题,但我不知道如何追踪它。下面是我正在做的过程的描述: 1) 运行 XX 个处理器的多处理器文件,
我有一个SpringBoot应用程序,它使用以下配置与PostgreSQL通信,通过AWS Beanstrik部署:。在我将AWS Aurora证书更新为rds-ca-ecc384-g1之前,一切都很
我有一个带有 PostgreSQL 的 AWS RDS 实例。在实例创建过程中,我将自动备份的最大保留期指定为 7。但我可以在快照部分看到过去 9 天的自动备份。 有谁知道这里发生了什么? 最佳答案
我是否能够根据需要切换(我的意思是升级或降级)Amazon RDS 实例,还是必须重新创建一个新实例并进行迁移? 最佳答案 是,Amazon RDS 实例可通过 modify-db-instance
Amazon RDS 使用哪些操作系统。虽然我知道在使用 RDS 时我们只是暴露于一个端点,并且在内部我们使用的数据库可能受多个系统支持,但我想知道这些系统使用的操作系统是什么。 最佳答案 要检查 A
来自文档 https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html ,CreateDBClu
此处提到的动态参数与静态参数的示例是什么? Here are some important points you should know about working with parameters i
正在考虑使用多可用区的 RDS Oracle 产品。我找不到一件事 - 如果您的主实例消失并且您故障转移到辅助实例,您会回到主实例吗?或者次要成为主要,然后另一个实例(可能是您的旧主要)成为次要? R
我们最近将 AWS rds 的 SSL 从 rds-ca-2015 更新为 rds-ca-2019。现在应用程序可以正常工作并与 SSL 连接,但我们现在无法使用 rds-ca-2019 确认 rds
我让 AWS EKS 节点访问 RDS,其中我在 RDS 的安全组中将 EKS 节点的公共(public) IP 列入白名单。但这不是可行的解决方案,因为 EKS 节点可以被替换,其公共(public
我有一个多堆栈应用程序,我想在一个堆栈中部署 RDS,然后在稍后的堆栈中部署一个连接到 RDS 的 Fargate 集群。 以下是 rds 的定义方式: this.rdsSG = new ec
AWS RDS的三个指标是什么:可用内存(增强监控),事件内存(增强监控)和可用内存(CloudWatch监控)? 它们之间是什么关系? 看这两张照片。 三个指标的值不同。 的形象 enter ima
我正在使用 AWS-RDS(Aurora MySQL5.6) 并且它是一个集群,它有一个写入器实例和一个读取器实例。我发现当我改变它的类型时,每个实例都会停机近 10 分钟,这是 Not Accept
我们目前每月为 RDS 使用支付 85-100 美元之间的费用。但大多数时候我们不访问我们的数据库实例。有没有办法通过关闭实例或进入共享数据库模式来减少计费。有哪些替代方案? 最佳答案 您可以随时使用
我搜索了网络并浏览了 RDS 文档,但似乎找不到开放连接限制。 就其值(value)而言,我计划使用 RDS 的新 Postgres 风格,但我认为来自 mySQL 方面的答案也可以接受。 谢谢! 最
我使用以下命令将之前部署的 RDS 实例替换为手动配置的 RDS 实例: ./terraform destroy -target aws_db_instance.my_db ./terraform i
我使用以下命令将之前部署的 RDS 实例替换为手动配置的 RDS 实例: ./terraform destroy -target aws_db_instance.my_db ./terraform i
我是一名优秀的程序员,十分优秀!