ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 1880|回复: 8

哪位有 standby数据库 定期删除已经apply的archive的shell脚本? [复制链接]

注册会员

高级会员

精华贴数
0
技术积分
3574
社区积分
22
注册时间
2006-4-10
论坛徽章:
5
数据库板块每日发贴之星
日期:2007-07-04 01:02:06数据库板块每日发贴之星
日期:2007-08-22 01:03:12数据库板块每日发贴之星
日期:2007-08-23 01:03:28会员2007贡献徽章
日期:2007-09-26 18:42:102009新春纪念徽章
日期:2009-01-04 14:52:28
发表于 2008-1-18 18:36:27 |显示全部楼层
急用!

以前的丢了的。


email:

mikle_tian@126.com

万分感谢!!
hello moto!

注册会员

高级会员

精华贴数
0
技术积分
3574
社区积分
22
注册时间
2006-4-10
论坛徽章:
5
数据库板块每日发贴之星
日期:2007-07-04 01:02:06数据库板块每日发贴之星
日期:2007-08-22 01:03:12数据库板块每日发贴之星
日期:2007-08-23 01:03:28会员2007贡献徽章
日期:2007-09-26 18:42:102009新春纪念徽章
日期:2009-01-04 14:52:28
发表于 2008-1-18 18:43:25 |显示全部楼层
比如,定期删除满足以下两个条件的归档日志:


1、已经在standby库apply的;
2、2天以上的

同时满足上述两个条件的话,即删除。
hello moto!

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
1345
社区积分
8
注册时间
2004-3-8
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2009-11-17 18:56:31ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212011新春纪念徽章
日期:2011-02-18 11:43:35
发表于 2008-1-18 23:49:40 |显示全部楼层
写个OCCI程序,10分钟搞定

使用道具 举报

注册会员

(小荷)

精华贴数
1
技术积分
747
社区积分
10
注册时间
2006-2-25
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
发表于 2008-1-19 01:53:32 |显示全部楼层
定期删除DG归档日志的脚本·
作者 小荷||【转载时请务必以超链接形式标明文章原始出处和作者信息】
永久链接: http://www.oracleblog.cn/useful- ... elete-standby-arch/ ·


--------------------------------------------------------------------------------

Dataguard的维护稍微麻烦点,不能删除尚未applied的归档日志,但是每次手工去核对就比较麻烦了,今天在pub上看到这样一个要求:“哪位有 standby数据库 定期删除已经apply的archive的shell脚本?”于是就写了个脚本,基本可以满足题目的要求:

1、已经在standby库apply的;

2、2天以上的

脚本如下(具体的脚本和初始化路径可见文章最后的下载tar包,在这里对这个脚本的内容进行下说明):
OS:

[oracle@standby1 etc]$ cat redhat-release
Enterprise Linux Enterprise Linux AS release 4 (October Update 4)
DB:

BANNER
----------------------------------------------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE    9.2.0.3.0       Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
脚本部署路径为:/oracle/del_appl_arc/bin
脚本生成的日志路径:/oracle/del_appl_arc/log

#!/bin/sh
#########################################################################
#         This shell is for primary and standby database                #
#         to rm applied archivelog that before some day ago.            #
#                                                                       #
#       You can define "some day" in variables ${day_before}            #
#            This shell can be put in crontab for auto run              #
#                                                                       #
#            2008-01-18   writen by www.oracleblog.cn                   #
#########################################################################

## load profile file
. /oracle/.bash_profile

## Path Define
main_path=/oracle/del_appl_arc      <----------------部署的主路径
bin_path=${main_path}/bin      <--------------------脚本所在路径
log_path=${main_path}/log      <---------------------脚本日志所在路径
arc_path=/oracle/arch      <-------------------------归档日志所在路径

cd ${bin_path}

## Initial script
touch app_arc_name.sh
chmod +x app_arc_name.sh

## rm applied archivelog that before ${day_before} day ago
day_before=1      <-------------------------------------假设删除1天前已经规定的日志,这个变量设置为1,你可以设置成其他。  

## Db info
dbuser=test
dbpwd=test
dbsid=primary

########## Main shell start here ##########
## load exisit archlog list to db      <------------------------从此处开始利用sqlldr将arch文件列表load到数据库中。
sqlplus ${dbuser}/${dbpwd}@${dbsid}<<EOF >/dev/null
drop table ${dbuser}.arc_log_list;
CREATE TABLE ${dbuser}.arc_log_list (arc_name VARCHAR2(2000));
exit;
EOF

ls -l ${arc_path}|awk '{print $9}' |grep arc >arc_log_list.tmp

echo "load data">>arc_log.ctl
echo "infile 'arc_log_list.tmp'">>arc_log.ctl
echo "replace into table arc_log_list">>arc_log.ctl
echo "fields terminated by X'09'">>arc_log.ctl
echo "(arc_name)">>arc_log.ctl

sqlldr ${dbuser}/${dbpwd}@${dbsid} control=arc_log.ctl log=sqlldr_run.log bad=sqlldr_badfile.bad

