RMAN备份bug-审计日志暴涨(select action from gv$session)
问题概述
/oracle 文件系统使用率过大,经过检查是审计日志过大,/oracle 目录 197G 审计日志占用70G,每6个小时产生大量审计日志,日志内容全是'select action from gv$session' ,猜测可能跟备份有关,
$>df -h /oracle
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/fusioncube-oracle 197G 164G 24G 88% /oracle
[09:21:34]$>/oracle/app/oracle/product/19c/db_1/rdbms/audit> du -sm
[09:21:34]72892
这个库已经迁移到GoldenDB,没有业务了,监听也已经关闭,初步判断是系统本身产生的审计日志。奇怪的是日志时间内并无活动会话和定时任务,并且审计内容全是 ACTION :[72] 'select action from gv$session where sid=:1 and serial#=:2 and inst_id=:3' 日志里看不出来,好像备份没有关,猜测大概率是备份导致的
Thu Feb 13 07:39:11 2025 +08:00
LENGTH : '320'
ACTION :[72] 'select action from gv$session where sid=:1 and serial#=:2 and inst_id=:3'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/0'
STATUS:[1] '0'
DBID:[10] '3890171464'
SESSIONID:[10] '4294967295'
USERHOST:[6] 'XXX'
CLIENT ADDRESS:[0] ''
ACTION NUMBER:[1] '3'
Thu Feb 13 07:39:11 2025 +08:00
LENGTH : '320'
ACTION :[72] 'select action from gv$session where sid=:1 and serial#=:2 and inst_id=:3'
DATABASE USER:[1] '/'^C
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/0'
STATUS:[1] '0'
DBID:[10] '3890171464'
SESSIONID:[10] '4294967295'
USERHOST:[6] 'XXX'
CLIENT ADDRESS:[0] ''
ACTION NUMBER:[1] '3'
。。。。。。。。
查看ASM日志,在审计日志增大的时间点正好与ASM日志时间点对应。
重启数据库还需要和沟通先清理日志,保留1天时间的日志:
find /oracle/app/oracle/product/19c/db_1/rdbms/audit -name "*.aud" -mtime +1 -exec ls -lst {} \;
find /oracle/app/oracle/product/19c/db_1/rdbms/audit -name "*.aud" -mtime +1 -exec rm -rf {} \;
解决方法
第一,因为这个库已经迁移到了 goldenDB,检查一下在2-21号把备份停了之后已经没有之前的问题了
col INPUT_BYTES_PER_SEC_DISPLAY format a15;
col OUTPUT_BYTES_PER_SEC_DISPLAY format a15;
col TIME_TAKEN_DISPLAY format a17;
col status format a10;
COL hours FORMAT 999.999
COL out_size FORMAT a10
select session_key,AUTOBACKUP_DONE,OUTPUT_DEVICE_TYPE,INPUT_TYPE,status,ELAPSED_SECONDS/3600 hours,
TO_CHAR(START_TIME,'yyyy-mm-dd hh24:mi') start_time,TO_CHAR(END_TIME,'yyyy-mm-dd hh24:mi') end_time, OUTPUT_BYTES_DISPLAY out_size,
OUTPUT_BYTES_PER_SEC_DISPLAY,INPUT_BYTES_PER_SEC_DISPLAY
from v$RMAN_BACKUP_JOB_DETAILS order by start_time ;
第二,参考MOS是RMAN导致的bug,为了克服当前的问题,有两个选项:
- 从传统审计转移到统一审计,包括弃用AUDIT_SYS_OPERATIONS参数(推荐)。
- 通过设置AUDIT_SYS_OPERATIONS = FALSE来禁用系统审计(并重启数据库以使其生效)。
audit_sys_operations 默认为false,当设置为true时,所有sys用户(包括以sysdba, sysoper身份登录的用户)的操作都会被记录
参考文档
参考MOS:Excessive Audit File Generation Due To RMAN With 'select action from gv$session' Records (Doc ID 2734995.1)