PG的wal receiver进程如何启动
备机的receiver进程是由恢复进程即startup进程发启。具体如下:
(1)恢复进程首先需要打开需要恢复的WAL日志文件。通过函数WaitForWALToBecomeAvailable完成。
(2)从前文中可知,日志文件读取的顺序是LOG_FROM_ARCHIVE - XLOG_FROM_PG_WAL - XLOG_FROM_STREAM。也就是先从归档中读取,归档读取失败再切换到pg_wal下,再失败则切换流复制。这3种日志源循环切换,直至找到一个可打开的日志文件
(3)备机恢复进程首先从归档目录下找需要的日志文件打开。因为备机没有转储命令,所以打开失败
(4)接着从XLOG_FROM_PG_WAL日志源也就是pg_wal目录下找需要的日志文件进行打开。先将本地日志恢复。
注:这里没有标记日志源currentSource为XLOG_FROM_PG_WAL
(5)本地日志恢复完后,再次进入WaitForWALToBecomeAvailable函数,此时需要切换到流复制日志源XLOG_FROM_STREAM。
(6)流复制发启拉取起点及时间线的设置:
(1)读取checkpoint时就需要发启流复制,此时日志位置ptr是checkpoint的redo位置,时间线tli是checkpoint的时间线。
(2)其他场景,日志位置ptr是本地日志恢复结束位置,时间线tli是本地日志恢复完时的时间线。
(3)请求拉取日志位置:将ptr进行段文件对齐,也就是说从日志段文件开头进行拉取。
(7)向备机主进程发送PMSIGNAL_START_WALRECEIVER信号
(8)备机主进程接收到信号后,sigusr1_handler函数处理该信号。标记WalReceiverRequested为true,调用MaybeStartWalReceiver->StartWalReceiver最终fork出一个子进程,并标记为walreceiver,进入WalReceiverMain
原文标题:PG的wal receiver进程如何启动
-
细数“暖核一号”的环保账
2022-04-08 -
PG:什么是grouping sets
2022-03-22 -
国家能源集团决战决胜国企改革三年行动
2022-02-16 -
【聚集】聚烯烃国产化进程加速 推动高分子材料催化剂行业竞争加剧
2022-02-09 -
阿布扎比加快私有化进程
2022-02-06 -
宏英智能成功过会 工业自动国产化进程在加速
2022-01-24 -
美格智能5G技术加速5G行业商用进程之天线!
2022-01-20 -
基于FPGA的百变设计方案
2021-10-19 -
碳中和陷阱:警惕中国工业化进程被打断
2021-10-15 -
荣耀高端化进程:全场景进化与无缝协同
2021-09-22 -
一文了解光刻胶及国产化进程
2021-09-17 -
OPG在安大略省完成44兆瓦太阳能发电
2021-09-13 -
在提供PG& E更新的同时,Canadian Solar修改了预估
2021-09-09 -
FPGA主要的应用领域及产业链构成
2021-06-15 -
如何运用StartupXLOG函数恢复读取WAL?
2021-05-20