oracle-audit-清除audit功能生成的os文件

简介:

清除oracle数据库audit功能生成的os文件

--注:dataguard库无法执行

BEGIN
  dbms_audit_mgmt.clean_audit_trail(audit_trail_type        => dbms_audit_mgmt.audit_trail_os,
                                    use_last_arch_timestamp => FALSE);
END;
/


/*
os command

cd $ORACLE_HOME/rdbms/audit
find ./ -name "*.aud" |xargs -i rm -f {}

*/

--------------------shell脚本 ----------

#########################################################################################################################
#NOTE:
#use for AIX、LINUX
#This script is used to purge oracle audit files using procedure dbms_audit_mgmt.clean_audit_trail on primary site
#      or purge audit file by OS command on standbyDB site
#   Version: 
#       2.0 modified by tiger , added purge audit file by OS commadn on standbyDB site.
#
#Usage:
#  1.execute this script as oracle user
# linux crontab example:
# 00 00 01 * * /bin/sh  /home/oracle/scripts/purge_auditfile_using_sql.sh >/dev/null 2>&1 
#aix crontab example:
#00 00 1 * *  /u01/app/oracle/scripts/purge_auditfile_using_sql.sh > /dev/null 2>&1
###########################################################################################################################

#!/bin/sh


current_dir=$(cd `dirname $0`; pwd)
logfile=${current_dir}/purge_auditfile_$(date +"%Y%m%d_%H%M%S").log
find ${current_dir} -name "purge_auditfile_*.log" |xargs -i rm -f {} | tee -a ${logfile}

EXECUSER=`whoami`
platform=`uname | tr A-Z a-z`

echo ""| tee -a ${logfile}
echo `date "+%Y-%m-%d %H:%M:%S"`" begin"| tee -a ${logfile}
echo "---------------------------"|tee -a ${logfile}
echo ""| tee -a ${logfile}
echo "current_user: ${EXECUSER}"|tee -a ${logfile}
echo "os platform: ${platform}"|tee -a ${logfile}
echo "os current dir: ${current_dir}"|tee -a ${logfile}
echo "logfile : ${logfile}"|tee -a ${logfile}
echo ""| tee -a ${logfile}
echo "----------------------------"|tee -a ${logfile}
case $platform in
  "linux")
. /home/$EXECUSER/.bash_profile

           ;;
  "aix")
. /home/$EXECUSER/.profile
           ;;
esac

#get  db role 
oracle_database_role=`sqlplus -S / as sysdba <<EOF
set heading off feedback off pagesize 0 verify off echo off trims off
select database_role from v\\$database;
exit;
EOF`

#get db audit_file_dir
oracle_audit_file_dest=`sqlplus -S / as sysdba <<EOF
set heading off feedback off pagesize 0 verify off echo off trims off
SELECT  display_value FROM v\\$parameter  WHERE name='audit_file_dest';
exit;
EOF`

#if primary,purge by sql command
if [ "$oracle_database_role" = "PRIMARY" ] ; then
echo "oracle_database_role : ${oracle_database_role},so purge oracle audit files using procedure dbms_audit_mgmt.clean_audit_trail."|tee -a ${logfile}
sqlplus / as sysdba  <<EOF
BEGIN
  dbms_audit_mgmt.clean_audit_trail(audit_trail_type        => dbms_audit_mgmt.audit_trail_os,
                                    use_last_arch_timestamp => FALSE);
END;
/
exit;
EOF


else
# if standby,purge by os command.
echo ""| tee -a ${logfile}
echo "------------------------------" |tee -a ${logfile}
echo "oracle_database_role : ${oracle_database_role},so purge audit file by OS command."|tee -a ${logfile}
echo ""| tee -a ${logfile}
echo "------------------------------" |tee -a ${logfile}
echo "oracle_audit_file_dest : ${oracle_audit_file_dest}"|tee -a ${logfile}
echo ""| tee -a ${logfile}
find ${oracle_audit_file_dest}  -type f -name "*.aud" |xargs -i rm {}

fi

if [ $? -gt 0 ]; then
  echo "`date "+%Y-%m-%d %H:%M:%S"`  failed.exit!" | tee -a ${logfile}
  exit 1
fi

echo ""| tee -a ${logfile}
echo `date "+%Y-%m-%d %H:%M:%S"`" finished!"| tee -a ${logfile}
echo "-------------------------------" | tee -a ${logfile}


目录
相关文章
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
2月前
|
SQL Oracle 关系型数据库
Oracle 从 DMP 文件中恢复指定表的步骤
Oracle 从 DMP 文件中恢复指定表的步骤
77 7
|
2月前
|
Python
文件元数据获取方法对比:`os.path` 与 `os.stat`
本文对比了Python中两种获取文件元数据的方法:`os.path`和`os.stat`。通过示例代码展示了如何获取文件大小和修改时间,并从性能、功能性和代码可读性三方面进行了详细对比。最终给出了根据具体需求选择合适方法的最佳实践建议。
33 2
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
4月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
3月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
3月前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
52 0
|
7月前
|
缓存 Linux Windows
初识Linux操作系统(根目录下的重要文件)(命令提示符的含义)
Linux系统基于&quot;一切皆文件&quot;的理念,重要文件分布在如/root(root用户目录)、/home(普通用户目录)、/etc(应用配置)、/dev(设备文件)、/boot(内核及启动文件)、/proc(动态系统信息)、/lib64(库文件)、/opt(软件存放)、/tmp(临时文件)。&quot;[root@localhost ~]#&quot;代表管理员在root目录,&quot;$&quot;代表普通用户。创建新用户用`useradd`命令。调节终端字体大小:Ctrl+Shift++增大,Ctrl+减号缩小。绝对路径从根目录开始,相对路径从当前目录开始。

推荐镜像

更多