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进程如何启动
最新活动更多
-
11月19日立即报名>> 【线下论坛】华邦电子与恩智浦联合技术论坛
-
11月22日立即报名>> 【线下论坛】华邦电子与莱迪思联合技术论坛
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
精彩回顾立即查看>> 【在线会议】多物理场仿真助跑新能源汽车
-
精彩回顾立即查看>> 【限时免费下载】TE暖通空调系统高效可靠的组件解决方案
-
精彩回顾立即查看>> 2024德州仪器嵌入式技术创新发展研讨会
推荐专题
- 1 格科微5000万像素产品再传佳讯 剑指中高端手机后主摄市场
- 2 Kvaser发布全新软件CanKing 7:便捷CAN总线诊断与分析!
- 3 小米15供应链谁是大赢家?市场高度关注这家企业
- 4 锐龙7 9800X3D首发评测:网游断崖式领先
- 5 国补加持!双11最值得入手的Mini Led电视来了!不买真亏大了
- 6 长江存储PC41Q 1TB评测:裸条满载仅62度
- 7 Intel酷睿Ultra 9 285K首发评测:游戏性能一言难尽
- 8 小米入局家用NAS市场!手机厂商要做NAS普及推手?
- 9 HUAWEI SOUND 用科技开创智慧音响新世代
- 10 工业加热技术创造烘焙奇迹:Kanthal AF加热元件以37.55秒创造世界最短披萨烘焙时间
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论