GBase 8c数据库运维——常见故障定位手段 分享

1.操作系统故障定位手段

查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。
可以通过如下方法确定操作系统是否存在问题:

  • 通过 SSH 或者其它远程登录工具登录该节点。如果连接失败,请尝试通过 ping 发包检查网络状态。

    • 如果 ping 操作没有回复,则表明这台机器可能存在网络连接故障、处于宕机状态或者正处于重启状态。
      如果操作系统内核发生 panic 引起系统崩溃,系统重新启动时间较慢,需经过较长时间(大约 20 分钟)才能重启。建议每 5 分钟尝试连接一次,20 分钟后不能连接成功,则表明这台机器已宕机或网络连接有问题,需要管理员到现场进行检查处理。
    • 如果网络可以 ping 通,但在 SSH 登入时卡住或登入后不能执行任何命令,通常是由系资源不足(如 CPU 或 IO 资源过载)引起的机器不响应外部连接。建议重试几次。如果 5 分钟内仍不能成功,需要管理员到现场进行检查处理。
  • 可以远程登录节点,但在执行操作时,响应缓慢,需要检查系统运行情况后,进行进一步处理。例如,收集系统信息、确定系统版本、硬件、参数设置及登录用户情况。下面列出一些常用命令供参考。

    • “who”命令查看当前在线用户。
    # who # cat /etc/openEuler-release # uname -a
    • “sysctl -a”命令(需要 root 用户执行)和“cat /etc/sysctl.conf”命令获得系统参数信息。
    • “cat /proc/cpuinfo”和“cat /proc/meminfo”获得 CPU 和内存信息。
      # cat /proc/cpuinfo # cat /proc/meminfo
    • “top -H”命令查看 CPU 的使用情况,确定是否因为某个进程导致 CPU 使用率过高。如果存在这种情况,通过 gdb 或 gstack 打印该程序堆栈,观察是否该程序处于死循环逻辑。
    • “iostat -x 1 3”命令查看 IO 的使用情况,确定是否当前磁盘的 IO 处于饱和状态。查看当前运行的执行作业情况,决定是否对占用较多 IO 的执行作业进行处理。
    • “vmstat 1 3”命令查看当前系统中内存的消耗情况,结合“top”命令获得消耗内存较多的进程,处于超出预期的状态。
    • 以 root 用户查看操作系统日志信息(/var/log/messages)或 dmseg 信息,检查操作系统是否发生过异常错误。
    • 操作系统的 watchdog 是为了保证 OS 系统正常运行,或者从死循环,死锁等状态退出的一种机制,如果 watchdog 超时(一般默认值为 60s),系统将会复位。

2.网络故障定位手段
在数据库正常工作的情况下,网络层对上层用户是透明的,但数据库在长期运行时,可能会由于各种原因导致出现网络异常或错误。常见的因网络故障引发的异常有:

  • 数据库启动失败,报网络错误。
  • 状态异常,如:节点上所有的实例都是 UnKnown 或者所有主机都切换为备机。
  • 网络连接建立失败。
  • 对数据库执行 SQL 操作时,报网络异常中断的错误。
  • 连接数据库或执行查询时发生进程停止响应。数据库出现了网络故障后,主要通过使用 Linux 系统提供的网络相关命令工具(ping、ifconfig、netstat、lsof 等),进程堆栈查看工具(gdb、gstack),结合数据库的日志信息,进行分析定位。本节通过举例介绍常见的网络问题,并进行基本的分析定位。

