一次rman備份 策略調整

wangxiangtao發表於2011-07-12

 公司一臺內部oracle 伺服器磁碟空間告警, 檢視了一下情況如下:

 [oracle@pro101 rmanback]$ df  -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sdb1             284G   91G  180G  34% /

/dev/sda3             1.7T  1.5T  122G  93% /data

/dev/sda1              99M   12M   83M  12% /boot

tmpfs                 7.9G     0  7.9G   0% /dev/shm

192.168.18.117:/data1/pro101bak/oracledb

                      1.8T  591G  1.1T  35% /data/app/oracle/backup/rmanback

 

[oracle@pro101 rmanback]$ cd  /data/app/oracle/backup/archivelog/

[oracle@pro101 archivelog]$ du -sh

735G

為何歸檔日誌會這麼大呢, 此資料庫相當於一個類似的OLAP的系統,其主要功能:日常就是一些jobs負責資料的批次錄入,以及運營的提取資料,開發人員對一些資料在後臺進行update,  檢視了一下歸檔日誌的情況, 發現歸檔一個月左右的歸檔都沒有刪除,於是檢視了一下備份策略:

[oracle@pro101 ~]$ crontab -l

30 18 * * 0 /home/oracle/script/rmanback.sh >/dev/null

30 18 * * 6 /home/oracle/script/expback.sh >/dev/null

透過詳細的指令碼,可知此資料庫的進行了兩次有效備份,

(1)                  每個星期天的1830 對資料庫進行一次rman的全備, 並刪除歸檔, 備份冗餘策略為預設的1

(2)                  每個星期六的1830 對資料進行一次資料泵 的邏輯匯入匯出

 如果備份能正常進行,沒理由歸檔日誌不會刪除啊? 仔細看了一下rman  以及 expdp產生的日誌,發現expdp正常, rman log只到6月份的,初步確認是由於nfs 掛載後,rman就沒有正常工作了。

 

因此需要對歸檔日誌進行處理, 要徹底的解決 此問題, 還需要對備份策略作出指令碼變更,在做策略改動前, 先對資料庫做一個完整的全備,利用rman刪除一些沒有必要的歸檔, 備份後:

[oracle@pro101 rmanback]$ ll

total 79477760

-rw-r----- 1 oracle oinstall    45515264 Jul 12 05:20 arch_MOSTDT4_20110712_503

-rw-r----- 1 oracle oinstall 25244606464 Jul 12 04:44 fullback_MOSTDT4_20110712_498

-rw-r----- 1 oracle oinstall 27282857984 Jul 12 05:07 fullback_MOSTDT4_20110712_499

-rw-r----- 1 oracle oinstall 28730761216 Jul 12 05:19 fullback_MOSTDT4_20110712_500

-rw-r----- 1 oracle oinstall     1851392 Jul 12 04:44 fullback_MOSTDT4_20110712_501

-rw-r----- 1 oracle oinstall       98304 Jul 12 04:44 fullback_MOSTDT4_20110712_502

[oracle@pro101 rmanback]$ df  -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sdb1             284G   91G  180G  34% /

/dev/sda3             1.7T  856G  783G  53% /data

/dev/sda1              99M   12M   83M  12% /boot

tmpfs                 7.9G     0  7.9G   0% /dev/shm

由於前期專門做過一次 rman增量備份的部署,於是整個過程就比較簡單了,修改了一下incremental backup 指令碼, 將以前的備份策略變更為:

[oracle@pro101 logs]$ crontab -e

30 0 * * * /home/oracle/script/incremental_backup.sh >/dev/null 2>&1 &

#30 18 * * 6 /home/oracle/script/expback.sh >/dev/null   //取消資料泵的匯入匯出

 

經過測試  指令碼執行透過, 後續還得觀察一下備份空間情況。 在此對指令碼中的備份策略作一個詳細的說明:

***************************************************************

1 . Sun          incremental level =0

2.Mon          incremental level=2

3.Tue           incremental level=2

4.Wed          incremental level=2

5.Thu           incremental level=1

6.Fri            incremental level=2

7.Sat            incremental level=2

****************************************************************

由於每天的備份發生與凌晨,故障後需要恢復的備份:

星期天故障:  1

星期一故障:  1+2

星期二故障:  1+2+3

星期三故障:  1+2+3+4

星期四故障:  1+5

星期五故障:  1+5+6

星期六故障:  1+5+6+7

故為了確保資料恢復能順利完成,備份儲存策略需要至少設定 7天以上, 當然可以手工對備份進行調整

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

相關文章