💡
原文英文,约900词,阅读约需4分钟。
📝
内容提要
PostgreSQL 15新增了可以让拓展开发者定义自定义WAL记录的资源管理器,以确保系统崩溃后能够自动重放或多节点间复制。开发者需要使用GUC shared_preload_libraries加载资源管理器,并调用RegisterCustomRmgr()来注册自定义RMGR,以及它的回调函数。
🎯
关键要点
-
PostgreSQL 15新增了自定义WAL资源管理器,允许扩展开发者定义专用的WAL记录。
-
自定义资源管理器需要使用GUC shared_preload_libraries加载,并调用RegisterCustomRmgr()注册。
-
WAL记录分为多个类别,资源管理器的定义在access/rmgr.h中。
-
自定义资源管理器的结构包含七个回调函数,定义在access/xlog_internal.h中。
-
自定义WAL记录在系统崩溃后会自动重放,以确保一致性状态。
-
跨节点配置和自定义资源管理器的版本控制需要谨慎处理。
-
pg_waldump不支持自定义RMGR,pg_walinspect则支持。
-
PostgreSQL核心代码提供了自定义RMGR的基本模板,开发者可以参考。
-
自定义RMGR可以强制在重放记录时执行某些操作,或使系统恢复到一致状态。
-
signal_rmgr扩展示例展示了如何注册WAL记录并在主节点和备用节点之间发送信号。
➡️