故障排除
如果 syslog 审计记录记录在 /var/log/messages 中,则确保 /etc/syslog.conf 已正确配置为将“local0.none”添加到 /var/log/messages 条目。
如果不定期维护,ASM 实例的审计文件目标目录可能会增长到包含大量文件。
拥有大量文件可能会导致文件系统耗尽可用磁盘空间或者 inode,或者可能导致 Oracle 由于文件系统目录缩放限制而运行非常缓慢,这可能会出现 ASM 实例挂起的现象启动。
这篇博文解释了如何使用 Linux syslog 工具来管理 ASM 审计记录,以便操作系统 syslog 工具记录 ASM 审计记录,而不是 audit_dump_dest 目录中的单个文件。
必须为每个数据库服务器上的 ASM 实例执行这些步骤。
本文档仅说明如何管理 ASM 实例的审计记录。
配置
必须为每个数据库服务器上的 ASM 实例执行这些步骤。
步骤 1 - 设置 ASM 初始化参数 AUDIT_SYSLOG_LEVEL 和 AUDIT_SYS_OPERATIONS
在 ASM 初始化文件中,将参数 AUDIT_SYSLOG_LEVEL 和 AUDIT_SYS_OPERATIONS 设置为以下值:
AUDIT_SYSLOG_LEVEL='local0.info' AUDIT_SYS_OPERATIONS=TRUE
步骤 2 - 为 ASM 审计配置 /etc/syslog.conf
通过进行以下两项更改,为 ASM 审计配置 syslog 配置文件 /etc/syslog.conf 或者 /etc/rsyslog.conf:
- 在 /etc/syslog.conf 或者 /etc/rsyslog.conf 中添加以下行
local0.info /var/log/asmaudit.log
- 在/etc/syslog.conf 中为/var/log/messages 配置日志记录的行中,添加local0.none。
例如:
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
步骤 3 - 配置 logrotate 以管理 syslog 日志文件
Linux logrotate 实用程序用于管理用于 ASM 审计的 syslog 日志文件的大小和数量。
使用以下内容创建文件 /etc/logrotate.d/asmaudit:
# vi /etc/logrotate.d/asmaudit /var/log/asmaudit.log { weekly rotate 4 compress copytruncate delaycompress notifempty }
步骤 4 - 重启 ASM 实例和 syslog 服务
必须重新启动 ASM 实例和 syslog 服务才能使更改生效。
ASM 实例通过使用“crsctl stop”和“crsctl start”命令停止和启动网格基础设施来重新启动。
此操作需要关闭数据库实例。
# GRID_HOME/grid/bin/crsctl stop cluster # GRID_HOME/grid/bin/crsctl start cluster
要重新启动 syslog 服务,请运行“service syslog restart”命令:
# service syslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ]
步骤 5 - 验证 ASM 审计记录是否在 /var/log/asmaudit.log 中创建
验证到 ASM 的特权连接(例如 SYSDBA 或者 SYSASM 连接)是否会在 /var/log/asmaudit.log 中创建类似于以下内容的条目:
Oracle Audit[8738]: LENGTH : '142' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[5] 'oracle' CLIENT TERMINAL:[0] '' STATUS:[1] '0' DBID:[0]