页面“Oracle定时备份”与“Oracle归档日志清理”之间的差异
(页面间的差异)
跳到导航
跳到搜索
小 (导入1个版本) |
docker>Evan (创建页面,内容为“ oracle归档日志清理 <pre> alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' rman target / 列出并确认归档日志路径 RMAN>list archivelog al…”) |
||
第1行: | 第1行: | ||
− | + | ||
− | + | oracle归档日志清理 | |
<pre> | <pre> | ||
− | + | alias sqlplus='rlwrap sqlplus' | |
− | + | alias rman='rlwrap rman' | |
− | + | ||
− | + | ||
− | + | ||
− | + | rman target / | |
− | + | ||
− | + | 列出并确认归档日志路径 | |
− | + | ||
− | + | RMAN>list archivelog all; | |
− | + | ||
− | + | ||
− | + | delete archivelog all completed before 'sysdate-7'; | |
+ | |||
+ | –删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志 今天就直接用了这个 | ||
+ | SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 | ||
+ | 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 | ||
+ | |||
+ | 注意 | ||
+ | RMAN> delete archivelog all completed before 'sysdate-1'; (“1”对应是一天,若想删除6小时前的归档日志,则改为0.25) | ||
+ | 删除完归档,若有对应的备份策略需要重新启动全备 | ||
+ | |||
+ | |||
+ | |||
+ | 5、删除失效的归档日志 | ||
+ | |||
+ | RMAN>delete expired archivelog all; | ||
+ | |||
+ | 6、如果日志爆了,用以上命令可能不起作用,可以使用下面的命令强行删除所有日志 | ||
+ | |||
+ | RMAN>delete noprompt force archivelog all; | ||
+ | |||
+ | |||
+ | |||
+ | 清除归档日志简单的shell脚本 | ||
+ | #对于RAC环境或者ASM需要清除archive,使用shell脚本调用RMAN是比较妥当的方式 | ||
+ | #其次,如果你的archive位于闪回区,制定合理的保留策略,也可以让Oracle自动老化无用的归档日志 | ||
− | + | robin@SZDB:~/dba_scripts/custom/bin> more clean_arch.sh | |
− | + | # +-------------------------------------------------------+ | |
− | # | + | # + Clean archived log as specified time | |
− | + | # + Author : Robinson | | |
− | + | # + Blog : http://blog.csdn.net/robinson_0612 | | |
− | + | # + Usage : | | |
− | + | # + clean_arch.sh $ORACLE_SID | | |
− | + | # +-------------------------------------------------------+ | |
# | # | ||
− | + | #!/bin/bash | |
− | + | # -------------------- | |
− | + | # Define variable | |
− | + | # -------------------- | |
+ | |||
+ | if [ -f ~/.bash_profile ]; then | ||
+ | . ~/.bash_profile | ||
+ | fi | ||
+ | |||
+ | if [ -z "${1}" ];then | ||
+ | echo "Usage: " | ||
+ | echo " `basename $0` ORACLE_SID" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | ORACLE_SID=$1; export ORACLE_SID | ||
+ | $ORACLE_HOME/bin/rman log=/users/robin/log/rman.log <<EOF | ||
+ | connect target / | ||
+ | run{ | ||
+ | crosscheck archivelog all; | ||
+ | delete noprompt expired archivelog all; | ||
+ | delete noprompt archivelog all completed before 'sysdate - 1'; | ||
+ | } | ||
+ | exit; | ||
+ | EOF | ||
+ | exit | ||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | --------------------- | |
− | + | 原文:https://blog.csdn.net/leshami/article/details/9308287 | |
− | |||
+ | =see also= | ||
− | [ | + | [http://blog.51cto.com/hujizhou/1876780 Oracle 11g正确删除归档日志方法] |
− | |||
− | + | [https://blog.csdn.net/tfxcg1026/article/details/52502885 oracle归档日志清理] | |
− | |||
− | + | [https://blog.csdn.net/leshami/article/details/9308287 Oracle RMAN 清除归档日志] | |
− | + | [https://www.cnblogs.com/ungshow/archive/2009/04/03/1429218.html Oracle归档日志删除] | |
− | |||
+ | [https://my.oschina.net/u/2245781/blog/1799416 oracle各类日志清理] | ||
− | + | [http://support.huawei.com/enterprise/zh/knowledge/EKB1000057307 oracle归档日志占满系统存储空间,导致数据库启动失败] | |
− | [[category:oracle]] | + | [[category:oracle]] [[category:ops]] |
2018年10月29日 (一) 11:56的版本
oracle归档日志清理
alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' rman target / 列出并确认归档日志路径 RMAN>list archivelog all; delete archivelog all completed before 'sysdate-7'; –删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志 今天就直接用了这个 SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 注意 RMAN> delete archivelog all completed before 'sysdate-1'; (“1”对应是一天,若想删除6小时前的归档日志,则改为0.25) 删除完归档,若有对应的备份策略需要重新启动全备 5、删除失效的归档日志 RMAN>delete expired archivelog all; 6、如果日志爆了,用以上命令可能不起作用,可以使用下面的命令强行删除所有日志 RMAN>delete noprompt force archivelog all; 清除归档日志简单的shell脚本 #对于RAC环境或者ASM需要清除archive,使用shell脚本调用RMAN是比较妥当的方式 #其次,如果你的archive位于闪回区,制定合理的保留策略,也可以让Oracle自动老化无用的归档日志 robin@SZDB:~/dba_scripts/custom/bin> more clean_arch.sh # +-------------------------------------------------------+ # + Clean archived log as specified time | # + Author : Robinson | # + Blog : http://blog.csdn.net/robinson_0612 | # + Usage : | # + clean_arch.sh $ORACLE_SID | # +-------------------------------------------------------+ # #!/bin/bash # -------------------- # Define variable # -------------------- if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi if [ -z "${1}" ];then echo "Usage: " echo " `basename $0` ORACLE_SID" exit 1 fi ORACLE_SID=$1; export ORACLE_SID $ORACLE_HOME/bin/rman log=/users/robin/log/rman.log <<EOF connect target / run{ crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt archivelog all completed before 'sysdate - 1'; } exit; EOF exit
原文:https://blog.csdn.net/leshami/article/details/9308287