DataGuard备库删除已经应用的日志
前言:公司搭建了DataGuard,刚开始没有注意备库归档日志的管理,系统运行了一段时间之后,发现备库的空间被归档日志给撑爆了。
解决思路:Oracle提供了一个视图可以查看归档日志的执行情况,只要归档日志已经被应用了,就可以通过操作系统进行删除。
查看归档日志的运用脚本:select sequence#,applied from v$archived_log order by sequence#;
以下是我配置的操作系统的定时删除脚本:
#!/bin/sh
export PATH
ORACLE_SID=orcl
TABLE='v$archived_log'
export ORACLE_BASE ORACLE_SID
export ORACLE_HOME=/u01/app/oracle/product/OraDb11g_home1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
$ORACLE_HOME/bin/sqlplus -silent "/ as sysdba" <<EOF > /home/oracle/deleteorclarch.sh
set heading off;
set pagesize 0;
set term off;
set feedback off;
set linesize 32767;
select 'rm -rf '||name from ${TABLE} where DELETED='NO' and APPLIED='YES';
exit;
EOF
sh /home/oracle/deleteorclarch.sh
rman target /<<END
crosscheck archivelog all;
delete noprompt expired archivelog all;
exit;
END
通过crontab每天定时运行脚本即可;
相关推荐
登录方法1:以操作系统认证的方式登录,不需要用户名和口令。登录方法2:以用户名/密码登录,只能以sysdba/sysoper角色登录。在sys用户下查看全部用户的状态。修改system用户密码,及登录