首页 > 数据库 >openGauss数据库xlog目录满问题处理

openGauss数据库xlog目录满问题处理

时间:2024-04-10 11:35:53浏览次数:21  
标签:gs xlog ogdata 数据库 归档 openGauss 目录

openGauss 数据库 xlog 目录满问题处理
openGauss 数据库 xlog 满通常为以下几个原因:

1.主备状态不正常,存在网络问题,集群内有宕机的节点

2.xlog 保留数量过多

3.逻辑复制槽失效,且未及时清理

4.开启归档,但归档失败导致 xlog 不清理

首先,确认数据库状态

gs_om -t query
确认主备状态,是否存在宕机的节点。

查看是否存在 down,Standby Need repair(WAL)或者 unkown 的状态。

如果数据库状态不正常,xlog 目录 100%

需要手动移走一部分 xlog 后,检查数据库状态后将库拉起,并排查相关问题。

如果数据库状态正常,仅 xlog 目录大,则继续排查其他问题。

清理:

1.找一个空间大的目录

例如:

su - omm
cd /opengauss_bak
mkdir xlog_mv_0919
2.移走部分 xlog,到 xlog 路径下

cd /ogdata/data/dn1/pg_xlog
查看 xlog 数量,看是否 xlog 保留过多

ls | wc -l
!!!为了恢复环境,移动一小部分 xlog,其余等处理之后,自己清理

生成移动 xlog 语句,并检查(前 1000 条)

ls -ltr | head -n 1000 | awk '{print "mv "$9 " /opengauss_bak/xlog_mv_0919/"}'
3.#实际执行移动操作

ls -ltr | head -n 1000 | awk '{print "mv "$9 " /opengauss_bak/xlog_mv_0919/"}' | sh
4.移动之后 df -Th 看空间是否下来

5.gs_om -t query 查看数据库状态

如果不正常,需要先尝试拉起主数据库

gs_ctl start -D /ogdata/data/dn1
然后依次拉起备机数据库

gs_ctl start -D /ogdata/data/dn1 -M standby
备库拉不起来则先不处理,等找到 xlog 目录满源头后(例如主库删除失效逻辑复制后),考虑做 build(先尝试增量不行再用增量)

gs_ctl build -D /ogdata/data/dn1 -b incremental
gs_ctl build -D /ogdata/data/dn1 -b full
6.登录主数据库查看逻辑复制槽状态,查看有无失效逻辑复制槽

select * from pg_replication_slots;
7.在主库删除失效逻辑复制槽

select * from pg_drop_replication_slot('aohdoasdaoiodiandoan');
---------aohdoasdaoiodiandoan为逻辑复制槽名字
删除失效的逻辑复制槽,主库和备库的 xlog 目录应该都会释放一部分空间

8.删除后 df -Th 看空间是否下来

9.参数调整

(1)查看 wal_keep_segments 参数,该参数为 Xlog 日志文件段数量,“pg_xlog”目录下保留事务日志文件的最小数目。

(2)查看 max_size_for_xlog_prune 参数,在 enable_xlog_prune 打开时生效,如果有备机断连且 xlog 日志大小大于此阈值,则回收日志。

根据实际状况,可进行修改。

(3)如果是 PG13 版本,可考虑开启 max_slot_wal_keep_size 参数,他是允许 replication slot 保留的 wal 文件的最大

大小,用于防止 wal 无限增大导致主库的文件系统空间被撑爆,设置该参数之后如果超过该参数值,PostgreSQL 将开始删除最

早的 WAL 文件。默认值是-1,-1 表示表示禁用本功能。单位是 MB。

10.检查归档模式是否开启

show archive_mode;
到归档目录下,看开启归档参数时,是否有归档。并检查归档空间,排除归档相关问题。

标签:gs,xlog,ogdata,数据库,归档,openGauss,目录
From: https://www.cnblogs.com/helloopenGauss/p/18125682

相关文章

  • HAProxy适配openGauss使用指导书
    一、HAProxy简介HAProxy是一个开源的项目,其代码托管在Github上,代码链接如下:HAProxy代码链接。HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy实现了一种事件驱动,单一进程模型,此模型支持非......
  • MogDB/openGauss 开机自启动
    MogDB/openGauss开机自启动在centos7.6操作系统上设置MogDB/openGauss开机自启动,我们先来了解一下自定义服务的配置文件组成部分,共分为[Unit]、[Service]、[Install]三个部分。[Unit]Description=当前服务的简单描述Documentation=服务配置文件的位置Before=在某服务......
  • 如何在openGauss 2.1.0中使用Job
    如何在openGauss2.1.0中使用Job如何在openGauss2.1.0中使用JobJob类似unix中的crontab,有定时执行的功能,可以在指定的时间点或每天的某个时间点等自行执行任务。在各类系统使用运行过程中,经常会遇到需要定时完成的任务,比如定时更新数据,定时统计数据生成报表等等,这些......
  • 数据库性能优化调优
    0,创建的时候分库分表。表大小超过一定范围如2G1,主键顺序插入,性能好于乱序插入。推荐使用自增。2,合理索引设计,降低主键长度。在查询时,创建列的索引,然后查询用索引列升序降序查询。分页查询limit,最好覆盖索引。部分查询条件会使其索引失效,导致全盘扫描:w......
  • 2-53. 种子数据库制作
    创建DropDetails创建CropDataList_SO项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240410_0932......
  • 【高薪诚聘】数据库精英,加入我们,共创数据未来!
    我们寻找的你:【如果你是数据库架构专家】对数据库架构有深入的了解和实践经验,能够为公司构建稳定、高效、可扩展的数据库架构;对各种数据库系统有深入的理解,包括但不限于MySQL、Oracle、SQLServer等,并能够根据实际业务需求进行选择和优化;对新技术和新架构保持敏感,有能力推动公......
  • Windows 中的 REG 命令是用于在命令行界面下直接操作 Windows 注册表的工具。注册表是
    Windows中的REG命令是用于在命令行界面下直接操作Windows注册表的工具。注册表是Windows系统中存储配置信息、应用程序设置以及系统参数的数据库,通过修改注册表可以影响系统的行为和配置。REG命令允许用户通过命令行界面来查询、修改和删除注册表中的键值。它的主要作用......
  • 数据库sql入门
    目录前言:一、什么是sql1、定义2、类型二、什么是数据库三、数据库的增删改1、查询数据库  2、创建数据库 3、删除数据库4、选择进入数据库5、创建表6、查看表的信息7、查看数据表列表8、删除数据表9、修改数据库表名 10、修改字符集11、写入内容12、增......
  • Qt使用Sqlite数据库-1(入门级)
    1.在Pro文件中加入sql资源QT+=coreguisql    这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。2.创建链接及打开数据库//包含数据库头文件#include<QSqlDatabase>#include<QSqlError>#include<QSqlQuery>//创建链接......
  • 深入解析MySQL数据库报错:`ERROR 1146 (42S02): Table ‘mysql.user‘ doesn‘t exist`
    在安装或升级MySQL数据库时,你可能会遇到ERROR1146(42S02):Table'mysql.user'doesn'texist错误。这个错误表明尝试访问的mysql.user表不存在,这是MySQL用于存储用户账户和权限信息的关键系统表。本文将详细探讨这一错误的原因和解决方案,帮助你顺利完成MySQL的安装或恢复......