常见故障问题如下:

  • 启动失败,报网络错误

    问题现象 1:日志中存在如下错误信息。可能是端口被其他进程侦听。

    LOG: could not bind socket at the 10 time, is another postmaster already running on port 15400?

    处理办法:执行如下命令查看侦听该端口的进程。端口号请根据实际端口号替换。

    # netstat -anop | grep 15400

    根据查询结果,强行停止正在占用端口的进程或者更改数据库侦听端口。
    问题现象 2:使用 gs_om -t status –detail 查询状态,如果显示主备间连接未建立。
    处理办法:在 openEuler 操作系统下,使用 systemctl status firewalld.service 命令,查看节点上是否开启了防火墙。如果开启,使用 systemctl stop firewalld.service 关闭防火墙。

    systemctl status firewalld.service ●firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)

    操作系统不同,命令可能不同,使用对应操作系统命令查看修改。

  • 数据库状态异常

    问题现象:某一节点上出现如下问题:

    • 所有实例都是 UnKnown。

    • 所有主实例都切换成了备实例。

    • 查询中出现大量 Connection reset by peer,Connection timed out 等报错信息。
      处理办法

    • 如果 SSH 不能连接故障机器,在其他机器上使用 Ping 命令向该机器发数据包。如果可以 Ping 通,说明可能是该机器上的资源(内存、CPU、磁盘)耗尽导致不能建立连接。

    • 如果 SSH 可以连接该机器,尝试执行查询,并每隔 1s 执行/sbin/ifconfig eth?(?代表数字,表示第几个网卡)命令,查看如下信息中的 dropped 及 errors 值的变化情况,如果增长迅速,可能是网卡或网卡驱动故障。

      # ifconfig enp125s0f0 enp125s0f0: flags=4163 mtu 1500 inet 10.90.56.36 netmask 255.255.255.0 broadcast 10.90.56.255 inet6 fe80::7be7:8038:f3dc:f916 prefixlen 64 scopeid 0x20 ether 44:67:47:7d:e6:84 txqueuelen 1000 (Ethernet) RX packets 129344246 bytes 228050833914 (212.3 GiB) RX errors 0 dropped 647228 overruns 0 frame 0 TX packets 96689431 bytes 97279775245 (90.5 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

      检查如下参数设置是否正确。

      net.ipv4.tcp_retries1 = 3 net.ipv4.tcp_retries2 = 15 ```* 网络连接建立失败

    问题现象 1:节点连接其他节点失败,日志中报出“ Connection refused ”错误。

    处理办法:

    • 查看端口是否配置错误,导致连接时使用的端口并非对方侦听的端口。查看报错节点配置文件 postgresql.conf 记录端口号与对方侦听的端口就号是否一致。
    • 查看对方端口侦听是否正常(可以使用“netstat –anp”命令)。
    • 查看对方进程是否存在。

    问题现象 2:对数据库执行 SQL 操作时,获取连接描述符失败,报错如下。

    WARNING: 29483313: incomplete message from client:4905,9 WARNING: 29483313: failed to receive connDefs at the time:1. ERROR: 29483313: failed to get pooled connections

    在日志中,找到上面的错误,并向上查看一段日志内容,可以看到详细的错误信息,常见的错误如下所示,主要是由于主备信息不正确导致。

    FATAL: dn_6001_6002: can not accept connection in pending mode. FATAL: dn_6001_6002: the database system is starting up FATAL: dn_6009_6010: can not accept connection in standby mode.

    处理办法:

    • 使用 gs_om -t status –detail 查询状态,确认是否发生过主备切换。重置实例状态。
    • 此外,需要查看连接失败的节点是否发生了 core 或者重启。通过 om 日志可以查看到是否发生了重启。
    • 对数据库执行 SQL 操作时,报网络异常中断的错误

    问题现象 1:查询执行失败,报错信息如下。

    ERROR: dn_6065_6066: Failed to read response from Datanodes. Detail: Connection reset by peer. Local: dn_6065_6066 Remote: dn_6023_6024 ERROR: Failed to read response from Datanodes Detail: Remote close socket unexpectedly ERROR: dn_6155_6156: dn_6151_6152: Failed to read vector response from Datanodes

    连接建立失败,报错信息如下。

    ERROR: Distribute Query unable to connect 10.145.120.79:14600 [Detail:stream connect connect() fail: Connection timed out ERROR: Distribute Query unable to connect 10.144.192.214:12600 [Detail:receive accept response fail: Connection timed out

    处理办法:

    • 使用 gs_check 检查网络配置是否符合标准。详细参考《工具参考手册》中“服务端工具 > gs_check”章节中对 network 的检查。
    • 查看是否有进程发生 core 或重启,以及主备切换。
    • 如果不存在上述问题,可以联系网络技术人员做具体分析。

3.磁盘故障定位手段

常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。部分磁盘故障会导致文件系统损坏,例如磁盘未挂载,数据库管理自动定期执行磁盘检测时会识别故障并将实例停止,查看数据库状态时对应实例状态异常;部分磁盘故障不会导致文件系统损坏,例如磁盘空间不足,数据库管理无法检测到,服务进程访问到故障磁盘会异常退出,例如数据库无法启动、checksum 校验不对、页面读写失败、页面校验错误等。

  • 对于会导致文件系统损坏的故障,查看状态会显示对应实例状态持续为 Unknown,定位方法如下:

    • 查看日志,日志中会有类似 “data path disc writable test failed”异常,说明文件系统已损坏。

    • 文件系统损坏可能是磁盘未挂载,通过 ls –l 可以看到该磁盘对应的目录权限异常,如下。

    • 也可能是磁盘出现坏块,然后操作系统将文件系统保护起来,拒绝读写,可以使用磁盘坏块检查工具如 badblocks 检查磁盘是否有坏块,如下。

      # badblocks /dev/sdb1 -s -v Checking blocks 0 to 2147482623 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. (0/0/0 errors)
  • 对于不会导致文件系统损坏的故障,服务进程访问到故障磁盘会异常退出,定位方法如下。
    查看日志。日志中会有文件读写错误,例如“No space left on device”、“ invalid page header n block 122838 of relation base/16385/152715”。 文件读写错误可能是磁盘空间不足,通过 df -h 可以看到磁盘空间已达 100%,如下。

# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 255G 0 255G 0% /dev tmpfs 255G 35M 255G 1% /dev/shm tmpfs 255G 57M 255G 1% /run tmpfs 255G 0 255G 0% /sys/fs/cgroup /dev/mapper/openeuler-root 196G 8.8G 178G 5% / tmpfs 255G 1.0M 255G 1% /tmp /dev/sda2 9.8G 144M 9.2G 2% /boot /dev/sda1 10G 5.8M 10G 1% /boot/efi /dev/mapper/openeuler-home 1.5T 69G 1.4T 5% /home tmpfs 51G 0 51G 0% /run/user/0 tmpfs 51G 0 51G 0% /run/user/1004 /dev/sdb1 2.0T 169G 1.9T 9% /data

4.数据库故障定位手段

  • 日志。数据库日志记录了数据库服务端启动、运行或停止时出现的问题,当数据库在启动、运行或停止的过程中出现问题时,数据库用户可以通过运行日志快速分析问题的产生原因,并根据不同的原因采取相应的处理方法,尽可能地解决问题。
  • 视图。数据库提供了许多视图,用于展示数据库的内部状态,在定位故障时,经常使用的视图如下:
    • pg_stat_activity,用于查询当前实例上各个 session 的状态。
    • pg_thread_wait_status,用于查询该实例上各个线程的等待事件。
    • pg_locks,用于查询当前实例上的锁状态。
  • CORE 文件。数据库相关进程在运行过程中可能会因为各种意外情况导致数据库崩溃(Coredump),而崩溃时产生的 core 文件对于迅速定位程序崩溃的原因及位置非常重要。如果进程运行时出现 Coredump 现象,建议立即收集 core 文件便于分析、定位故障。
    • 对性能有一定的影响,尤其是进程频繁异常时对性能的影响更大。
    • core 文件会占用磁盘空间。因此,当检查到 core 文件产生后,应及时解决以避免对操作系统带来更严重的影响。操作系统自带 core dump 机制。开启后,系统中所有出现 Coredump 问题时都会生成 core 文件,对操作系统带来性能和磁盘占用的影响。
    • 设置 core 文件生成路径。修改/proc/sys/kernel/core_pattern 内容。
      # cat /proc/sys/kernel/core_pattern /data/jenkins/workspace/GBase 8cInstall/dbinstall/cluster/corefile/core-%e-%p-%t

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

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

相关文章

Flutter 又迎大坑修改?iOS 26 键盘变化可能带来大量底层改动

又是一个小问题可能带来的大改动,感觉官方在评估的时候,有点过分细节了。 这个问题来自去年底的 #179482 issue ,Flutter 在 iOS 26 上,某些场景会因为出现半透明键盘,而页面底下本来应该被键盘遮挡的 Widget&#xf…

3C电子电爪的“心脏”:满足各行各业高精度需求的电爪厂家推荐 - 品牌2025

在高端制造迈向智能化、柔性化的新阶段,电动夹爪作为机器人末端执行器的核心组件,正成为决定产线效率与良率的关键。尤其在3C电子、半导体、新能源等对微米级操作精度要求严苛的行业,传统气动方案已难以满足柔性抓取…

易语言开发从入门到精通:26+27章实战复盘·全栈知识体系地图·终身学习资源库·个人成长与中文编程传承指南

易语言开发从入门到精通:2627章实战复盘全栈知识体系地图终身学习资源库个人成长与中文编程传承指南 🔄🗺️📚 1.28.1 学习目标 🎯 作为《易语言开发从入门到精通》的全书系统性收尾总结升华终身学习开篇,本…

文献阅读6

文献阅读66. Disscusion 6.1. Ablation study消融实验从两部分展开:1)关于 DBPM 组件的消融(Ablation Study about DBPM)2)关于训练策略的消融(Ablation Study about Training Strategy)1)关于 DBPM 组件的消融…

企业微信API开发:外部群主动推送场景

​ QiWe开放平台 开发者名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生…

基于 API 体系的外部群消息推送“避坑”指南

​ QiWe开放平台 开发者名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生…

高口碑电爪品牌推荐:厂商的竞争格局与技术专利 - 品牌2025

在智能制造加速演进的2026年,电动夹爪、工业夹爪以及各类电爪产品已成为高端制造产线中不可或缺的核心执行器。随着3C电子、新能源、半导体等行业对柔性化、高精度自动化需求的激增,传统气动夹爪正被具备精密力控能力…

国内iPaaS主流厂商推荐哪家好(最新专业深度测评)

在企业数字化转型进入规模化落地的2025年,iPaaS(集成平台即服务)已从“可选工具”升级为“数字化基座”,成为打通系统数据孤岛、实现业务自动化的核心支撑。本次测评聚焦国内主流iPaaS系统集成平台,旨在通过客观量化分…

2025免费调研平台技术对比:海量模板+智能分析全场景解决方案 - 品牌排行榜

一、市场现状与用户选择困境 艾瑞咨询《2024中国企业数字化调研白皮书》显示,国内在线调研市场用户规模已突破4.2亿,其中82%的中小企业和个人用户优先选择免费调研平台。然而市场上超过30款免费工具功能参差不齐,67%…

【Python程序开发系列】对象存储服务AWS S3以及使用示例(案例分析)

这是我的第448篇原创文章。一、引言Amazon Simple Storage Service (S3) 是 AWS 提供的对象存储服务,具有以下核心特点:对象存储:存储的是文件对象(而非块存储),每个对象包含数据、元数据和唯一键无限扩展&…

【飞腾平台实时Linux方案系列】第十一篇 - 飞腾平台电力行业实时控制方案设计。

一、简介:为什么"国产芯实时Linux"是电力行业刚需?政策驱动:国家电网 2025 年"100% 自主可控"目标,变电站、配电终端必须替换进口 x86/PLC。场景痛点:变电站合并单元采样间隔 ≤ 1 ms,…

2026年精密钢管/热轧无缝管/结构用碳钢无缝管厂家权威榜单:专注工业传输与机械制造,多场景管材解决方案供应

在高端装备制造、重型机械及液压系统等领域,精密钢管作为核心的“工业骨骼”与“动力血管”,其性能的优劣直接决定了主机设备的可靠性、精度与使用寿命。尤其是珩磨管、冷拔精密管和厚壁无缝管等产品,对尺寸公差、表…

如何开通快捷支付?

流程十分简便,只需登录个人网上银行账户,找到快捷支付功能入口,按页面提示完成操作即可开通。快捷支付有哪些优势?开通后能享受这些便利:1. 高效便捷:凭银行卡预留手机号验证即可完成支付,无需手…

探索稿定设计:专业封面模板与便捷在线制作体验

在信息传播节奏日益加快的当下,封面作为内容的 “视觉入口”,直接决定了受众的第一感知。无论是书籍画册、学术报告、企业宣传册,还是小红书动态、微信朋友圈、抖音视频封面,亦或是 PDF 文档、PPT 首页,一款主题契合、…

如何建设一个高质量官网?建设企业网站常见问题集锦

绝大多数的企业都有自己的网站,但网站的质量没有统一的标准,因为企业官网的建设目的本身就各有不同,每家企业所处的发展阶段、战略目标也各异。那么,我们怎么来看,现在的企业网站究竟存在哪些问题呢?下面&a…

解构AIGC落地困局:低代码如何成为普惠AI的技术桥梁

当大模型的浪潮席卷整个IT圈,AIGC早已从概念走向实践,但一个残酷的现实摆在眼前:90%的企业仍无法真正享受到AI技术的红利。不是因为模型不够强大,也不是因为需求不够迫切,而是卡在了“技术落地的最后一公里”——复杂的…

舟山桃花岛:山海奇观里的武侠江湖

桃花岛,位于浙江省舟山市普陀区东南部的海域,是舟山群岛中的第七大岛,总面积约43.1平方公里。它与“海天佛国”普陀山、“沙雕故乡”朱家尖隔港相望,共同构成了普陀旅游的核心区域。这座岛屿因其与金庸武侠小说的深厚渊源而闻名&a…

SSCOM:硬件通信调试领域的多理论融合实践

目录 引言 一、通信理论 1.1 协议兼容性理论 1.2 异步通信同步化理论 二、自动化控制理论 2.1 脚本化测试理论 2.2 事件驱动架构理论 三、数据科学理论 3.1 时序数据分析理论 3.2 可视化交互理论 四、应用价值与行业影响 4.1 效率提升量化分析 4.2 行业标准化推动 结论 引…

开源APS排产系统,出货计划如何成为企业降本增效的关键?

在现代制造业生产管理中,企业不仅需要高效地生产产品,更需要确保产品在正确的时间交付给客户。APS(高级计划与排程)系统的出货计划功能,正是通过智能算法将库存、生产能力和客户需求精准匹配,为企业提供可视…