一个脚本引发的血案-oracle 数据库生成大量的aud文件,磁盘inode被消耗光

news2024/11/26 6:24:13
作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

1、adump目录下大量aud文件

事情的起因是一个客户的监控告警,/u01目录的inode使用率100%,经过排查发现是oracle数据库的audit_file_dest目录(/u01/app/oracle/admin/ora11g/adump)有大量的.aud文件,这些文件单个文件小,但是数量众多,导致占用了大量inode空间。
为了尽快恢复,先把adump目录下.aud文件先删除掉

cd /u01/app/oracle/admin/ora11g/adump
rm -rf *

屏幕显示:-bash: /bin/rm: Argument list too long

说明文件太多,无法一次性删除,使用下面的命令分批次删除:
ls | xargs -n 10 rm -fr ls

[oracle@ora11g:/u01/app/oracle/admin/ora11g/adump]$ ls | xargs -n 10 rm -fr ls
[oracle@ora11g:/u01/app/oracle/admin/ora11g/adump]$ ls
ora11g_ora_30081_20240614152501554813143795.aud  ora11g_ora_30083_20240614152501582383143795.aud  ora11g_ora_30088_20240614152501703067143795.aud  ora11g_ora_30092_20240614152501852521143795.aud
ora11g_ora_30082_20240614152501568151143795.aud  ora11g_ora_30087_20240614152501690481143795.aud  ora11g_ora_30089_20240614152501716605143795.aud


2、查找生成大量aud文件的原因

前面先删除所有aud文件,释放了空间,只是一个临时解决方案,要找到根源,防止后续还会出现这个问题。

(1)检查了数据库,并未开通审计日志

SQL> show parameter audit   

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest 		     string	 /u01/app/oracle/admin/ora11g/a
						 dump
audit_sys_operations		     boolean	 FALSE
audit_syslog_level		     string
audit_trail			     string	 NONE

可以看到audit_trail为none,audit_sys_operations也是FALSE,数据库并未开通审计外部记录,为什么adump目录会生成那么多的dump文件?

(2)查看aud文件内容和生成时间
–查看aud都记录什么信息
$ strings ora11g_ora_31758_20240614153102295854143795.aud
Audit file /u01/app/oracle/admin/ora11g/adump/ora11g_ora_31758_20240614153102295854143795.aud
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db
System name: Linux
Node name: ora11g
Release: 5.4.17-2102.201.3.el7uek.x86_64
Version: #2 SMP Fri Apr 23 09:05:55 PDT 2021
Machine: x86_64
VM name: VMWare Version: 6
Instance name: ora11g
Redo thread mounted by this instance: 1
Oracle process number: 31
Unix process pid: 31758, image: oracle@ora11g (TNS V1-V3)
Fri Jun 14 15:31:02 2024 +08:00
LENGTH : ‘153’
ACTION :[7] ‘CONNECT’
DATABASE USER:[1] ‘/’
PRIVILEGE :[6] ‘SYSDBA’
CLIENT USER:[6] ‘oracle’
CLIENT TERMINAL:[0] ‘’
STATUS:[1] ‘0’
DBID:[9] ‘260591189’
You have new mail in /var/spool/mail/oracle

[oracle@ora11g:/u01/app/oracle/admin/ora11g/adump]$ ls -lrt

image.png

可以看到这些文件记录是sysdba登录相关记录,而且生成时间都是有规律的,每分钟都会生成,怀疑是不是有什么定时任务执行时候产生的呢?

(3)查看系统的crontab

[oracle@ora11g:/u01/app/oracle/admin/ora11g/adump]$ crontab -l
* * */1 * * /home/oracle/scripts/del_arch.sh
00 04 * * * /home/oracle/scripts/dbbackup_lv0.sh

发现crontab有一个定时删除归档的脚本,该脚本内容如下:

[oracle@ora11g:/u01/app/oracle/admin/ora11g/adump]$ cat /home/oracle/scripts/del_arch.sh
#!/bin/bash
source ~/.bash_profile
rman target / nocatalog msglog /home/oracle/scripts/del_arch.log <<EOF
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-7';
EOF

脚本内容相对简单,就是定时删除七天前的归档日志,询问客户,脚本是他们自己部署的,之前遇到过归档爆满的情况。只是这个脚本执行太频繁了,按照这个设置,就是每分钟执行一次。先把这个脚本先注释掉,观察aud文件是否还生成,发现注释后,aud生成后没那么频繁了。

