分享更有价值
被信任是一种快乐

PostgreSQL的后台进程walsender分析

文章页正文上

这篇文章主要介绍“PostgreSQL的后台进程walsender分析”,在日常操作中,相信很多人在PostgreSQL的后台进程walsender分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL的后台进程walsender分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!该进程实质上是streaming replication环境中master节点上普通的backend进程,在standby节点启动时,standby节点向master发送连接请求,master节点的postmaster进程接收到请求后,启动该进程与standby节点的walreceiver进程建立通讯连接,用于传输WAL Record.
walsender启动后,使用gdb跟踪此进程,其调用栈如下:本节首先介绍调用栈中PostgresMain函数.StringInfo
StringInfoData结构体保存关于扩展字符串的相关信息.PostgresMain
后台进程postgres的主循环入口 — 所有的交互式或其他形式的后台进程在这里启动.
其主要逻辑如下:
1.初始化相关变量
2.初始化进程信息,设置进程状态,初始化GUC参数
3.解析命令行参数并作相关校验
4.如为walsender进程,则调用WalSndSignals初始化,否则执行其他信号初始化
5.初始化BlockSig/UnBlockSig/StartupBlockSig
6.非Postmaster,则检查数据库路径/切换路径/创建锁定文件等操作
7.调用BaseInit执行基本的初始化
8.调用InitProcess/InitPostgres初始化进程
9.重置内存上下文,处理加载库和前免费主机域名后台消息交互等
10.初始化内存上下文
11.进入主循环
11.1切换至MessageContext上下文
11.2初始化输入的消息
11.3给客户端免费主机域名发送可以执行查询等消息
11.4读取命令
11.5根据命令类型执行相关操作在主节点上用gdb跟踪postmaster,在PostgresMain上设置断点后启动standby节点,进入断点1.初始化相关变量
注意变量IsUnderPostmaster,如为T则表示该进程为postmaster的子进程2.初始化进程信息,设置进程状态,初始化GUC参数3.解析命令行参数并作相关校验4.如为walsender进程,则调用WalSndSignals初始化,否则执行其他信号初始化5.初始化BlockSig/UnBlockSig/StartupBlockSig6.非子进程(仍为postmaster进程),则检查数据库路径/切换路径/创建锁定文件等操作7.调用BaseInit执行基本的初始化8.调用InitProcess/InitPostgres初始化进程9.重置内存上下文,处理加载库和前后台消息交互等10.初始化内存上下文11.进入主循环
11.1切换至MessageContext上下文11.2初始化输入的消息11.3给客户端发送可以执行查询等消息11.4读取命令
命令是IDENTIFY_SYSTEM,判断系统标识是否OK
firstchar -> ASCII 81 —> 字母’Q’11.5根据命令类型执行相关操作
walsender —> 执行exec_replication_command命令继续循环,接收命令,第二个命令是START_REPLICATION开始执行复制,master节点使用psql连接数据库,执行sql语句,子进程会接收到相关信号,执行相关处理
执行脚本子进程输出DONE!DEBUG退出gdb后,psql会话crash:(到此,关于“PostgreSQL的后台进程walsender分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: InnoDB表为什么一定要用自增列做主键

这篇文章主要介绍InnoDB表为什么一定要用自增列做主键,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 我们先了解下InnoDB引擎表的一些关键特征: InnoDB引擎表是基于B+树的索引组织表(IOT); 每个表都需要有一个聚集索引(…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册