PG数据库导致断电/重启无法正常启动

news2024/9/21 20:46:30

一、问题

数据库断电后,启动PG数据库后无法正常启动,报”psql: could not connect to server: No such file or directory”的错误,错误图片如下:

二、背景分析

数据库是单机版,使用k8s进行部署运行在指定节点,数据目录挂服务器的指定目录。在数据中心机房部署了两套k8s集群,但是pod网络未规划好,两个集群pod网段有重复导致两个集群之间的pod概率性的发生地址冲突。在发生ip重复了后修改了我方使用的k8s集群的pod网段,并对所有pod进行了重启,在执行重启操作后我方部署pg数据库无法正常提供服务,经过查询容器日志发现了上述问题。

三、解决过程

①   根据日志进入容器查看文件是否存在

kubectl exec -it -n namespace contairnerId /bin/sh

进入容器后发现/var/run/postgresql/.s.PGSQL.5432文件不存在,然后进入一个正常的pg数据库容器,发现该文件是存在的,因此确认pg数据库的进程不正常。

②   查看pg数据库进程是否存在

cat /var/lib/postgresql/11/main/master.pid

                   查看后结果和含义如下:

 

          1)154->数据库的主进程号,可以通过ps -ef | grep postgres来查询,同时与/var/run/postgresql/11-main.pid里的值一致。

     2)/var/lib/postgresql/11/main->数据库的数据目录

     3)1724468744->数据库的启动时间,需要进行转换

          4)5432->数据库端口号

     5)/var/run/postgresql->PostgreSQL 的 Unix 域套接字目录

         然后通过执行top命令,发现pg数据库的进程并未启动,因此进一步确认pg数据库未正常启动。

③   重新启动pg数据库进程,发现问题原因

执行以下命令启动数据库:

./usr/lib/postgresql/11/bin/pg_ctl  /var/lib/postgresql/11/main start

执行完以后在当前屏幕输出有“invalid primary checkpoint record”等字样,翻译之后就是检查点损坏的意思。

④   修复检查点

使用数据库自带工具对检查点进行修复,进入数据库容器,切换到postgres用户,使用PG自带工具修复,执行命令如下:

./usr/lib/postgresql/11/bin/pg_resetwal –D /var/lib/postgresql/11/main

          修复完后启动数据库进程:

                   /usr/lib/postgresql/11/bin/pg_ctl -D /var/lib/postgresql/11/main start

 

     再通过navicat工具连可正常访问数据库了。

四、总结

原因定位:异常重启或断电异常了数据文件损坏,pg数据重启后在加载数据文件时发现检查点损坏,无法正常启动。

  解决方法:使用pg自带工具进行检查点修复:

1)  进入数据库容器,切换到postgres用户;

2)  找到pg_resetwal工具,对指定数据文件进行修改,以下是本次修改的命令

./usr/lib/postgresql/11/bin/pg_resetwal –D /var/lib/postgresql/11/main

 

3)  启动数据库

./usr/lib/postgresql/11/bin/pg_ctl -D /var/lib/postgresql/11/main start

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2072145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试-找座位(C++ Java Python)

题目描述: 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位 分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下&…

正则表达式匹配——力扣困难题解

力扣链接:正则表达式匹配 题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 …

GUI界面开发之tkinter(三) 按钮类组件和选择列表类组件

大家好!我是码银儿~,欢迎关注🥰: CSDN:码银公众号:码银学编程 一、按钮类组件 按钮类组件顾名思义就是按钮,跟平时大家看见的按钮没啥区别,允许用户通过点击执行操作。以下是三种…

Awesome-LLMs-for-Video-Understanding - 基于大型语言模型的视频理解研究

Awesome-LLMs-for-Video-Understanding 是 基于大型语言模型的视频理解研究 github : https://github.com/yunlong10/Awesome-LLMs-for-Video-Understandingpaper:Video Understanding with Large Language Models: A Survey https://arxiv.org/pdf/2312.17432 视频…

五、前后端分离通用权限系统(5)

🌻🌻 目录 一、前端框架1.1、vue-element-admin1.1.1、Vue 概述1.1.2、Element-ui 概述1.1.3、ES6 概述 1.2、vue-admin-template1.2.1、简介1.2.2、下载1.2.3、安装1.2.4、源码目录结构(了解)1.2.5、改造登录&退出功能1.2.5.…

跨域解决 | 面试常问问题

