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

运维 系统运维
总觉得使用Windows跑Oracle是不靠谱的事情,可以这个世界上总有很多人喜欢做类似这样的事情,对于数据库比较常见的两件事情:rman和删除dg备库归档日志,在Linux/Unix平台上使用shell实现很简单,可是跑到win里面,就变的烦了,本文中编写了简单的实现初级功能的win下面rman备份和删除备库归档日志脚本,供大家参考。

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

rman备份脚本

  1. --backup_oracle.bat文件 
  2. rman target / cmdfile=D:\backup\rman\backup_db.rman 
  3. log=d:/backup/rman/logfile/rmanlog%date:~0,4%%date:~5,2%%date:~8,2%.log 
  4. --backup_db.rman文件 
  5. CONFIGURE RETENTION POLICY TO REDUNDANCY = 2
  6. CONFIGURE DEVICE TYPE DISK PARALLELISM 2; 
  7. CONFIGURE DEFAULT DEVICE TYPE TO DISK; 
  8. backup filesperset = 5 as compressed backupset database format 'd:/backup/rman/full_%U.rman'; 
  9. sql 'alter system archive log current'; 
  10. backup  filesperset = 50 as compressed backupset archivelog  all format 'd:/backup/rman/arch_%U.rman'  delete input; 
  11. DELETE noprompt OBSOLETE; 
  12. crosscheck backup; 
  13. delete noprompt expired backup; 
  14. backup  format 'd:/backup/rman/ctl_%U.rman' current controlfile; 
  15. backup spfile format 'd:/backup/rman/spfile_%U.rman' ; 
  16. exit; 

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

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

  1. --delete_dg_archivelog.bat 
  2. rem 注意修改 部署目录 
  3. cd D:\win_xifenfei 
  4. d: 
  5. rem 注意delete_archive.sql 查询是否有记录 
  6. echo delete archivelog staring > delete_archivelog.bak 
  7. sqlplus / as sysdba @delete_archive.sql 
  8. echo rman target / cmdfile=rman_checkcross.rman>>delete_archivelog.bat 
  9. delete_archivelog.bat >>delete_dg_archivelog_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log 
  10. exit 
  11. --delete_archive.sql 
  12. set lines 150 
  13. col name for a150 
  14. set pagesize 0 feedback off verify off heading off echo off 
  15. spool delete_archivelog.bat 
  16. select 'del '||name from v$archived_log where APPLIED='YES' AND NAME IS NOT NULL and DEST_ID=1
  17. spool off 
  18. exit; 
  19. --rman_checkcross.rman 
  20. crosscheck archivelog all; 
  21. delete noprompt expired archivelog all; 
  22. exit 

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

责任编辑:黄丹 来源: www.xifenfei.com
相关推荐

2017-06-06 08:10:00

Oracle

2010-10-29 14:44:35

ORACLE归档日志

2010-11-19 13:14:21

Oracle删除归档日

2021-05-19 20:20:56

Oracle归档修复

2017-06-27 14:58:21

备份数据库Oracle

2021-12-27 09:15:16

Oracle数据库后端开发

2011-08-24 15:16:37

Oracle数据库自动备份

2011-08-04 10:31:43

归档日志参数文件

2010-05-26 15:07:36

SVN版本库自动备份

2021-10-22 14:23:02

logrotateLinux 命令Linux

2023-05-11 08:46:28

MySQL

2011-08-02 11:16:08

Oracle数据库归档日志

2017-07-20 22:10:13

OracleRMAN备份和恢复

2018-09-28 14:43:27

RMAN备份实践

2010-10-26 13:30:25

oracle RMAN

2010-10-26 12:03:25

Oracle备份

2011-07-27 12:52:39

赛门铁克数据归档备份厂商

2010-09-14 13:30:28

sql server备

2010-10-29 15:07:33

oracle日志

2010-03-31 10:39:40

RMANOracle
点赞
收藏

51CTO技术栈公众号