那这个脚本为什么会导致生成aud文件呢?那是因为每次sysdba或者sysoper权限登录都会写入一个audit trail文件或者在现有的trail文件后面添加登录信息,而这个并不受audit_trail参数限制,audit_trail是显示是否启用审计和审计内容存储的具体位置。另外audit_sys_operations该参数默认为false,但是sysdba和sysoper登录还是会记录audit到相应的audit trail文件的,只是不记录之后sysdba操作的信息,而如果设置true,还会记录之后sysdba或者sysoper操作记录到audit trail中。

有关audit_sys_operations参数解释:

AUDIT_SYS_OPERATIONS enables or disables the auditing of top-level operations, which are SQL statements directly issued by users when connecting with SYSDBA or SYSOPER privileges. (SQL statements run from within PL/SQL procedures or functions are not considered top-level.) The audit records are written to the operating system's audit trail. The audit records will be written in XML format if the AUDIT_TRAIL initialization parameter is set to xml or xml, extended.
On UNIX platforms, if the AUDIT_SYSLOG_LEVEL parameter has also been set, then it overrides the AUDIT_TRAIL parameter and SYS audit records are written to the system audit log using the SYSLOG utility.

所以说可以关闭审计,但是sysdba或者sysoper登录记录audit trail却无法禁掉。

3、后续处理

既然已经定位是脚本的原因,当然建议客户没必要执行那么频繁,改成一天执行一次足够了。另外它只能减少aud产生,并不能完全禁止产生,所以还是要用脚本定时去清理adump目录下这些aud文件比较稳妥。

清理的脚本如下:

$ cat del_aud.sh 
#!/bin/bash
#delete aud
for i in $(ps -ef|grep ora_smon|grep -v grep|awk '{print $NF}'|cut -c 10-)
do
  find /u01/app/oracle/admin/$i/adump -name "*.aud" -mtime +7  -exec rm -rf {} \;
done

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1826195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何解决mfc100u.dll丢失问题,关于mfc100u.dll丢失的多种解决方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“计算显示缺失mfc100u.dll”。这个问题可能会影响到我们的正常使用&#xff0c;因此了解它的原因、表现以及解决方法是非常重要的。小编将详细介绍计算显示缺失mfc100u.dll的问题&#xff0…

学习笔记——网络管理与运维——SNMP(SNMP架构)

三、SNMP架构 1、SNMP结构概述 SNMP被设计为工作在TCP/IP协议族上&#xff0c;基于TCP/IP协议工作&#xff0c;对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面&#xff0c;使得管理员可以使用统一的操作进行管理&#xff0c;而不必理会设…

长亭雷池部署

安雷池推荐环境 我这个网站的1804也就是18.04 Index of /ubuntu-releases/ (163.com) 然后照着ppt做就行自带ubunutu 我是默认安装不是简易安装 之前在自己的虚拟机docker上试过安装github上的雷池 现在重新安装了ubuntu 在我的ubuntu上安装一个雷池 这是长亭的学习计划 …

【七合一】字典词典成语古诗词造句英语单词文库

帝国CMS7.5 UTF-8 系统开源&#xff0c;不限域名 采用静态伪静态&#xff08;会缓存静态文件&#xff09; 一款7合一的字词句诗典籍模板&#xff0c;包含字典、词典、成语、名句、诗词、古籍、英语、作文、等等。是一款养站神器。 作文范文,作文范文可生成word文档下载能自由…

贝壳APP渗透测试WP

前期配置 环境说明 使用PIXEL 4手机&#xff0c;为Android 12系统 APP名为贝壳找房&#xff0c;包名com.lianjia.beike&#xff0c;版本号3.01.10&#xff0c;截至2024/05/07为最新版&#xff0c;小米应用市场下载 绕过反Frida机制 可以参考往期推送&#xff0c;《绕过最新…

【Linux】进程_4

文章目录 五、进程4. 进程状态5. 进程优先级6. 进程的调度和转换 未完待续 五、进程 4. 进程状态 当进程属于挂起状态时&#xff0c;进程的可执行程序代码和数据均会被从内存中换入到磁盘中&#xff0c;此时进程的PCB并没有消失&#xff0c;只要操作系统还需要管理这个进程&a…

为什么说Python 是胶水语言?

​ "Python 是胶水语言"这一说法是指它很擅长将不同的程序或代码库连接在一起&#xff0c;能够让来自不同编程语言或框架的组件无缝协作。Python 具有丰富的库和简单的语法&#xff0c;使得它可以轻松调用其他语言编写的程序或使用不同技术栈的模块。 ​ 以下是几个…

PCtoLCD2002 图片取模教程

记录一下取模软件&#xff0c;自己也是经常忘记怎么用&#xff0c;比较烦 按照下面这张图来就可以了&#xff0c;STM32的OLED屏幕可以直接用来显示图片。

可视化图表走起来(1):桑基图,一目了然数据流向。

