ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读

openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读

原创 数据库开发技术 作者:shuchaoyang 时间:2023-10-12 07:00:00 0 删除 编辑

openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读193.1 switchover操作时,主机降备卡住193.1.1 问题现象193.1.2 原因分析193.1.3 处理办法193.2 磁盘空间达到阈值,数据库只读193.2.1 问题现象193.2.2 原因分析193.2.3 处理办法

openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读

193.1 switchover操作时,主机降备卡住

193.1.1 问题现象

一主多备模式下,系统资源不足时,发生switchover,出现主机降备时卡住。

193.1.2 原因分析

当系统资源不足时,无法创建第三方管理线程,导致其管理的子线程无法退出,出现主机降备时卡住。

193.1.3 处理办法

需要执行以下命令终止主机进程,使备机正常升主。确定为上述场景时执行以下操作,不是上述场景时请勿按照本方法执行。

 kill -9 PID

193.2 磁盘空间达到阈值,数据库只读

193.2.1 问题现象

执行非只读SQL时报错如下。

ERROR: cannot execute %s in a read-only transaction.

或者运行中部分非只读SQL(insert、update、create table as、create index、alter table及copy from等)时报错。

canceling statement due to default_transaction_read_only is on.

193.2.2 原因分析

磁盘空间达到阈值后,设置数据库只读,只允许只读语句执行。

193.2.3 处理办法

  1. 使用maintenance模式连接数据库,以下两种方法均可。

  • 方式一

    gsql -d postgres -p 8000 -r -m
  • 方式二

    gsql -d postgres -p 8000 -r

    连接成功后,执行如下命令:

    set xc_maintenance_mode=on;
  • 使用DROP/TRUNCATE语句删除当前不再使用的用户表,直至磁盘空间使用率小于设定的阈值。

    删除用户表只能暂时缓解磁盘空间不足的问题,建议尽早通过扩容解决磁盘空间不足的问题。

  • 使用系统用户omm设置数据库只读模式关闭。

    gs_guc reload -D /gaussdb/data/dbnode -c "default_transaction_read_only=off"

  • 👍 点赞,你的认可是我创作的动力!

    ⭐️ 收藏,你的青睐是我努力的方向!

    ✏️ 评论,你的意见是我进步的财富!


    PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


    原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论
    专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

    注册时间:2021-08-27

    • 博文量
      552
    • 访问量
      303712