跨域解决 | 面试常问问题 跨域问题一直是前端开发中不可避免的一部分,它涉及到浏览器的同源策略和安全机制。本文将深入解析跨域问题的本质,并探讨前端和后端的多种解决方案,同时分享一些扩展与高级技巧。最后,我们还将总结跨域解…

K8S系列——(二)、K8S部署RocketMQ集群

1、环境准备 要将RocketMQ部署到K8S上,首先你需要提前准备一个K8S集群环境,如图我已经准备好了一个版本为 v1.28.13 的 K8S 集群(其他版本也没问题): 角色IPMaster192.168.6.220Node-1192.168.6.221Node-2192.168.6.…

浏览器不开梯子无法上网,检查代理或防火墙或者找不到服务器ip地址

1、代理没有关闭 检查代理是否关闭 检查方法1: 在控制面版中找到Internet选项,点击连接栏,在连接栏中选择局域网设置。之后将代理服务器下面的框选中的对勾取消。最终如下 检查方法2: 打开设置,找到网络和internet…

书生浦语大模型实战营:LMDeploy量化部署

1.任务: 使用结合W4A16量化与kv cache量化的internlm2_5-1_8b-chat模型封装本地API并与大模型进行一次对话。 2.背景: 1.计算模型需要的权重大小: 1B代表10个亿参数,假如是16位浮点数(f16),也…

计算机视觉概念科普

计算机视觉(Computer Vision, CV)是一门多学科交叉的科学,旨在让计算机具备“看”的能力,即通过图像或视频数据来理解世界。它结合了信号处理、图像处理、模式识别、机器学习等多个领域的技术,让计算机能够执行诸如识别…

【Python学习手册(第四版)】学习笔记20.2-迭代和解析(二)-迭代解析、迭代方法的计时比较、函数陷阱

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文较简单,主要是概括了解析语法(列表解析、生成器、集合、字典解析),以及对前面的各种迭代进行计时比较&#xf…

通过python解决原神解密

最近楼主玩原神世界任务做到稻妻了,在稻妻有很多解密游戏,但是博主最头疼的就是稻妻的石头解密QAQ(如图) 就在昨晚,楼主又碰到了石头解密,瞎打,半天解不出来。于是就想,有没有什么严…

如何在Windows下使用make编译Makefile

最近有小伙伴咨询我去编译运行一个程序。我一开始以为是CMakeLists,结果发现是makefile。 什么是Makefile ‌Makefile是一种用于自动化构建和管理程序的工具‌,它定义了项目中文件的依赖关系和构建步骤,帮助程序员自动化编译、链接和打包程序…

Ps:创建帧动画

在 Photoshop 中,帧动画 Frame Animation是一种通过在“时间轴”面板中创建和管理多个帧来实现动画效果的方式。 所谓帧动画,也就是传统意义上的逐帧动画,依次播放每个帧而构成的动画形式。每个帧记录了“图层”面板上所有图层的属性状态&…

QT Mainwindow下指定控件的setMouseTracking(true)和mousemoveevent函数失效-问题解决

目录: 一,问题描述二,解决方法2.1解决依据2.2方法实操 三,参考资料 一,问题描述 ☀️之前碰到过的一个问题,现在分享出来:想在qt哪里搞个鼠标移动在控件显示的图片上,然后实时显示对…

[数据集][目标检测]红外场景下车辆和行人检测数据集VOC+YOLO格式19069张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):19069 标注数量(xml文件个数):19069 标注数量(txt文件个数):19069 标…

一文带你画PCB板,有手就行

背景 最近写Autosar网络唤醒功能,想在实际硬件上验证,但是市面上没有找到板子验证,只能找人帮忙画PCB板。但是这里遇到比较大的问题,1、整个周期会比较长,板子不太可能一次就能完成,中间会出现修改的地方&…

C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿,推荐…

【蓝牙协议栈】【BLE】【GATT】精讲GATT Profile架构(图文并茂精华版)

目录 1. 蓝牙BLE通用属性协议(GATT) 2.GATT角色介绍 3.GATT 层级和Profile架构 4. GATT Server架构(重点内容) 5. Characteristic架构(重点内容) 6. (Characteristic Properties)特性属性详解&#x…

一款免费的目录以及文件对比工具,替代Beyond Compare

Beyond Compare是一款功能强大的文件对比工具,但是由于是付费软件,很多没有购买的企业用户无法使用。CCompare就是一款替代Beyond Compare的免费方案,一款来自中国的可替换beycond compare, 免费使用的代码同步对比工具。 CCompare 是一款功…