首页 > 数据库 >openGauss学习笔记-190 openGauss 数据库运维-常见故障定位案例-服务启动失败

openGauss学习笔记-190 openGauss 数据库运维-常见故障定位案例-服务启动失败

时间:2024-01-08 19:35:46浏览次数:35  
标签:10 常见故障 运维 启动 数据库 实例 失败 openGauss 目录

openGauss学习笔记-190 openGauss 数据库运维-常见故障定位案例-服务启动失败

190.1 服务启动失败

190.1.1 问题现象

服务启动失败。

190.1.2 原因分析

  • 配置参数不合理,数据库因系统资源不足,或者配置参数不满足内部约束,启动失败。
  • 由于部分数据节点状态不正常,导致数据库启动失败。
  • 目录权限不够。例如对/tmp目录、数据库数据目录的权限不足。
  • 配置的端口已经被占用。
  • 开启了系统防火墙导致数据库启动失败。
  • 组成数据库的各台机器之间需要正确建立互信关系,在互信关系出现异常的情况下,数据库将无法启动。
  • 数据库控制文件损坏。

190.1.3 处理办法

  • 确认是否由于参数配置不合理导致系统资源不足或不满足内部约束启动失败。
    • 登录启动失败的节点,检查运行日志确认是否因资源不足启动失败或配置参数不满足内部约束。例如出现Out of memory的错误或如下错误提示均为资源不足或配置参数不满足内部约束导致的启动失败。
FATAL: hot standby is not possible because max_connections = 10 is a lower setting than on the master server (its value was 100)
  • 检查GUC参数配置的合理性。例如,shared_buffers、effective_cache_size、bulk_write_ring_size等消耗资源过大的参数;或max_connections等增加后不容易减少的参数。GUC参数的查看及设置方法,详情请参见配置运行参数

  • 确认是否由于实例状态不正常,导致数据库启动失败。通过gs_om -t status –detail工具,查询当前数据库各主备机实例的状态。

    • 如果某一节点上的所有实例都异常,请进行主机替换。

    • 如果发现某一实例状态为Unknown、Pending和Down的状态,则以数据库用户登录到状态不正常的实例所在节点,查看该实例的日志检查状态异常的原因。例如:

      2014-11-27 14:10:07.022 CST 140720185366288 FATAL:  database "postgres" does not exist 2014-11-27 14:10:07.022 CST 140720185366288 DETAIL:  The database subdirectory "base/ 13252" is missing.
      

      如果日志中出现上面这种报错信息,则说明该数据节点的数据目录文件遭到破坏,该实例无法执行正常查询,需要进行替换实例操作。

  • 目录权限不够处理办法。例如,对/tmp目录、数据库数据目录的权限不足。

    • 根据错误提示,确认权限不足的目录名称。
    • 使用chmod命令修改目录权限使其满足要求。对于/tmp目录,数据库用户需要具有读写权限。对于数据库数据目录,请参考权限无问题的同类目录进行设置。
  • 确认是否由于配置的端口已经被占用,导致数据库启动失败。

    • 登录启动失败的节点,查看实例进程是否存在。

    • 如果实例进程不存在,则可以通过查看该实例的日志来检查启动异常的原因。例如:

      2014-10-17 19:38:23.637 CST 139875904172320 LOG:  could not bind IPv4 socket at the 0 time: Address already in use 2014-10-17 19:38:23.637 CST 139875904172320 HINT:  Is another postmaster already running on port 40005? If not, wait a few seconds and retry.
      

      如果日志中出现上面这种报错信息,则说明该数据节点的TCP端口已经被占用,该实例无法正常启动。

      2015-06-10 10:01:50 CST 140329975478400 [SCTP MODE] WARNING: (sctp bind)         bind(socket=9, [addr:0.0.0.0,port:1024]):Address already in use  --  attempt 10/10 2015-06-10 10:01:50 CST 140329975478400 [SCTP MODE] ERROR: (sctp bind)   Maximum bind() attempts. Die now...
      

      如果日志中出现上面这种报错信息,则说明该数据节点的SCTP端口已经被占用,该实例无法正常启动。

  • 通过sysctl -a查看net.ipv4.ip_local_port_range,如果该实例配置的端口在系统随机占用端口号的范围内,则可以修改系统随机占用端口号的范围,确保xml文件中所有实例端口号均不在这个范围内。检查某个端口是否被占用的命令如下。

    netstat -anop | grep 端口号
    

    示例如下。

    [root@openGauss36 ~]# netstat -anop | grep 15970
    tcp        0      0 127.0.0.1:15970         0.0.0.0:*               LISTEN      3920251/gaussdb      off (0.00/0/0)
    tcp6       0      0 ::1:15970               :::*                    LISTEN      3920251/gaussdb      off (0.00/0/0)
    unix  2      [ ACC ]     STREAM     LISTENING     197399441 3920251/gaussdb      /tmp/.s.PGSQL.15970
    unix  3      [ ]         STREAM     CONNECTED     197461142 3920251/gaussdb      /tmp/.s.PGSQL.15970
    
  • 确认是否是由于开启了系统防火墙导致数据库启动失败。

  • 确认是否由于互信关系出现异常,导致数据库无法启动。重新配置实例中各台机器的互信关系解决此问题。

  • 确认是否由于数据库控制文件如gaussdb.state损坏或文件被清空,导致数据库无法启动。若主机控制文件损坏,可触发备机failover,然后通过重建恢复原主机;若备机控制文件损坏,可直接通过重建方式恢复备机。

