一次 rman 備份策略的調整

wangxiangtao發表於2011-07-12
公司一臺內部oracle 伺服器磁碟空間告警, 檢視了一下情況如下:

[oracle@pro101 rmanback]$ df -h

Filesystem Size Used Avail Use% Mounted on

[@more@]

公司一臺內部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-1052320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章