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;

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

openGauss数据库xlog目录满问题处理的更多相关文章

  1. Oracle软件安装目录满的清理方法

    这是Oracle数据库日常运维中很常见的一个场景,安装目录满有时不光会导致无法记录最新数据库的日志信息,导致遇到问题无法查到最新的日志信息,还会引发一些奇怪的问题. 所以日常巡检要保证Oracle的安 ...

  2. 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库

    本文适合需要快速了解OpenGauss基本使用和操作的单机用户,可以短时间内完成安装体验.对于企业级生产使用或者需要部署多台服务器的,不适合本文. 因为业务需要,要在鲲鹏架构里安装单机版的OpenGa ...

  3. 修改mysql数据库存储目录

    使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...

  4. 数据库oracle 目录结构

    Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及选定的组件等:若在主机上第一次且 ...

  5. mysql数据库学习目录

    前面的话 对于前端工程师来说,数据库并不是主要技能点,但是基本的增删改查操作还是需要了解的.小火柴将mysql数据库的学习记录整理如下 目录  前端学数据库之基础操作 前端学数据库之数据类型 前端学数 ...

  6. Linux 下mysql修改数据库存放目录方法和可能遇到的问题

    MySQL版本:5.6.23-enterprise-commercial-advanced ,使用rpm安装linux:Red Hat Enterprise Linux Server release ...

  7. CentOS下mysql数据库data目录迁移和配置优化

    目录迁移 关闭数据库服务 service mysqld stop 复制数据库 mv /var/lib/mysql /data/mysql # 或者使用cp -a复制 # 这两个命令都会带权限到新目录去 ...

  8. Oracle数据库入门——目录结构

    一.Oracle_Home目录 Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及 ...

  9. mysql误操作后通过binlog恢复,同时解决tmp目录满的问题

    注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/ ...

  10. DB2报“数据库日志已满”问题解决

    用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小.主日志文件数.辅助日志文件数改大一点. 也可用命令行db2cmd db2 update d ...

随机推荐

  1. 【Azure App Services】多次操作App Service伸缩实例遇见限制操作记录

    问题描述 多次操作App Services,进行实例数的变化.达到限制后遇见报错: 错误的具体描述为: { "status": "Failed", " ...

  2. 【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?

    问题描述 当 Azure Web App 进行安全扫描后,发现依旧支持很多弱TLS加密套件(Weak TLS Ciphers Suite),那么是否有办法来关闭这些弱的加密套件呢? 在Windows ...

  3. 【Azure API 管理】APIM中证书更新问题

    问题描述 每一年到期更新域名证书,APIM会中断服务,请问如何不中断服务? 问题解答 Azure API 管理允许在受信任的根证书和中间证书存储中的计算机上安装 CA 证书,分配证书的过程可能需要 1 ...

  4. 【Azure 应用服务】App Service与Application Gateway组合使用时发生的域名跳转问题如何解决呢?

    问题描述 为App Service配置了应用服务网关(Application Gateway),并且为Application Gateway配置了自定义域名,通过浏览器访问时,出现域名跳转问题,由自定 ...

  5. 【Azure 应用服务】记一次 App Service 部分请求一直返回 401 "No Authority" 的情况

    问题描述 发现部署在App Service上的 WCF 应用对于所请求的接口出现部分返回 401 - No Authority 消息,10次中有一次这样的概率.比较疑惑的问题是,应用没有更新,所以怀疑 ...

  6. flutter3-winchat桌面端聊天实例|Flutter3+Dart3+Getx仿微信Exe程序

    首发原创flutter3+bitsdojo_window+getx客户端仿微信exe聊天Flutter-WinChat. flutter3-dart3-winchat 基于flutter3+dart3 ...

  7. SpringCloud Sentinel使用

    1. 简介 Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流.流量整形.熔断降级.系统负载保护.热点防护等多个维度来帮助开发者保障微服务的稳定性.替换原先Hystrix ...

  8. uni-app实现公众号登陆实现

    公众号实现登陆流程思路: 1. 创建一个页面用于登陆,页面上需要有输入账号和密码的表单,以及登陆按钮.2. 在登陆按钮的点击事件中,调用后端接口进行账号密码校验.如果校验通过,则将后端返回的用户信息保 ...

  9. 如何获取拼多多推流码并使用OBS进行直播-疯狂URL

    简介 拼多多直播在PC端可以用多多视频|多多直播端进行开播,它的功能类似于常见的抖音直播助手和快手直播伴侣等等客户端.此教程测试时间 2023-7-12,第三方随时可能会升级,无法保证时效,建议不要升 ...

  10. Java处理子父级菜单的方式二

    处理存在子父级关系的数据是写代码的过程中常见的操作,前面讲解过使用递归的方法来做, 可以参考这篇博客 https://www.cnblogs.com/yilangcode/p/16831867.htm ...