Home  >  Article  >  Database  >  Linux下使用RMAN和控制文件备份删除归档日志的SHELL脚本

Linux下使用RMAN和控制文件备份删除归档日志的SHELL脚本

WBOY
WBOYOriginal
2016-06-07 17:33:061297browse

Linux下使用RMAN和控制文件备份删除归档日志的SHELL脚本

在Oracle用户下的定时器设置

[oracle@SHARKDB dbscripts]$ crontab -l
# minute hour day month week
15 1  * * 0  sh /home/oracle/dbscripts/backup_full.sh
05 3  * * *  sh /home/oracle/dbscripts/del_arc.sh

 全备脚本 先配置保留时间窗口,配置备份目录和格式,然后交叉检查所有备份集.

删除无效备份集,删除过期对象,进行全备份并压缩..


[oracle@SHARKDB dbscripts]$ cat backup_full.sh

#!/bin/ksh
source ~/.bash_profile
echo "------------------Start------------------";date
#backup start
$ORACLE_HOME/bin/rman log=/home/oracle/dbscripts/logs/rman_full_backup.log connect target /
run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT  '/arch/full_%d_%s_%T_%t.bak';
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsoleted;
backup full  AS COMPRESSED BACKUPSET DATABASE include current controlfile  plus archivelog;
}
exit;
EOF
echo "-------------------End-------------------";date

删除归档日志先检查归档日志把物理删除的信息从控制文件删除,然后执行物理删除 2天前的.

[oracle@SHARKDB dbscripts]$ cat del_arc.sh

#! /bin/bash
source ~/.bash_profile
exec >> /home/oracle/dbscripts/logs/del_arch`date +%F_%H`.log
$ORACLE_HOME/bin/rman target / crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-2';
exit;
EOF

如果没有SO 彼此 语句 -- source ~/.bash_profile 那么要在ROOT下执行定时器 切换用户 执行脚本

03 04 * * * su - oracle -c '/home/oracle/del_arc.sh'

推荐阅读:

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn