oracle10g RMAN增量備份策略

suliver發表於2021-09-09


       最近為一個新庫做備份策略,今天簡單的寫了下來,供大家參考。

      最開始的資料一般資料量在不大的情況下,最還每天做全備份是最好的,這樣在做故障恢復的時候是方便的,也是最簡單的,通常最簡單的方法是我們每個人追求的,複雜了自己也會繞在裡面容易出錯。

      在隨著業務的增長,隨之帶來的資料量的增長之後,我們在考慮做增量備份,減少備份資料量減少了每次備份時間,降低了系統的持續負載,但同時增加了資料恢復的時間,我們通常要選擇折中的辦法。

rman 備份::

累積增量0級備份

##   mgss_backup_level0.sh

run {

# Hot database level 0 whole backup

allocate channel t1 device type disk; 

backup

  incremental level 0

  skip inaccessible

  tag mgss_db_bk_level0

  filesperset 5

  format 'mgss_level0_%T_%t'

  (database);

#備份歸檔日誌並刪除以節省磁碟空間

# backup  archive logs

sql 'alter system archive log current';

backup

  filesperset 20

  format 'mgss_archivelog_%T_%t'

  (archivelog all delete input);

}

累積增量1級備份

##   mgss_backup_level1.sh

run {

# Hot database level 1 cumulative incremental backup

allocate channel t1 device type disk; 

backup

  incremental level 1

  cumulative

  skip offline

  skip readonly

  skip inaccessible

  tag mgss_db_bk_level1_cum

  filesperset 5

  format 'mgss_level1_%s_%p_%t'

    (database);

#備份歸檔日誌並刪除以節省磁碟空間

# backup all archive logs

sql 'alter system archive log current';

backup

  filesperset 20

  format 'mgss_archivelog_%s_%p_%t'

  (archivelog all delete input);

}

累積增量2級備份

##   mgss_backup_level2.sh

run {

# Hot database level 2 cumulative incremental backup

allocate channel t1 device type disk; 

backup

  incremental level 2

  cumulative

  skip offline

  skip readonly

  skip inaccessible

  tag mgss_db_bk_level2_cum

  filesperset 5

  format 'mgss_level2_%s_%p_%t'

    (database);

#備份歸檔日誌並刪除以節省磁碟空間

# backup  archive logs

sql 'alter system archive log current';

backup

  filesperset 20

  format 'mgss_archivelog_%s_%p_%t'

  (archivelog all delete input);

}

系統環境變數指令碼:

 注意{0,1,2} 是三個檔名,這裡為了簡寫,偷懶了嘿嘿。

mgss_backup_level{0,1,2}_cron 

#!/bin/bash

export ORACLE_SID=mgss

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/10g

export LD_LIBRARY_PATH=/u01/app/oracle/10g/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib

export TNS_ADMIN=/u01/app/oracle/10g/network/admin

export ORA_NLS33=/u01/app/oracle/10g/nls/data

export ORACLE_OWNER=oracle

export NLS_LANG='simplified chinese_china.zhs16gbk'

export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/u01/

app/oracle/10g/bin

$ORACLE_HOME/bin/rman target / msglog=/backup/oracle/flash_recovery_area/MGSS/mgss_backup_level{0,1,2}.log                    

cmdfile=/home/oracle/mgss/mgss_backup_level{0,1,2}.sh; 

Cron 任務:

30 23 * *  0  sh /home/oracle/mgss/mgss_backup_level0_cron

30 23 * *  1,2,4,5,6 sh /home/oracle/mgss/mgss_backup_level2_cron

30 23 * *  3 sh /home/oracle/mgss/mgss_backup_level1_cron

邏輯備份::

mgss_backup_logical.sh

#!/bin/bash

EXP_PATH=/backup/oracle/logical

EXPFILE=$EXP_PATH/`date '+mgss_%Y%m%d%H.dmp'`

LOGFILE=$EXP_PATH/`date '+mgss_%Y%m%d%H.log'`

exp epns/gs consistent=y compress=n FULL=Y rows=y buffer=40960000 file=$EXPFILE log=$LOGFILE;

#刪除前三天的備份檔案

/usr/bin/find  $EXP_PATH -type f -mtime +3 -exec rm {} ;

Cron 任務:

30  3  * *  0 sh /home/oracle/mgss/mgss_backup_logical.sh

 

©著作權歸作者所有:來自51CTO部落格作者andylhz的原創作品,如需轉載,請註明出處,否則將追究法律責任

備份恢復Oracle資料庫


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2821368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章