使用cron来管理Oracle ASM审计文件目录的增长
如果不对Oracle ASM实例的审计文件目录进行定期维护那么它将会包含大量的审计文件。如果存在大理审计文件可能会造成文件系统耗尽磁盘空间或indoes,或者由于文件系统扩展限制而造成Oracle运行缓慢,还有可能造成Oracle ASM实例在启动时hang住。这里将介绍如何使用Linux的cron工具来管理Oracle ASM审计文件目录的文件数量。

下面将介绍具体的操作,而且这些操作必须对于RAC环境中的每个节点执行。
1.识别Oracle ASM审计目录
这里有三个目录可能存在Oracle ASM的审计文件。所有三个目录都要控制让其不要过度增长。两个缺省目录是基于Oracle ASM实例启动时环境变量的设置。为了判断系统右的缺省目录,以安装Grid Infrastructure软件的用户(grid)登录系统,设置环境变量,因此可以连接到Oracle ASM实例,运行echo命令。

[grid@cs1~]$./usr/local/bin/oraenvORACLE_SID=[+ASM1]?+ASM1TheOraclebaseremainsunchangedwithvalue/u01/app/grid[grid@cs1~]$echo$ORACLE_HOME/rdbms/audit/u01/app/product/12.2.0/crs/rdbms/audit[grid@cs1~]$echo$ORACLE_BASE/admin/$ORACLE_SID/adump/u01/app/grid/admin/+ASM1/adump[grid@cs2~]$./usr/local/bin/oraenvORACLE_SID=[+ASM2]?TheOraclebaseremainsunchangedwithvalue/u01/app/grid[grid@cs2~]$echo$ORACLE_HOME/rdbms/audit/u01/app/product/12.2.0/crs/rdbms/audit[grid@cs2~]$echo$ORACLE_BASE/admin/$ORACLE_SID/adump/u01/app/grid/admin/+ASM2/adump

第三个Oracle ASM审计目录可以使用SQL*Plus登录Oracle ASM实例后进行查询

grid@cs1~]$sqlplus/assysasmSQL*Plus:Release12.2.0.1.0ProductiononWedAug114:13:472018Copyright(c)1982,2016,Oracle.Allrightsreserved.Connectedto:OracleDatabase12cEnterpriseEditionRelease12.2.0.1.0-64bitProductionSQL>selectvaluefromv$parameterwherename='audit_file_dest';VALUE--------------------------------------------------------------------------------/u01/app/product/12.2.0/crs/rdbms/audit

这里第三个目录与第一个目录是相同的

2.给Grid Infrastructure软件用户使用cron的权限
Oracle ASM的审计文件是由Grid Infrastructure软件用户所创建的,它通常为oracle或grid。移动或删除审计文件的命令必须由Grid Infrastructure软件用户来执行。在Oracle Linux中如果/etc/cron.allow 文件存在,只有在文件中出现其登录名称的用户可以使用 crontab 命令。root 用户的登录名必须出现在cron.allow 文件中,如果/etc/cron.deny 文件存在,并且用户的登录名列在其中,那么这些用户将不能执行crontab命令。如果只有/etc/cron.deny 文件存在,任一名称没有出现在这个文件中的用户可以使用crontab 命令。在Oracle Linux 7.1中只有/etc/cron.deny文件,而且访文件没有任何用户存在,就是说所有用户都能执行crontab命令。

[root@cs1etc]#catcron.deny[root@cs1etc]#ls-lrtcrontab-rw-r--r--.1rootroot451Apr292014crontab[root@cs1etc]#chmod777crontab[root@cs1etc]#ls-lrtcrontab-rwxrwxrwx.1rootroot451Apr292014crontab

3.添加命令到crontab来管理审计文件
以Grid Infrastructure软件用户来向crontab文件增加命令

[grid@cs1~]$crontab-e06**sun/usr/bin/find/u01/app/product/12.2.0/crs/rdbms/audit/u01/app/grid/admin/+ASM1/adump/u01/app/product/12.2.0/crs/rdbms/audit-maxdepth1-name'*.aud'-mtime+30-delete

这个crontab条目在每个星期日的上午6点执行find命令,find命令将从三个审计目录中找出保存时间超过30天的所有审计文件将其删除。如果想要保存审计文件更长的时间,那么在执行find命令后,将相关审计文件移到备份目录中,例如:

06**sun/usr/bin/find/u01/app/product/12.2.0/crs/rdbms/audit/u01/app/grid/admin/+ASM1/adump/u01/app/product/12.2.0/crs/rdbms/audit-maxdepth1-name'*.aud'-mtime+30-execdir/bin/mv{}/archived_audit_dir\;

检查crontab

[grid@cs1~]$crontab-l06**sun/usr/bin/find/u01/app/product/12.2.0/crs/rdbms/audit/u01/app/grid/admin/+ASM1/adump/u01/app/product/12.2.0/crs/rdbms/audit-maxdepth1-name'*.aud'-mtime+30-delete