PG的wal receiver进程如何启动

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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目录下找需要的日志文件进行打开。先将本地日志恢复。

注:这里没有标记日志源currentSourceXLOG_FROM_PG_WAL

5)本地日志恢复完后,再次进入WaitForWALToBecomeAvailable函数,此时需要切换到流复制日志源XLOG_FROM_STREAM

6)流复制发启拉取起点及时间线的设置:

(1)读取checkpoint时就需要发启流复制,此时日志位置ptrcheckpointredo位置,时间线tlicheckpoint的时间线。

(2)其他场景,日志位置ptr是本地日志恢复结束位置,时间线tli是本地日志恢复完时的时间线。

(3)请求拉取日志位置:将ptr进行段文件对齐,也就是说从日志段文件开头进行拉取。

7)向备机主进程发送PMSIGNAL_START_WALRECEIVER信号

8)备机主进程接收到信号后,sigusr1_handler函数处理该信号。标记WalReceiverRequestedtrue,调用MaybeStartWalReceiver->StartWalReceiver最终fork出一个子进程,并标记为walreceiver,进入WalReceiverMain

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
关系型数据库 数据库 PostgreSQL
pg 进程
BGW
113 0
|
关系型数据库 数据库 PostgreSQL
pg 进程
postmaster
108 0
|
关系型数据库
pg 进程
ps -ef | grep postgres
100 0
|
SQL 关系型数据库 数据库
PG 数据库锁表问题解决方案:查询pg数据库锁表的语句和进程,通过进程pid杀掉进程进行批量表解锁
PG 数据库锁表问题解决方案:查询pg数据库锁表的语句和进程,通过进程pid杀掉进程进行批量表解锁
858 0
PG 数据库锁表问题解决方案:查询pg数据库锁表的语句和进程,通过进程pid杀掉进程进行批量表解锁
|
SQL Oracle 关系型数据库
【DB吐槽大会】第65期 - PG 没有内置进程池
大家好,这里是DB吐槽大会,第65期 - PG 没有内置进程池
|
2月前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
|
28天前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
23天前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
30 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
18天前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。
|
1月前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
132 1