背景
场景:
- 业务正常使用期间发生HA, 或者数据库崩溃重启, 或者业务计划性重启.
挑战:
- 数据库重启后原来在shared buffer中的热数据将需要重磁盘读取, 在此前开放给业务访问, 可能导致原有的SQL响应变慢, 高峰期可能导致雪崩效应影响业务.
PG 解决方案:
- 使用pg_buffercache插件记录buffer快照
- pg_cron 定期打buffer id快照
- 使用pg_prewarm预热后再开放给业务访问
- https://www.postgresql.org/docs/14/pgbuffercache.html
- https://www.postgresql.org/docs/14/pgprewarm.html