Bootstrap

【0347】Postgres内核 startup XLOG 之 核实 pg_wal 、 pg_wal/archive_status (1)

1. 核实 pg_wal、pg_wal/archive_status

postmaster 守护进程在真正进入 ServerLoop() 前,会调用 StartChildProcess() 函数启动 postmaster 辅助进程如:bgwriter、walwriter、walreceiver、bootstrapper 和 checkpointer 等。 这里首先初始化的第一个辅助进程是 StartupProcess。 该进程的主入口是 StartupProcessMain() 函数。 在该函数内部执行最重要、最为复杂的一个功能是: StartupXLOG()。

从本文开始将通过一系列的文章来讲解 Postgres内核 startup XLOG 的实现。

1.1 核实 pg_wal

Postgres内核中完成 pg_wal、pg_wal/archive_status 的核实是由函数 ValidateXLOGDirectoryStructure() 完成。

void StartupXLOG(void
;