Oracle怎么清理数据库中没用的文件

54次阅读
没有评论

共计 3075 个字符,预计需要花费 8 分钟才能阅读完成。

本篇内容主要讲解“Oracle 怎么清理数据库中没用的文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Oracle 怎么清理数据库中没用的文件”吧!

Oracle 清理数据库各种日志文件

1.(optional)可以创建备份目录,提前备份需要清理日志

mkdir /log_bak_date

2. 数据库各项日志文件路径

sqlplus / as sysdba
SYS@honor1   show parameter dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string /u01/app/oracle/diag/rdbms/honor/honor1/trace
core_dump_dest string /u01/app/oracle/diag/rdbms/honor/honor1/cdump
user_dump_dest string /u01/app/oracle/diag/rdbms/honor/honor1/trace
11gR1 之后引入全新的诊断信息架构:SYS@honor1   show parameter diag;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01/app/oracle
SYS@honor1   show parameter audit_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/honor/adump
audit_file_dest /*  路径下存放的是数据库审计信息文件, 如果未设置 audit_trail 为 OS,则默认此目录只存放 SYS 登陆审计信息。background_dump_dest /*  存放数据库后台进程调试信息,与记录影响实例、数据库的 trace 文件和 alert 日志文件,11gR1 之后,缺省忽略此参数设置,根据 diagnostic_dest 存放
diagnostic_dest /* 11gR1 之后,引入,后台进程与 alert 告警日志会根据 ADR base 目录存放
user_dump_dest /*  存放用户进程调试 trace 文件,11gR1 之后,引入新的诊断架构这个参数将被忽略,由 diagnostic_dest 控制 trace 文件生成目录
core_dump_dest /*  存放 Oracle 核心转储文件 

3. 数据库审计信息文件清理

find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud
/*  可选择如下命令备份审计文件:find /u01/app/oracle/admin/honor/adump -mtime +30 -name \*.aud -exec mv {} /log_bak_date \;
/*  查看审计目录下 30 天前的审计文件
find audit_file_dest -mtime +30 -name \*.aud
/*  确保审计日志无需保留,可选择删除
cd /log_bak_date
rm -rf *.aud
/*  数据库中审计一般可以选择直接 truncate 掉 aud$

4. 数据库 trace 文件

/*  清理 trace 文件
进入 background_dump_dest 路径下,将 30 天之前的文件移到准备删除的文件夹,执行命令如下:find /opt/oracle/diag/rdbms/orcl/czh29c/trace -mtime +30 -name \*.tr*
/* (可选)可选择将文件备份
$ find /opt/oracle/diag/rdbms/orcl/czh29c/trace -mtime +30 -name \*.tr* -exec mv {} /log_bak_date/background_dump_dest \;
/*  确保日志无用处之后,手工执行删除命令
cd /log_bak_date/background_dump_dest
rm -rf *.tr*

5. 清理数据库 alert 日志

/* alert 有两种办法可以清理
/* /* cp 备份
cd /u01/app/oracle/diag/rdbms/honor/honor1/trace
cp alert_$ORACLE_SID.log /log_bak_date/alert_$ORACLE_SID.log.bak (确保空间足够)/*  清理办法
  方法 1:echo 0  alert_$ORACLE_SID.log (清空内容)  方法 2:rm alert_$ORACLE_SID.log (直接删除掉)

6. 数据库 sql trace 文件清理

数据库默认 user_dump_dest 和 background_dump_dest 路径一致,如不一致,参照 4 中清理 trace 文件步骤清理

7. 数据库监听日志清理

/* Oracle 11g 的监听日志和告警日志分别在,RAC 日志在 grid 用户的 $ORACLE_BASE 下:$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace(文本监听日志)$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert(xml 监听日志)/*  删除监听日志的方法如下:/*  切换到 oracle 用户(如果为 RAC,切换到 grid 用户)$ su oracle
$ lsnrctl 
LSNRCTL  set log_status off
$ mv listener.log listener.log.bak /*(备份一下监听文件或者删除监听日志文件)$ mv listener.xml listener.xml.bak
LSNRCTL  set log_status on /*(这时候会自动创建一个 listener.log 文件)/* 11g 可以使用 ADRCI 工具查看告警日志
/*  要看警告日志可以在 oracle 用户下执行 adrci
$ adrci
adrci  show alert /*  可根据提示查看数据库或者监听日志内容。$ adrci
adrci  SHOW TRACEFILE /*  可以看到所有的 trace 以及 alert 日志文件
/*  使用 adrci 清理 trace 文件
$ adrci
adrci  show home
adrci  set homepath diag/rdbms/honor/honor1
adrci  help purge /*  可根据清理多少分钟前的数据,也可以 show problem 查看日志中错误信息 

到此,相信大家对“Oracle 怎么清理数据库中没用的文件”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计3075字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)