openGauss数据库xlog目录满问题处理
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目录满问题处理的更多相关文章
- Oracle软件安装目录满的清理方法
这是Oracle数据库日常运维中很常见的一个场景,安装目录满有时不光会导致无法记录最新数据库的日志信息,导致遇到问题无法查到最新的日志信息,还会引发一些奇怪的问题. 所以日常巡检要保证Oracle的安 ...
- 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库
本文适合需要快速了解OpenGauss基本使用和操作的单机用户,可以短时间内完成安装体验.对于企业级生产使用或者需要部署多台服务器的,不适合本文. 因为业务需要,要在鲲鹏架构里安装单机版的OpenGa ...
- 修改mysql数据库存储目录
使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...
- 数据库oracle 目录结构
Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及选定的组件等:若在主机上第一次且 ...
- mysql数据库学习目录
前面的话 对于前端工程师来说,数据库并不是主要技能点,但是基本的增删改查操作还是需要了解的.小火柴将mysql数据库的学习记录整理如下 目录 前端学数据库之基础操作 前端学数据库之数据类型 前端学数 ...
- Linux 下mysql修改数据库存放目录方法和可能遇到的问题
MySQL版本:5.6.23-enterprise-commercial-advanced ,使用rpm安装linux:Red Hat Enterprise Linux Server release ...
- CentOS下mysql数据库data目录迁移和配置优化
目录迁移 关闭数据库服务 service mysqld stop 复制数据库 mv /var/lib/mysql /data/mysql # 或者使用cp -a复制 # 这两个命令都会带权限到新目录去 ...
- Oracle数据库入门——目录结构
一.Oracle_Home目录 Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及 ...
- mysql误操作后通过binlog恢复,同时解决tmp目录满的问题
注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/ ...
- DB2报“数据库日志已满”问题解决
用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小.主日志文件数.辅助日志文件数改大一点. 也可用命令行db2cmd db2 update d ...
随机推荐
- 【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
问题描述 在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exis ...
- Java //使用scanner从键盘输入多种类型
1 //1.引入包名 import java.util.Scanner 2 //2.新建Scanner对象 3 Scanner scan = new Scanner(system.in); 4 //3 ...
- OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点
前言 知道图像畸变矫映射的原理之后,那么如何得到相机的内参是矫正的第一步,内参决定了内参矩阵(中心点.焦距等),用内参矩阵才能计算出投影矩阵,从而将原本畸变的图像矫正为平面投影图像. 本篇描述了 ...
- 【容斥、插值】P3270 [JLOI2016]成绩比较
[容斥.插值]P3270 [JLOI2016]成绩比较 题目简述 有 \(n+1\) 个人,进行 \(m\) 场考试,第 \(i\) 场考试的可能得分是 \([0,U_i]\) 之间的整数. 假设你是 ...
- wsl使用记录
# wsl使用记录 安装 直接参考微软官方文档使用 WSL 在 Windows 上安装 Linux ubuntu可用发行版安装 https://ubuntu.com/wsl 访问 方式一:在资源管理器 ...
- Java面试必考题之线程的生命周期,结合源码,透彻讲解!
写在开头 在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用.创建方式.重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了. 第一个需要学的就是线程的生命周期,也可以将之理 ...
- MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法
描述 使用到是阿里云服务器,系统为cent Os,给某个账户授权之后,root的账户就登录不进去了,原本root账户设置好了远程连接的权限了,网上搜索了一大堆,终于自己摸索得到了几个方法 产生原因 r ...
- [.NET项目实战] Elsa开源工作流组件应用(二):内核解读
@ 目录 定义 变量 内存寄存器类 寄存器中的存储区块类 变量到存储的映射类 上下文对象 活动上下文(ActivityExecutionContext) 工作流执行上下文(WorkflowExecut ...
- 【Leetcode】53. 最大子数组和
题目(链接) 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 子数组是数组中的一个连续部分. 示例 1: 输入:nums = [-2,1,-3, ...
- 阿里二面:谈谈ThreadLocal的内存泄漏问题?问麻了。。。。
引言 ThreadLocal在Java多线程编程中扮演着重要的角色,它提供了一种线程局部存储机制,允许每个线程拥有独立的变量副本,从而有效地避免了线程间的数据共享冲突.ThreadLocal的主要用途 ...