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月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
28天前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
1月前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
29 0
|
5月前
|
缓存 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+减号缩小。绝对路径从根目录开始,相对路径从当前目录开始。
|
5月前
|
Unix 关系型数据库 API
Python OS 文件/目录方法
Python OS 文件/目录方法
|
5月前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
31 0
|
5月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错合集之RocksDB在尝试打开更多文件时达到了操作系统允许的最大打开文件数限制,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
116 0
|
6月前
|
Oracle 关系型数据库 Linux
Oracle Linux: How To Disable NUMA At OS Level (Doc ID 2193586.1)
Oracle Linux: How To Disable NUMA At OS Level (Doc ID 2193586.1)
66 1
|
6月前
|
Ubuntu Linux iOS开发
LabVIEW在不同操作系统上使VI、可执行文件或安装程序
LabVIEW在不同操作系统上使VI、可执行文件或安装程序
216 3
|
6月前
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
【5月更文挑战第12天】在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查'example.txt'文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
224 2

推荐镜像

更多