分析PostgreSQL异常重启postmaster.pid处理
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍"分析PostgreSQL异常重启postmaster.pid处理",在日常操作中,相信很多人在分析PostgreSQL异常重启postmaster.pid处理问题上存在疑惑,小编查阅
千家信息网最后更新 2024年11月28日分析PostgreSQL异常重启postmaster.pid处理
这篇文章主要介绍"分析PostgreSQL异常重启postmaster.pid处理",在日常操作中,相信很多人在分析PostgreSQL异常重启postmaster.pid处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"分析PostgreSQL异常重启postmaster.pid处理"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
启动时pid文件即锁文件的处理,若异常宕机,导致pid文件残留,那么重启时会自动将这个文件删除吗?
main>PostmasterMain->CreateDataDirLockFile->CreateLockFile:: for (ntries = 0;; ntries++){ // O_EXCL若存在则返回失败,errno是17 fd = open(filename, O_RDWR | O_CREAT | O_EXCL, pg_file_create_mode); if (fd >= 0) break; if ((errno != EEXIST && errno != EACCES) || ntries > 100)//重试100次 could not create lock file fd = open(filename, O_RDONLY, pg_file_create_mode); ... if ((len = read(fd, buffer, sizeof(buffer) - 1)) < 0) ... close(fd); //0表示检查进程是否存在。ESRCH:没有这个进程;EPERM:操作不允许 if (kill(other_pid, 0) == 0 ||(errno != ESRCH && errno != EPERM)){ lock file \"%s\" already exists } if (unlink(filename) < 0)//删除,然后循环再试创建 ... } //此时创建成功 if (write(fd, buffer, strlen(buffer)) != strlen(buffer))//写入pid内容 ... if (pg_fsync(fd) != 0) ... if (close(fd) != 0) ...
说明:
1)会以O_RDWR | O_CREAT | O_EXCL形式open,若存在的话会返回创建文件失败。
2)若创建失败则会重试100次
3)若文件已存在,则以只读的形式再次open并读取文件内容
4)解析出pid,并通过kill(pid,0)判断进程是否存在(注意,若有子进程残留也会判断出来)
5)若有进程不存在,则将这个文件删除,然后进行重试
6)创建成功后,将当前进程信息写入文件并sync持久化。
7)最后将文件句柄关闭
到此,关于"分析PostgreSQL异常重启postmaster.pid处理"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
文件
进程
处理
分析
学习
成功
内容
形式
更多
帮助
残留
实用
接下来
信息
再次
句柄
文章
方法
理论
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
凯软件开发类的资金来源
长宁区品牌软件开发厂家价格
三级网络技术软件注册码
软件开发公司转型
服务器架设用什么linux
网络安全的发展方案
广州易下互联网科技有限公司
qq改聊天数据库
数据库学习的主要内容
html表单连接数据库吗
浙江腾朝互联网科技
虚拟机安装数据库的效率
如何写一个服务器
电子科技大学网络安全科研室
泰安电商软件开发哪家靠谱
基于exce的软件开发
服务器维护费计入什么科目
太原外盘软件开发
查看linux服务器的网口状态
天台嘉悬网络技术有限公司
工业网络安全书籍
10.5 服务器
软件开发结构化生命周期
软件开发软件学习
哈尔滨物流软件开发
网络安全员学的什么
网络安全工程师近几年薪资
银行科技风控与互联网科技风控
统一通信软件开发
燃烧远征服务器不可用