标签:10,常见故障,运维,启动,数据库,实例,失败,openGauss,目录
From: https://blog.51cto.com/shuchaoyang/9149234

相关文章

  • 【测试运维】性能测试知识笔记第1篇:性能测试分类和参数(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1.LoadRunner介绍,2.脚本录制、运行、参数化,3.关联、检查点、事务......
  • 优化业务系统运维管理:实现更智能的信息化业务系统监控与决策
        在当今高度信息化的时代,业务管理已成为企业成功的关键因素。为了更好地满足不断变化的市场需求,提高企业运营效率,我们推出了一款全新的业务管理工具——监控易。这款工具将助力企业实现更高效、更智能的业务监控与决策。一、业务系统运维列表:全面掌握业务状态    ......
  • openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位
    openGauss学习笔记-188openGauss数据库运维-常见故障定位案例-core问题定位188.1磁盘满故障引起的core问题188.1.1问题现象TPCC运行时,注入磁盘满故障,数据库进程gaussdbcore掉,如下图所示。188.1.2原因分析数据库本身机制,在磁盘满时,Xlog日志无法进行写入,通过panic日志退......
  • openGauss学习笔记-187 openGauss 数据库运维-常见故障定位手段
    openGauss学习笔记-187openGauss数据库运维-常见故障定位手段187.1操作系统故障定位手段查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。可以通过如下方法确定操作系统是否存在问题:通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过......
  • Kubernetes容器运维与编排技术的精髓
    Kubernetes容器运维与编排技术的精髓在当今云原生技术的浪潮中,Kubernetes(简称K8s)无疑是最为引人注目的容器编排工具之一。作为一个强大而灵活的平台,Kubernetes在容器化应用的自动部署、扩展、管理方面展现了其卓越的能力。本篇博文将深度剖析Kubernetes容器运维与编排技术,重点关注......
  • openGauss学习笔记-186 openGauss 数据库运维-升级-集群管理组件增量升级
    openGauss学习笔记-186openGauss数据库运维-升级-集群管理组件增量升级本章介绍版本集群管理组件增量升级方法。186.1操作步骤集群管理组件升级前准备与检查集群管理组件升级集群管理组件升级后检查集群管理组件增量升级注意事项:集群管理组件增量升级操作不能和扩节......
  • VMware vRealize Operations 8.6 下载 - 自动驾驶式 IT 运维管理
    VMwarevRealizeOperations8.6|12OCT2021|Build18741589VMwarevRealizeOperations8.5|2021年|内部版本18255622VMwarevRealizeOperations8.4|2021年|内部版本17863947VMwarevRealizeOperationsManager8.3|2021年|内部版本17501340VMware......
  • openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理
    openGauss学习笔记-185openGauss数据库运维-升级-提交升级/升级版本回退/异常处理185.1提交升级升级完成后,如果验证也没问题。接下来就可以提交升级。说明:一旦提交操作完成,则不能再执行回滚操作。操作步骤以数据库用户(如omm)登录节点。执行如下命令完成升级提交。......
  • 运维人员的逆袭:IT界的“万金油”如何迈向人工智能时代
    一、运维人员的角色变迁        1、从“修理工”到“系统守护者”在传统的IT环境中,运维人员的主要任务是维护服务器、网络设备和数据库等基础设施。他们需要对硬件设备进行定期检查和维修,以确保系统的稳定运行。随着云计算和虚拟化技术的普及,运维人员的工作重点逐渐转向软......
  • 探索云原生技术在自动化运维中的应用
    探索云原生技术在自动化运维中的应用摘要随着技术的不断发展,云原生技术成为了当前互联网行业的热门话题之一。本文将深入探讨云原生技术在自动化运维领域的应用,结合大数据和数据库等相关技术,为中级及以上技术人员提供实操性的建议。通过提升文章易读性,力求让读者在阅读过程中更好地......