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
注意:相应的目录应该创建,对应的文件应该放在相应的目录下。
--------------------------------------推荐阅读 --------------------------------------
--------------------------------------分割线 --------------------------------------