RMAN全备份脚本

目标
1、备份脚本每周天半夜3点自动执行。
2、数据库全备份,同时备份控制文件及归档日志文件。
3、备份保留14天,过期自动删除。
4、保留操作日志备查。

(1)编写RMAN批处理文件:rman 自动备份脚本(oraback0.sh)

run{
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOWN OF 14 DAYS;
 COFNIGURE CONTROLFILE AUTOBACK ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/Oracle/oradata/backup/rmanback/%F';
 ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/oracle/oradata/backup/rmanback/orabk0_%d_%T_%s';
 BACKUP DATABASE SKIP INACCESSIBLE
 PLUS ARCHIVELOG FILESPERSET 20
 DELETE ALL INPUT;
 RELEASE CHANNEL C1;
 }
 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
 CROSSCHECK BACKUPSET;
 DELETE NOPROMPT OBSOLETE;

补充
 
        BACKUP SKIP 参数:
 
        SKIP INACCESSIBLE :表示跳过不可读的文件。OFFLINE的文件只要存在于磁盘上那就仍然可读取,但是有的文件已经被删除或移动就不可读了,加上这个参数就会跳过这些文件。
 
        SKIP OFFLINE:表示跳过OFFLINE数据文件。
 
        SKIP READONLY:表示跳过所在表空间为READONLY的数据文件。

ALLOCATE CHANNLE FOR MAINTENACNE DEVICE TYPE DISK;是用来分配专用于CHANGE、DELETE、CROSSCHECK命令,不能包含在RUN块中。
 
默认配置下CONFIGURE 已经配置了一个指定DISK的通道,因此也可以不执行 ALLOCATE CHANNLE FOR MAINTENACNE,另外oracle 也建议通过CONFIGURE
 
来配置通道。

(2)编写执行脚本run_rman_backup.sh
 
ORACLE_SID=test
 ORACLE_BASE=/oracle
 ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
 export ORACLE_SID ORACLE_BASE ORACLE_HOME
 export ORA_NLS10=$ORACLE_HOME/nls/data
 PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
 export PATH
 

$ORACLE_HOME/bin/rman target /  msglog=/backup/oraclebaklog/bak.log cmdfile=/backup/shell/oraback0.sh

(3)加入到执行计划
 
crontab -e
 00 03 * * 0 /backup/shell/run_rman_back.sh

注意:相应的目录应该创建,对应的文件应该放在相应的目录下。

--------------------------------------推荐阅读 --------------------------------------

--------------------------------------分割线 --------------------------------------

相关推荐