天天看點

RMAN 備份案例-shell 腳本

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&gt; 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&gt;

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 &amp;

[oracle@rh6 script]$ cat inc1.sh

nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc1.rcv log=/home/oracle/script/inc1.log append &amp;

[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 &amp;

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,如需轉載請自行聯系原作者