【YashanDB知识库】设置归档日志上限,但归档日志没自动清理,导致磁盘空间满
问题现象
客户使用一主一备做性能压测,主备机上设置了归档日志清理上下限:
ARCH_CLEAN_LOWER_THRESHOLD=12G
ARCH_CLEAN_UPPER_THRESHOLD=16G
但实际压测的过程,预期归档日志不应该超过16G,但还是产生了100G+的归档日志,占用了较多存储空间,最终磁盘空间满,客户怀疑归档清理策略没起效。
问题的风险及影响
客户环境为测试环境,影响测试业务的开展。
问题影响的版本
YashanDB版本:23.1.3.101
问题发生原因
归档日志在备份之前不会自动清理,设置归档上下限的同时,还需要设置归档日志清理忽略备份:
ARCH_CLEAN_IGNORE_MODE=BACKUP
解决方法及规避方式
设置ARCH_CLEAN_IGNORE_MODE=BACKUP,使用alter database delete archivelog all触发清理归档:
SQL> alter system set ARCH_CLEAN_IGNORE_MODE=BACKUP;
Succeed.
SQL> alter system set ARCH_CLEAN_LOWER_THRESHOLD=12G;
Succeed.
SQL> alter system set ARCH_CLEAN_UPPER_THRESHOLD=16G;
Succeed.
SQL> alter database delete archivelog all;
Succeed.
问题分析和处理过程
确认归档参数情况:
SQL> show parameter ARCH
NAME VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
ARCHIVE_LOCAL_DEST ?/archive
ARCHIVE_DEST_1
ARCHIVE_DEST_2
ARCHIVE_DEST_3
ARCHIVE_DEST_4
ARCHIVE_DEST_5
ARCHIVE_DEST_6
ARCHIVE_DEST_7
ARCHIVE_DEST_8
ARCHIVE_DEST_9
ARCHIVE_DEST_10
ARCHIVE_DEST_11
ARCHIVE_DEST_12
ARCHIVE_DEST_13
ARCHIVE_DEST_14
ARCHIVE_DEST_15
ARCHIVE_DEST_16
ARCHIVE_DEST_17
ARCHIVE_DEST_18
ARCHIVE_DEST_19
ARCHIVE_DEST_20
ARCHIVE_DEST_21
ARCHIVE_DEST_22
ARCHIVE_DEST_23
ARCHIVE_DEST_24
ARCHIVE_DEST_25
ARCHIVE_DEST_26
ARCHIVE_DEST_27
ARCHIVE_DEST_28
ARCHIVE_DEST_29
ARCHIVE_DEST_30
ARCHIVE_DEST_31
ARCHIVE_DEST_32
ARCH_CLEAN_UPPER_THRESHOLD 16G
ARCH_CLEAN_LOWER_THRESHOLD 12G
ARCH_CLEAN_IGNORE_MODE NONE
ENABLE_ARCH_DATA_IGNORE_BACKUP FALSE
37 rows fetched.
SQL>
发现设置归档上下限但没有设置归档日志清理忽略备份。
YashanDB归档日志除了发送到备机之外,还可以使用backup命令做备份,详细参考YashanDB Doc
系统从安全的角度考虑,需要把日志备份之后,才允许删除,除非用户指定该场景下可以忽略备份。详细参考YashanDB Doc
客户的场景是需要主备同步,但是不需要备份拷贝,因此修改参数为ARCH_CLEAN_IGNORE_MODE=BACKUP
修改参数并验证。
修改参数为ARCH_CLEAN_IGNORE_MODE=BACKUP可以使用alter database delete archivelog all; 检查日志是否清理掉,从而验证日志清理策略符合预期:
SQL> alter system set ARCH_CLEAN_IGNORE_MODE=BACKUP;
Succeed.
SQL> alter database delete archivelog all;
Succeed.
那么问题来了:是不是客户设置ARCH_CLEAN_IGNORE_MODE=BACKUP之后,日志就一定不会超过ARCH_CLEAN_UPPER_THRESHOLD呢?
答案是还是有可能超过。上面配置ARCH_CLEAN_IGNORE_MODE=BACKUP是忽略备份,所以还需要同步到备机之后,归档日志才能删除。客户的场景是一主一备做压测,备机同步日志较多,实际会有短暂备机没有同步完,导致归档日志超过上限一些的情况。
经验总结
归档日志在备份之前不会自动清理,设置归档上下限的同时,还需要设置归档日志清理忽略备份:ARCH_CLEAN_IGNORE_MODE=BACKUP
【YashanDB知识库】设置归档日志上限,但归档日志没自动清理,导致磁盘空间满的更多相关文章
- DG备库磁盘空间满导致无法创建归档
上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...
- Docker启动出现"No space left on device" 或者 docker日志太多导致磁盘占满问题
机房有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致磁盘被占满了.Docker容器在启动/重启的时候会往/var/lib/docker中 ...
- ORACLE归档模式和非归档模式的利与弊
转: 在Oracle数据库中,主要有两种日志操作模式,分别为非归档模式与归档模式.默认情况下,数据库采用的是非归档模式.作为一个合格的数据库管理员,应当深入了解这两种日志操作模式的特点,并且在数据库建 ...
- Tomcat8.5.24日志自动清理(maxDays)功能探究
前言 测试人员反馈tomcat目录下的日志占用空间很大,需要自动清理.接到这个反馈时,想象着应该是一个很简单的功能,tomcat应该已经实现了日志的自动清理功能.于是乎,我先到网上查询了如何自动清除t ...
- 查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。
作为一名合格的 Linux 运维工程师,一定要有一套清晰.明确的解决故障思路,当问题出现时,才能迅速定位.解决问题,这里给出一个处理问题的一般思路: 重视报错提示信息:每个错误的出现,都是给出错误提示 ...
- Oracle归档日志与非归档日志的切换及路径设置
--==================== -- Oracle 归档日志 --==================== Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的 ...
- oracle设置自动清理归档日志脚本
设置定时自动清理归档日志脚本 root用户下 [root@localhost ~]# mkdir /nstg [root@localhost ~]# cd /nstg/ [root@localhost ...
- 归档—监控ORACLE数据库告警日志
ORACLE的告警日志里面包含许多有用的信息,尤其是一些ORACLE的ORA错误信息,所以有必要及时归档.监控数据库告警日志的ORA错误,及时提醒数据库管理员DBA处理这些错误信息,那么我们首先来看看 ...
- ORACLE归档日志比联机重做日志小很多的情况总结
ORACLE归档日志比联机重做日志小很多的情况 前几天一网友在群里反馈他遇到归档日志比联机重做日志(redo log)小很多的情况,个人第一次遇到这种情况,非常感兴趣,于是在一番交流沟通后,终于弄 ...
- RMAN正确地删除Archivelog以及设置有备库的归档删除策略
原文链接:http://blog.sina.com.cn/s/blog_64e166580100xks5.html 如何正确地删除Archivelog: Archivelog并不能直接得从OS层直接物 ...
随机推荐
- 韦东山freeRTOS系列教程之【第七章】互斥量(mutex)
目录 系列教程总目录 概述 7.1 互斥量的使用场合 7.2 互斥量函数 7.2.1 创建 7.2.2 其他函数 7.3 示例15: 互斥量基本使用 7.4 示例16: 谁上锁就由谁解锁? 7.5 示 ...
- Kubernetes(K8S)基本概念
前言 有公司用 java 或 go , vue 或 react , linux 或 win ,但所有的大厂都在用k8s,没有或,而且是全世界.一个熟悉k8s的开发,薪资可以轻松上25的 base . ...
- Linux-Cgroup V2 初体验
本文主要记录 Linux Cgroup V2 版本基本使用操作,包括 cpu.memory 子系统演示. 1. 开启 Cgroup V2 版本检查 通过下面这条命令来查看当前系统使用的 Cgroups ...
- 2024 年 Visual Studio 实用插件集合
前言 在软件开发领域,选择正确的工具可以极大地提升开发效率和质量. Visual Studio作为微软推出的强大集成开发环境(IDE),通过安装合适的插件,可以进一步增强其功能,满足开发者多样化的需求 ...
- 【算法】用c#实现自定义字符串编码及围栏解码方法
编写一个函数/方法,它接受2个参数.一个字符串和轨道数,并返回ENCODED字符串. 编写第二个函数/方法,它接受2个参数.一个编码字符串和轨道数,并返回DECODED字符串. 然后使用围栏密码对其进 ...
- [rCore学习笔记 05]第0章作业题
作业1 略. 作业2 C语言程序 gcc编译 gcc -o main main.c 编译报错 成功产生异常 main.c: In function 'main': main.c:5:26: warni ...
- Known框架实战演练——进销存业务单据
本文介绍如何实现进销存管理系统的业务单据模块,业务单据模块包括采购进货单.采购退货单.销售出货单.销售退货单4个菜单页面.由于进销单据字段大同小异,因此设计共用一个页面组件类. 项目代码:JxcLit ...
- 2023/4/13 SCRUM个人博客
1.我昨天的任务 ------------ 2.遇到了什么困难 ------------ 3.我今天的任务 初步了解项目的整体框架,并对接下来的人脸识别库以及组件有基本了解和安装
- 5、SpringMVC之域对象共享数据
5.1.域对象简介 请求域(request):一次请求范围内有效 会话域(session):一次会话范围内有效 应用域(application):整个应用范围内有效 5.2.环境搭建 5.2.1.右击 ...
- 【Vue】单元格合并,与动态校验
效果要求 先看需求效果: 多个数据授权项,配置的时候,业务名称大多数都是一样的,需要合并单元格处理 在elementUI组件文档中有说明[合并列行]: https://element.eleme.io ...