ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用sqlplus脚本删除备库归档

利用sqlplus脚本删除备库归档

原创 Linux操作系统 作者:yangtingkun 时间:2011-06-14 23:45:09 0 删除 编辑

一般而言,这种备份或者删除归档的脚本都是通过操作系统上的shell脚本实现,不过如果shell不是很熟,类似的功能完全可以利用sqlplus脚本实现。

 

 

一个9204RACDATA GUARD环境的STANDBY数据库上的例子。

一共需要创建3个文件,此外还有一个在调用脚本过程中生成的文件,第一个文件sql.sh用来执行sqlplus命令,并最终调用生成后的脚本:

sqlplus system/password@primary_db << EOF
@execute.sql
EOF
chmod 755 delete_archivelog.sh
./delete_archivelog.sh

第二个文件execute.sql用来设置输出的格式,并调用最终脚本文件:

set pages 0 lines 100 feedback off ver off echo off trims on trim on show off term off
spo delete_archivelog.sh
@@call.sql
spo off

最后一个文件call.sql利用sql拼出rman删除归档的命令,因为是RAC环境,因此需要对两个THREAD分别进行删除:

select '/u01/oracle/product/9.2.0.4/bin/rman target / << EOF' from dual;
select 'delete noprompt archivelog until sequence ' || (max(sequence#) - 10) || ' thread ' || thread# || ';'
from v$archived_log
where dest_id = 2
and applied = 'YES'
group by thread#;
select 'EOF' from dual;

最后将sql.sh脚本添加到crontab中,使得系统可以定时调用。

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-697945/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10522995