欢迎来到天天文库
浏览记录
ID:34722572
大小:67.18 KB
页数:4页
时间:2019-03-10
《dataguard之自动删除已应用的归档日志》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、建议先在备库上删除已被应用的归档日志,然后在到primary库上删除这个日志,写Shell脚本之前,几个地方需要注意下:1如何判断备机上哪些日志已经被应用到备库上? 可以通过查询v$archived_log的字段applied字段来判断,同时加上REGISTRAR和name的限制条件,REGISTRAR='RFS'表示是RemoteFileServerprocess进程,别外加上nameisnotnull是因为,通过rmancrosscheck并删除expired的archivelog后name字段会被置
2、空,--sql如下SELECTname,SEQUENCE#,FIRST_TIME,REGISTRAR,APPLIED,NEXT_TIME,status FROMV$ARCHIVED_LOG whereapplied='YES' andREGISTRAR='RFS' andnameisnotnull ORDERBYSEQUENCE#;2在备机删除了已归档的archivelog后,如何在远端primary库同时删除这个日志?这个问题在网上查了些资料,可以通过配置公钥和私钥,配置之后,scp文件,ssh到远程
3、主机执行命令都可以不用输入密码,具体原理可以到网上查查,这两点克服后,就可以写脚本了。-------- 脚本clear_arch_orasid.sh ------- 功能:删除备机被applied的归档日志,同时也到主库上删除这个归档日志。#!/bin/bash#Author Francs.tan#Date 2010-12-20#################################################SetResultFlag#0-Successful#1-NoArchived
4、logthathavebeenappliedbystandbydatabase#2-ERROR:Excutefileclear_primary.sh#3-ERROR:Fileclear_primary.shdeleteerror#initializevariableRESULT_FLAG=0file_num='0'exportORACLE_HOME=/opt/oracle/product/10.2.0/db_1exportPATH=${ORACLE_HOME}/bin:${PATH}exportORACLE
5、_SID=orasidexportscript_dir=/home/oracle/script/clear_archexportlog_dir=/home/oracle/script/clear_arch/logDATE=`date+%Y%m%d`##Selecttheearliestarchivedlogfilethathavebeenappliedbystandbydatabasesqlplus-s "/assysdba"<6、tfeedbackoff;colnameformata50;colREGISTRARformata10;colAPPLIEDformata10;spool${script_dir}/archivelog_list.txtselect'file_num='7、8、namefrom(SELECTnvl(name,'0')asnameFROMV$ARCHIVED_LOGwhereapplied='YES'andREGISTRAR='RFS'andnameisnotnullORDERBYSEQUENCE#) wher9、erownum=1;spooloff;exitEOF##Deleteearliestarchivedlogfilethatappliedbystandbydatabasecontrol_file=${script_dir}/archivelog_list.txt.${control_file}if[${file_num}=='0']then echo"WARNING:NoArchivedlogthathavebeenappliedbystandbydatabase!"10、tee-a${log_file} 11、RESULT_FLAG=1 echo"ResultFlag:${RESULT_FLAG}"12、tee-a${log_file} exit${RESULT_FLAG}filog_file=${log_dir}/clear_log_${DATE}.logecho"************ beginrmarchivelogfile= ${file_num} ************* " 13、tee-a${log_f
6、tfeedbackoff;colnameformata50;colREGISTRARformata10;colAPPLIEDformata10;spool${script_dir}/archivelog_list.txtselect'file_num='
7、
8、namefrom(SELECTnvl(name,'0')asnameFROMV$ARCHIVED_LOGwhereapplied='YES'andREGISTRAR='RFS'andnameisnotnullORDERBYSEQUENCE#) wher
9、erownum=1;spooloff;exitEOF##Deleteearliestarchivedlogfilethatappliedbystandbydatabasecontrol_file=${script_dir}/archivelog_list.txt.${control_file}if[${file_num}=='0']then echo"WARNING:NoArchivedlogthathavebeenappliedbystandbydatabase!"
10、tee-a${log_file}
11、RESULT_FLAG=1 echo"ResultFlag:${RESULT_FLAG}"
12、tee-a${log_file} exit${RESULT_FLAG}filog_file=${log_dir}/clear_log_${DATE}.logecho"************ beginrmarchivelogfile= ${file_num} ************* "
13、tee-a${log_f
此文档下载收益归作者所有