首页 运维 正文
Windows平台rman备份和删除dg备库归档日志脚本

 2022-10-23    305  

总觉得使用Windows跑Oracle是不靠谱的事情,可以这个世界上总有很多人喜欢做类似这样的事情,对于数据库比较常见的两件事情:rman和删除dg备库归档日志,在Linux/Unix平台上使用shell实现很简单,可是跑到win里面,就变的烦了,不是因为其麻烦,而是因为用的人少,不知道怎么下手处理该事情,我编写了简单的实现初级功能的win下面rman备份和删除备库归档日志脚本,供大家参考。也更加欢迎朋友提出来更加好的处理方法(Windows是真心的不懂)。

rman备份脚本

Windows平台rman备份和删除dg备库归档日志脚本

--backup_oracle.bat文件
rmantarget/cmdfile=D:\backup\rman\backup_db.rman
log=d:/backup/rman/logfile/rmanlog%date:~0,4%%date:~5,2%%date:~8,2%.log
--backup_db.rman文件
CONFIGURERETENTIONPOLICYTOREDUNDANCY=2;
CONFIGUREDEVICETYPEDISKPARALLELISM2;
CONFIGUREDEFAULTDEVICETYPETODISK;
backupfilesperset=5ascompressedbackupsetdatabaseformat'd:/backup/rman/full_%U.rman';
sql'altersystemarchivelogcurrent';
backupfilesperset=50ascompressedbackupsetarchivelogallformat'd:/backup/rman/arch_%U.rman'deleteinput;
DELETEnopromptOBSOLETE;
crosscheckbackup;
deletenopromptexpiredbackup;
backupformat'd:/backup/rman/ctl_%U.rman'currentcontrolfile;
backupspfileformat'd:/backup/rman/spfile_%U.rman';
exit;

backup_oracle.bat文件加入到计划任务即可。

删除dg备库归档日志(已经应用)

--delete_dg_archivelog.bat
rem注意修改部署目录
cdD:\win_xifenfei
d:
rem注意delete_archive.sql查询是否有记录
echodeletearchivelogstaring>delete_archivelog.bak
sqlplus/assysdba@delete_archive.sql
echormantarget/cmdfile=rman_checkcross.rman>>delete_archivelog.bat
delete_archivelog.bat>>delete_dg_archivelog_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log
exit
--delete_archive.sql
setlines150
colnamefora150
setpagesize0feedbackoffverifyoffheadingoffechooff
spooldelete_archivelog.bat
select'del'||namefromv$archived_logwhereAPPLIED='YES'ANDNAMEISNOTNULLandDEST_ID=1;
spooloff
exit;
--rman_checkcross.rman
crosscheckarchivelogall;
deletenopromptexpiredarchivelogall;
exit

delete_dg_archivelog.bat加入到计划任务即可。

原文链接:https://77isp.com/post/8866.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。