文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>利用sqlplus脚本删除备库归档

利用sqlplus脚本删除备库归档

时间:2011-06-14  来源:yangtingkun

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


一个9204RAC的DATA 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中,使得系统可以定时调用。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载