目录

RMAN备份bug-审计日志暴涨select-action-from-gvsession

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 

https://i-blog.csdnimg.cn/img_convert/169bc36cfdf1e567d82c71275fbbd336.png

这个库已经迁移到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,为了克服当前的问题,有两个选项:

  1. 从传统审计转移到统一审计,包括弃用AUDIT_SYS_OPERATIONS参数(推荐)。
  2. 通过设置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)