RMAN 備份案例-shell 腳
通過shell 結合RMAN建立資料庫的備份,可以簡化資料庫備份的工作,以下為一個備份案例:
系統環境:
作業系統:RedHat EL6
Oracle: Oracle 11gR2
本方案結合RMAN的Catalog DB建立備份,通過Catalog DB可以很友善的存儲RMAN的備份腳本,友善備份的調用。
<a href="http://s3.51cto.com/wyfs02/M01/23/9B/wKiom1M71mezn-CXAAA5zhzok5U009.jpg" target="_blank"></a>
備份案例:
<a href="http://s3.51cto.com/wyfs02/M00/23/9C/wKioL1M72YXxCwy5AAA6yed68bw808.jpg" target="_blank"></a>
1、删除obsolete bakcup script
------按照備份保留政策,删除recovery windows 15 天以上的備份(obsolete)
create global script global_del_obso comment 'A script for obsolete backup and delete it'
{
crosscheck archivelog all;
delete noprompt expired archivelog all;
allocate channel ch1 device type disk;
delete noprompt obsolete recovery window of 15 days;
release channel ch1;
}
2、backup controlfile script
------備份控制檔案
create global script global_bkctl comment 'A script for backup control file'
backup as compressed backupset
current controlfile reuse
format='/dsk4/backup/backupctl.ctl'
tag='bkctl';
3、backup archivelog script
-----備份歸檔日志
create global script global_arch comment "backup archivelog and then delete it" {
allocate channel ch2 device type disk;
sql "alter system archive log current";
set limit channel ch1 readrate=10240;
set limit channel ch1 kbytes=4096000;
set limit channel ch2 readrate=10240;
set limit channel ch2 kbytes=4096000;
format='/dsk4/backup/arch_%d_%U'
tag='bkarch'
archivelog all delete input;
release channel ch2;
對于資料檔案建立增量備份
4、backup datafile script(level 0)
------增量備份 0級
create global script global_inc0 comment "backup database as incrmental level 0"{
execute global script global_del_obso;
incremental level 0 database
format='/dsk4/backup/inc0_%d_%U'
tag='inc0';
execute global script global_arch;
execute global script global_bkctl;
5、backup datafile script(level 1)
------差異備份 1級
create global script global_inc1 comment "backup database as incrmental level 1"{
incremental level 1 database
format='/dsk4/backup/inc1_%d_%U'
tag='inc1';
6、backup datafile script(level 1 cumulative)
----累積增量備份 1級
create global script global_inc1_cu comment "backup database as incrmental cumulative level 1"{
incremental level 1 cumulative database
7、list scripts
------檢視catalog 庫裡的備份腳本
RMAN> list script names;
List of Stored Scripts in Recovery Catalog
Global Scripts
Script Name
Description
-----------------------------------------------------------------------
global_arch
backup archivelog and then delete it
global_bkctl
A script for backup control file
global_del_obso
A script for obsolete backup and delete it
global_inc0
backup database as incrmental level 0
global_inc1
backup database as incrmental level 1
global_inc1_cu
backup database as incrmental cumulative level 1
RMAN>
8、test scripts
------測試執行備份腳本
run{
execute global script global_inc0;
execute global script global_inc1;
execute global script global_inc1_cu;
9、建立RMAN連接配接Tartget DB和Catalog DB腳本及備份腳本
1、連接配接 target and catalog db
[oracle@rh6 script]$ cat connect.rcv
connect target sys/oracle@test1;
connect catalog rman/rman@cuug;
2、連接配接到target and catalog db ,執行備份
[oracle@rh6 script]$ cat inc0.rcv
@@/home/oracle/script/connect.rcv
[oracle@rh6 script]$ cat inc1.rcv
[oracle@rh6 script]$ cat inc1_cu.rcv
[oracle@rh6 script]$
10、shell 備份腳本
[oracle@rh6 script]$ cat inc0.sh
nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc0.rcv log=/home/oracle/script/inc0.log append &
[oracle@rh6 script]$ cat inc1.sh
nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc1.rcv log=/home/oracle/script/inc1.log append &
[oracle@rh6 script]$ cat inc1_cu.sh
nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc1_cu.rcv log=/home/oracle/script/inc1_cu.log append &
11、crontab 備份計劃
[oracle@rh6 script]$ crontab -l
0 0 * * 0 sh /home/oracle/script/inc0.sh
0 0 * * 1 sh /home/oracle/script/inc1.sh
0 0 * * 2 sh /home/oracle/script/inc1.sh
0 0 * * 3 sh /home/oracle/script/inc1.sh
0 0 * * 4 sh /home/oracle/script/inc1_cu.sh
0 0 * * 5 sh /home/oracle/script/inc1.sh
0 0 * * 6 sh /home/oracle/script/inc1.sh
本文轉自 客居天涯 51CTO部落格,原文連結:http://blog.51cto.com/tiany/1389244,如需轉載請自行聯系原作者