在HADR环境中,我们的应用程序出现了严重的问题。运行db2pd -hadr时,我们看到以下内容:
HADR_flaGS = STANDBY_RECV_BLOCKED
STANDBY_RECV_BUF_PERCENT = 100
STANDBY_SPOOL_PERCENT = 100
后来这些恢复了,现在看起来更好,因为STANDBY_SPOOL_PERCENT逐渐下降。您能否帮助理解上述参数的值的含义,以及需要做些什么来确保我们不会遇到这种情况?
此问题很可能是由主数据库上发生的峰值事务触发的。备用接收缓冲区和线轴已饱和。除非您在SUPERASYNC模式下使用配置参数HADR_SYNCMODE运行,否则您可能会陷入这种情况。应用程序变慢的原因是,主服务器正在等待备用服务器已收到日志文件的确认,但由于其缓冲池和接收缓冲区当时已满,因此备用服务器正在延迟此确认。
您可以考虑将HADR_SYNCMODE设置为SUPERASYNC,但这也意味着如果主数据库发生故障,系统将更容易受到数据丢失的影响。要管理这些临时峰值,您可以进行以下配置更改之一:
有关更多详细信息,请参阅HADR Performance Guide