从事可视化设计&#xff0c;什么时候选用什么样的图表非常重要&#xff0c;今天来介绍一下桑基图的定义、场景、数据项等等&#xff0c;贝格前端工场愿意与各位老铁一道成长。 一、桑基图的定义 桑基图&#xff08;Sankey diagram&#xff09;是一种特殊类型的可视化图表&…

数据结构-3、栈、队列和数组

3.1、栈 3.1.1、栈的基本概念&#xff1a; 1、栈的定义&#xff1a; ​ 栈是只允许在一端进行插入或删除操作的线性表。首先&#xff0c;栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作&#xff0c;如下图&#xff1a; ​ 栈顶&#xff08;Top&…

Zombie Animations Set

僵尸动画合集,包括成对攻击/抓取、各种移动方式、爬行、击中反应、死亡动画等。 生产说明 动画总数:99(包括22个位置变化) 配对动画:36 攻击次数:6次 爬网:9 命中反应:6 空转:14 行程2 跑步次数:9次 短跑:2 匝数:3 步行次数:12次 免责声明 任何游戏玩法蓝图都不包…

【电路笔记】-共集极放大器

共集极放大器 文章目录 共集极放大器1、概述2、等效电路3、电压增益4、偏置方法5、输入阻抗6、输出阻抗7、电流增益8、示例:共集电极放大器的电压、电流和功率增益9、达林顿对10、总结1、概述 本文介绍另一种用于放大信号的双极晶体管架构,通常称为共集电极放大器 (CCA)。 C…

深入解析Prometheus架构:打造高效监控系统的终极指南

1. Prometheus Server&#xff08;Prometheus服务器&#xff09; 技术原理&#xff1a; Retrieval&#xff08;检索模块&#xff09;&#xff1a;定期从配置的Targets&#xff08;目标&#xff09;拉取监控数据。使用HTTP协议&#xff0c;通过拉取的方式收集数据。TSDB&#…

如何通过抖音自动评论精准获客实现业务增长?这些方法值得一试!

在当今竞争激烈的商业环境中&#xff0c;企业若想脱颖而出&#xff0c;就必须掌握精准获客的艺术。精准获客&#xff0c;即通过精确的市场定位和营销策略&#xff0c;吸引并保留最有可能成为客户的目标群体。它不仅能提高转化率&#xff0c;还能有效降低营销成本&#xff0c;是…

【人工智能】开发AI可能获刑?加州1047草案详解

引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其应用领域不断扩展&#xff0c;但同时也引发了诸多争议和监管问题。近期&#xff0c;加州参议院以32比1的压倒性投票通过了1047号草案&#xff0c;又称《前沿人工智能模型安全可靠创新法案》。这一草案…

Java---认识异常

欢迎大家来观看本博课------Java------认识异常。1.异常的概念和体系结构 1.异常的概念和体系结构 1.1 异常的概念 在Java中&#xff0c;在程序执行过程中发生的不正常行为称为异常。如在之前我们经常遇到的算数异常&#xff08;ArithmeticException&#xff09;、数组越界…

金融行业的等保测评要求

在金融行业中&#xff0c;网络安全问题非常普遍&#xff0c;如恶意攻击、病毒感染、数据泄露等。这些问题可能会导致金融机构的信息系统瘫痪&#xff0c;造成巨大的经济损失&#xff0c;甚至影响国家金融稳定。因此&#xff0c;金融机构应该高度重视网络安全问题&#xff0c;采…

使用libpurple函数库接入服务器

代码; #define CUSTOM_USER_DIRECTORY "/dev/null" // 定义用户目录 #define CUSTOM_PLUGIN_PATH "" // 定义插件目录 #define PLUGIN_SAVE_PREF "/purple/nullclient/plugins/saved" // 定义插件头目录 #define UI_ID "nullc…

DELL服务器插入新磁盘、创建虚拟磁盘、挂载磁盘步骤

文章目录 一、磁盘清理&#xff08;可选&#xff0c;针对新硬盘是Foreign状态&#xff09;1、进入VD Mgmt2、清理新硬盘配置 二、创建虚拟磁盘1、进入Device Settings2、创建虚拟磁盘 三、挂载磁盘到系统1、分区磁盘&#xff08;注意实际磁盘的名称&#xff09;2、格式化分区3、…

跨境电商中的IP隔离是什么?怎么做?

一、IP地址隔离的概念和原理 当我们谈论 IP 地址隔离时&#xff0c;我们实际上是在讨论一种网络安全策略&#xff0c;旨在通过技术手段将网络划分为不同的区域或子网&#xff0c;每个区域或子网都有自己独特的 IP 地址范围。这种划分使网络管理员可以更精细地控制哪些设备或用…