ITPub博客

首页 > 数据库 > Oracle > [20260923]避免oracle audit sys operations记录到messages文件.txt

[20260923]避免oracle audit sys operations记录到messages文件.txt

原创 Oracle 作者:lfree 时间:2026-09-24 20:54:35 0 删除 编辑

[20260923]避免oracle audit sys operations记录到messages文件.txt

--//别人的抱怨,就是/var/log/message记录太多oracle sys用户执行的命令,其实在我看来主要对方不熟悉linux操作系统。
--//不过还是仔细看一下是否可以将oracle sys操作记录的相关信息移动到单独的文件。

1.环境:
SYS@book> @ ver2
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

SYS@book> show parameter audit
PARAMETER_NAME                 TYPE     VALUE
------------------------------ -------- ----------------------------------
audit_file_dest                string   /u01/app/oracle/admin/book/adump
audit_sys_operations           boolean  TRUE
audit_syslog_level             string   LOCAL0.INFO
audit_trail                    string   DB
unified_audit_common_systemlog string   LOCAL2.INFO
unified_audit_systemlog        string   LOCAL1.INFO

# grep -i "local[012].info" /etc/rsyslog.conf
local0.info                     /var/log/oracle_audit.log
local1.info                     /var/log/oracle_unified_audit.log
local2.info                     /var/log/oracle_unified_audit_common.log

--//简单说明:要修改配置的机器数据库oracle 11g,缺省audit_sys_operations=false,实际上12c以后audit_sys_operations=true。
--//其他参数audit_syslog_level,unified_audit_common_systemlog,unified_audit_systemlog为空.
--//在这样的情况在sys下执行的任何命令在在参数audit_file_dest指定的目录都有记录,如果你执行rman之类操作,就可以发现会写入
--//许多内容,缺点文集分散,出现问题查询不方便,而且长时间运行建立许多小文件,占用大量磁盘空间,不利于使用logrotate管理.

--//如果修改audit_sys_operations=TRUE,基本不在写入audit_file_dest指定的目录,还是存在少量的情况,也许手工启动数据库的情况.
--//大部分信息写入/var/log/message,oracle_audit.log(注:配置audit_syslog_level=LOCAL0.INFO)

# cd /var/log
# ls -l messages oracle_audit.log
-rw-------. 1 root root 1867462 2026-09-23 15:39:50 messages
-rw-------. 1 root root 6549775 2026-09-23 15:33:13 oracle_audit.log

--//如果简单执行select sysdate from dual ;命令,在messages,oracle_audit.log都能找到相关,等于写了2份记录。
# tail -1 messages | sed -n "s/:/:\n/gp"
Sep 23 15:
44:
58 centos9 oracle_3009_boo[3009]:
 Oracle Audit[3009]:
 LENGTH :
 '273' ACTION :
[25] 'select sysdate from dual ' DATABASE USER:
[1] '/' PRIVILEGE :
[6] 'SYSDBA' CLIENT USER:
[6] 'oracle' CLIENT TERMINAL:
[5] 'pts/7' STATUS:
[1] '0' DBID:
[10] '1677313217' SESSIONID:
[10] '4294967295' USERHOST:
[7] 'centos9' CLIENT ADDRESS:
[0] '' ACTION NUMBER:
[1] '3'

# tail -1 oracle_audit.log | sed -n "s/:/:\n/gp"
Sep 23 15:
44:
58 centos9 oracle_3009_boo[3009]:
 Oracle Audit[3009]:
 LENGTH :
 '273' ACTION :
[25] 'select sysdate from dual ' DATABASE USER:
[1] '/' PRIVILEGE :
[6] 'SYSDBA' CLIENT USER:
[6] 'oracle' CLIENT TERMINAL:
[5] 'pts/7' STATUS:
[1] '0' DBID:
[10] '1677313217' SESSIONID:
[10] '4294967295' USERHOST:
[7] 'centos9' CLIENT ADDRESS:
[0] '' ACTION NUMBER:
[1] '3'
--//如果是生产系统,确实会存在大量oracle操作信息写入messages的情况。

2.如何实现呢?
--//修改/etc/rsyslog.conf,找到下划线那行,增加;local0.none;local1.none;local2.none如下内容。
# grep local0 /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none;local0.none;local1.none;local2.none action(type="omfile" file="/var/log/messages")
local0.info                     /var/log/oracle_audit.log

--//有点不理解,前面已经存在*.info,难道不包括local的相关配置吗,估计它不包括local的相关设置。

# systemctl restart rsyslog.service

--//再以sys登录执行一些命令,发现这些操作将不在记录在/var/log/messages里面。

3.补充logrotate相关配置:

# cat /etc/logrotate.d/oracle
/var/log/oracle_audit.log
/var/log/oracle_unified_audit.log
/var/log/oracle_unified_audit_common.log
{
  size=20M
  rotate 4
  copytruncate
  delaycompress
  notifempty
}

--//自己根据也许需要调整参数比如size等参数,这样可以避免过度占用磁盘空间。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3183889/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969035