实例使用规范 逻辑复制 创建的逻辑复制槽名需要在40个字节长度以下,否则可能导致全量备份失败。 使用逻辑复制时,注意删除不再使用的复制槽,防止数据库膨胀。 使用普通逻辑复制槽时,注意主备倒换(规格变更、小版本升级或主机故障等场景可能发生主备倒换)后复制槽会丢失,需要再次创建复制槽。 RDS for PostgreSQL 12.6及以上的小版本、13和14的所有小版本使用具备故障转移功能复制槽,避免主备倒换或数据库重启后复制槽丢失。 使用逻辑复制时,业务尽量避免长事务,废弃的两阶段事务需要及时提交,防止WAL日志积压,占用过高磁盘空间。 使用逻辑复制时,尽量避免大量使用子事务(事务内使用savepoint、exception等),防止造成过高的内存占用。 使用DRS等服务进行数据同步、迁移时,对于长期无业务的库,建议删除其中包含的逻辑复制槽,或添加心跳表来定期推进复制槽位点,避免WAL日志积压。 数据库年龄 数据库年龄的概念: 数据库年龄是PostgreSQL特有的概念,指的是数据库中最旧和最新两个事务ID的差值。 由于RDS for PostgreSQL的MVCC机制,数据库年龄最大为20亿,当年龄耗尽,数据库会强制关闭,只能联系技术支持来执行清理操作。 可以通过以下SQL查看当前数据库年龄: select datname, age(datfrozenxid) from pgdatabase; 建议通过“dbmaxage”CES指标来监控数据库年龄,告警阈值设置为10亿。