云数据库 RDS-最滞后副本滞后量和复制时延高问题定位及处理方法:排查及解决方法
排查及解决方法
- 排查主机业务压力大。
在主机查看管理控制台的监控平台中事务日志生成速率监控项,观察目标时间段事务日志生成速率是否超过40MB/s(一般只读实例回放wal日志的速率大概为40MB/s)。
- 若长时间超过指标阈值,说明主机业务压力较大,此时建议优化业务量大小。
若存在主机业务压力大时,典型的现象还有pg_stat_replication中的sent_lsn和主机上select pg_current_wal_lsn();的查询结果差异较大,可通过如下SQL来查看:
- 确认只读实例节点信息,在主机上执行以下SQL,并重点关注sent_lsn列的值,记为lsn1。
select * from pg_stat_replication;
- 主机上查询当前位点信息,记为lsn2。
select pg_current_wal_lsn();
- 计算主机当前位点和发送的位点的距离。
select pg_size_pretty(pg_wal_lsn_diff(lsn1,lsn2));
- 确认只读实例节点信息,在主机上执行以下SQL,并重点关注sent_lsn列的值,记为lsn1。
- 若未超过指标阈值,可进行后续步骤排查。
- 若长时间超过指标阈值,说明主机业务压力较大,此时建议优化业务量大小。
- 排查只读副本回放延迟高。
只读实例上复制延迟出现原因是,当只读实例有长事务或者业务繁忙时,只读上的查询与日志回放出现冲突,只读副本没有将其查询信息反馈给主机,导致回放被延迟。此时可以下载只读实例的错误日志,查看错误日志中是否包含此类报错。
ERROR: canceling statement due to conflict with recovery Detail: User query might have needed to see row versions that must be removed
- 若日志中包含此类报错,建议业务按如下方式排查处理。
- 避免长事务,排查长事务请参考长事务问题定位及处理方法。
- 只读hot_standby_feedback设置为on,可以减少只读的查询冲突。
- 若无此类报错,可进行后续步骤排查。
- 若日志中包含此类报错,建议业务按如下方式排查处理。
- 排查主机和只读副本之间网络延迟。
主机和只读副本之间网络延迟高的表现一般为如下情况,若符合以下现象,可联系华为云客服进行问题具体原因定位。
在主机上查询sent_lsn和只读副本上pg_last_wal_receive_lsn接收位点的查询结果差异较大,可通过如下SQL来查看。
- 在主机上执行以下SQL,并重点关注sent_lsn列的值,记为lsn1。
select * from pg_stat_replication;
- 在只读上查询pg_last_wal_receive_lsn(),接收位点的值,记为lsn2。
select pg_last_wal_receive_lsn();
- 计算主机当前发送位点和只读当前接收位点的距离。
select pg_size_pretty(pg_wal_lsn_diff(lsn1,lsn2));
- 在主机上执行以下SQL,并重点关注sent_lsn列的值,记为lsn1。
- 华为云数据库 RDS for MySQL常见故障排除_华为云
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- GaussDB集群搭建_SQL数据库是谁发明的_高斯数据库集群搭建_华为云
- MySQL数据库简介_MySQL数据库应用_MySQL授权多个数据库
- Hudi服务_什么是Hudi_如何使用Hudi
- 文档数据库服务DDS在各行业的典型应用
- 免费缓存数据库_KV数据库redis场景_云数据库资源免费领取_缓存数据库2
- 云数据库 TaurusDB与RDS for MySQL的区别
- mysql数据库免费吗_mysql在线数据库_mysql数据库下载
- MongoDB_文档数据库服务DDS_华为云