如何解决由HADR_FLAGS = STANDBY_RECV_BLOCKED引起的减速?

在HADR环境中,我们的应用程序出现了严重的问题。运行db2pd -hadr时,我们看到以下内容:

HADR_flaGS = STANDBY_RECV_BLOCKED
STANDBY_RECV_BUF_PERCENT = 100
STANDBY_SPOOL_PERCENT = 100

后来这些恢复了,现在看起来更好,因为STANDBY_SPOOL_PERCENT逐渐下降。您能否帮助理解上述参数的值的含义,以及需要做些什么来确保我们不会遇到这种情况?

tqh123456 回答:如何解决由HADR_FLAGS = STANDBY_RECV_BLOCKED引起的减速?

此问题很可能是由主数据库上发生的峰值事务触发的。备用接收缓冲区和线轴已饱和。除非您在SUPERASYNC模式下使用配置参数HADR_SYNCMODE运行,否则您可能会陷入这种情况。应用程序变慢的原因是,主服务器正在等待备用服务器已收到日志文件的确认,但由于其缓冲池和接收缓冲区当时已满,因此备用服务器正在延迟此确认。

您可以考虑将HADR_SYNCMODE设置为SUPERASYNC,但这也意味着如果主数据库发生故障,系统将更容易受到数据丢失的影响。要管理这些临时峰值,您可以进行以下配置更改之一:

  • 增加备用数据库上的日志接收缓冲区的大小 通过修改DB2_HADR_BUF_SIZE注册表的值 变量。
  • 通过设置备用数据库来启用备用数据库上的日志假脱机 HADR_SPOOL_LIMIT

有关更多详细信息,请参阅HADR Performance Guide

本文链接:https://www.f2er.com/3152290.html

大家都在问