文章目录
- 1. replication slot
- 1.1 $PGDATA/pg_replslot
- 2. replication slot 磁盘 data struct (ReplicationSlotOnDisk)
- 2.1 replication slot 的磁盘数据(On-disk data) (ReplicationSlotPersistentData)
- 2.2 replication slot 崩溃行为 (ReplicationSlotPersistency)
- 3. 单个 replication slot 共享内存状态 (ReplicationSlot)
- 3.1 replication slots 共享内存 control area (ReplicationSlotCtlData)
1. replication slot
复制槽(Replication slots)用于保存源自此集群的复制流(replication streams)的状态信息。其主要目的是防止过早删除预写式日志(WAL)或旧元组版本(old tuple versions),以免干扰复制;它们对于监控也很有用。复制槽需要是永久性的(以便支持重启)、崩溃安全的,并且可以在备用服务器上分配(以支持级联设置)。由于复制槽需要在备用服务器上可用,因此不能将其存储在系统目录(system catalogs)中。
1.1 $PGDATA/pg_replslot
每个复制槽在 $PGDATA/pg_replslot
目录下都有自己的目录(directory)。在该目录中,状态文件将包含该槽自身的数据。如有需要, 还可以在该文件旁边存储其他数据。在服务器运行期间,状态数据也会为了提高效率而缓存在内存中。