### Create shell for rm applied archive that before some day ago
sqlplus -s ${dbuser}/${dbpwd}@${dbsid}<<EOF>/dev/null      <-------------利用load数据库中的arch列表和
set feedback off                                     <-------------数据库中v$archived_log,找出符合条件可以删除的arch,同时生成删除脚本。
set pages 0
set head off
set timing off
set echo off
spool app_arc_name.tmp
select 'rm -f '||'${arc_path}/'||arc_name from test.arc_log_list
intersect
select 'rm -f '||name from v\$archived_log
where DEST_ID=1 and name like '%.arc'
and SEQUENCE#<(select max(SEQUENCE#) from v\$archived_log where applied='YES')
and COMPLETION_TIME<=sysdate-${day_before};
spool
exit
EOF

## Exec the shell in background mode
cat app_arc_name.tmp |grep -v spooling>app_arc_name.sh
./app_arc_name.sh
mv app_arc_name.sh rm_appl_arc_`date +"%Y%m%d%H%M"`.log

mv rm_appl_arc*.log ${log_path}
rm app_arc_name.tmp arc_log.ctl sqlldr_run.log arc_log_list.tmp
完成脚本后,你可以把脚本放入crontab中定期运行,以达到自动删除n天以前且已经applied的归档日志。


下载tar包请到原文处:http://www.oracleblog.cn/useful- ... elete-standby-arch/

[ 本帖最后由 jimmyhe1981 于 2008-1-19 02:33 编辑 ]
*************************
Welcome to my blog:http://www.oracleblog.org
*************************

使用道具 举报

注册会员

(小荷)

精华贴数
1
技术积分
747
社区积分
10
注册时间
2006-2-25
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
发表于 2008-1-19 02:38:21 |显示全部楼层
同一个脚本primary和standby都可以用,不过注意在部署crontab的时候要将时间错开,如果同时进行,会对arc_log_list表有争用。
*************************
Welcome to my blog:http://www.oracleblog.org
*************************

使用道具 举报

注册会员

秋风

精华贴数
1
技术积分
13604
社区积分
3805
注册时间
2004-5-8
论坛徽章:
24
生肖徽章2007版:龙
日期:2008-05-06 11:07:482012新春纪念徽章
日期:2012-01-04 11:49:54咸鸭蛋
日期:2011-10-19 10:09:12ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
发表于 2008-1-19 21:25:49 |显示全部楼层
关注

使用道具 举报

注册会员

高级会员

精华贴数
0
技术积分
3574
社区积分
22
注册时间
2006-4-10
论坛徽章:
5
数据库板块每日发贴之星
日期:2007-07-04 01:02:06数据库板块每日发贴之星
日期:2007-08-22 01:03:12数据库板块每日发贴之星
日期:2007-08-23 01:03:28会员2007贡献徽章
日期:2007-09-26 18:42:102009新春纪念徽章
日期:2009-01-04 14:52:28
发表于 2008-1-20 10:10:06 |显示全部楼层
收藏,多谢
hello moto!

使用道具 举报

精华贴数
0
技术积分
17183
社区积分
82
注册时间
2006-11-4
论坛徽章:
81
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26数据库板块每日发贴之星
日期:2009-10-12 01:01:02参与WIN7挑战赛纪念
日期:2009-11-06 17:49:45ITPUB元老
日期:2009-11-14 22:24:16生肖徽章2007版:蛇
日期:2009-11-16 01:03:28数据库板块每日发贴之星
日期:2009-11-30 01:01:01生肖徽章2007版:马
日期:2009-12-15 20:41:35数据库板块每日发贴之星
日期:2009-12-20 01:01:012010新春纪念徽章
日期:2010-01-04 08:33:08祖国60周年纪念徽章
日期:2009-10-09 08:28:00数据库板块每日发贴之星
日期:2009-08-21 01:01:03生肖徽章2007版:马
日期:2009-04-16 21:59:38
发表于 2008-1-20 18:18:55 |显示全部楼层
我也收藏了。感谢分享!

使用道具 举报

注册会员

圆梦之旅

精华贴数
0
技术积分
4679
社区积分
1688
注册时间
2007-5-22
论坛徽章:
31
授权会员
日期:2007-06-28 08:52:11ITPUB元老
日期:2010-05-21 14:36:22ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-01-04 10:24:022011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
发表于 2008-6-24 16:39:24 |显示全部楼层
真不错,赞一个!
超越自我 之 圆梦之旅

Email:fwei_fengwei@163.com
----------------
提高,源于细节;精通,来自积累。


幸福是什么
==========
1、做自己喜欢做的。
2、用自己喜欢做的养活自己。
3、在自己喜欢做的事上有所成就。

中国茶文化:春喝花茶、夏喝绿茶、秋喝乌龙、冬喝红。

我的2012圆梦旅程  : 深入Oracle性能优化、Linux、Shell及PL/SQL编程、E文

读懂比尔盖茨的十句话绝对让你改变一生
(http://www.itpub.net/viewthread.php?tid=1374590&extra=page%3D1&frombbs=1)

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部