iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >分析PostgreSQL异常重启postmaster.pid处理
  • 502
分享到

分析PostgreSQL异常重启postmaster.pid处理

2024-04-02 19:04:59 502人浏览 独家记忆
摘要

这篇文章主要介绍“分析postgresql异常重启postmaster.pid处理”,在日常操作中,相信很多人在分析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处理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 分析PostgreSQL异常重启postmaster.pid处理

本文链接: https://www.lsjlt.com/news/62894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分析PostgreSQL异常重启postmaster.pid处理
    这篇文章主要介绍“分析PostgreSQL异常重启postmaster.pid处理”,在日常操作中,相信很多人在分析PostgreSQL异常重启postmaster.pid处理问题上存在疑惑,小编查阅了各式...
    99+
    2024-04-02
  • 分析Python异常处理
    本篇内容主要讲解“分析Python异常处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析Python异常处理”吧!  “你不可能总是对的”  甚至计算机也会有失误的时候。当然程序员也不例外,...
    99+
    2023-06-01
  • SpringBoot异常处理的原理分析
    这篇文章主要介绍“SpringBoot异常处理的原理分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot异常处理的原理分析”文章能帮助大家解决问题。异常处理流程执行目标方法,目标方...
    99+
    2023-06-08
  • Python异常处理实例分析
    这篇文章主要讲解了“Python异常处理实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理实例分析”吧!那么什么是异常呢?举个例子:这里当然假设用户的输入是正确的,但...
    99+
    2023-07-02
  • Python异常处理举例分析
    这篇文章主要讲解了“Python异常处理举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理举例分析”吧!异常处理在项目开发中,异常处理是不可或缺的。异常处理帮助人们d...
    99+
    2023-06-02
  • SpringMVC异常处理源码分析
    今天小编给大家分享一下SpringMVC异常处理源码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。背景我们的代码中,总是...
    99+
    2023-07-05
  • SpringBoot中异常处理实例分析
    这篇文章主要介绍“SpringBoot中异常处理实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中异常处理实例分析”文章能帮助大家解决问题。一、背景在我们编写程序的过程中,...
    99+
    2023-06-30
  • MySQL异常处理的示例分析
    这篇文章给大家分享的是有关MySQL异常处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。针对存储过程 、触发器或函数内部语句可能发生的错误或警告信息,需要进行相关异常...
    99+
    2024-04-02
  • React16中异常处理的示例分析
    这篇文章主要介绍React16中异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!异常处理在 React 15.x 及之前的版本中,组件内的异常有可能会影响到 Reac...
    99+
    2024-04-02
  • Java异常处理机制实例分析
    这篇文章主要介绍“Java异常处理机制实例分析”,在日常操作中,相信很多人在Java异常处理机制实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java异常处理机制实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • Mongo服务重启异常问题的处理方法
    发现问题 现在公司的服务器经常性断电,所以要经常性重启所有的服务,然而这些redis、mysql、mongo等服务中,mongo经常性出现重启失败的情况,根据之前的经验和网络上帖子的...
    99+
    2024-04-02
  • Python中的异常处理实例分析
    一、什么是异常在python中,错误触发的异常如下二、异常的种类在python中不同的异常可以用不同的类型去标识,一个异常标识一种错误。1 、常用异常类AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有...
    99+
    2023-05-16
    Python
  • Java中异常处理的示例分析
    这篇文章主要介绍Java中异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!异常的定义在java中,异常就是java在编译、运行或运行过程中出现的错误总共有三种:1.编译错误 2.运行错误 3.逻辑错误...
    99+
    2023-06-25
  • PHP异常处理:利用异常日志分析生产问题
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • Python中的Selenium异常处理实例分析
    本篇内容介绍了“Python中的Selenium异常处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在进行爬虫爬取淘宝商品信息时候...
    99+
    2023-06-30
  • C++异常处理机制及常见问题分析
    C++异常处理机制及常见问题分析引言:C++是一种强大的编程语言,它提供了异常处理机制来处理程序运行过程中的错误和异常情况。异常处理是一种控制流程的机制,用于在特定的条件下,将控制从当前执行点转移到另一个处理点。本文将介绍C++中的异常处理...
    99+
    2023-10-22
    C++异常处理 问题分析
  • C++ 函数异常与类异常:多重异常处理策略
    c++++ 异常处理分为函数异常和类异常两种。多重异常处理策略包括逐一处理和捕获基类两种。实战中,可以使用异常处理策略处理不同来源的异常,根据异常类型打印不同的错误消息。 C++ 函数...
    99+
    2024-05-03
    c++ 异常处理
  • SpringMVC异常处理机制与自定义异常处理方式的示例分析
    这篇文章主要介绍SpringMVC异常处理机制与自定义异常处理方式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!提到异常处理,就不得不提HandlerExceptionResolvers,我们的Dispat...
    99+
    2023-06-25
  • YII2全局异常处理的示例分析
    这篇文章主要介绍了YII2全局异常处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先,我们必须理性认识到,任何一个即使稳定的系统中也是存在着大量的 bug,不管...
    99+
    2023-06-14
  • C#中类的异常处理实例分析
    今天小编给大家分享一下C#中类的异常处理实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言日常编码过程中,最重要的技...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作