1. 程式人生 > 其它 >Oracle 備份與恢復常見的七大問題

Oracle 備份與恢復常見的七大問題

為了最大限度保障資料的安全性,同時能在不可預計災難的情況下保證資料的快速恢復,需要根據資料的型別和重要程度制定相應的備份和恢復方案。

在這個過程中,DBA的職責就是要保證資料庫(其它資料由其它崗位負責)的高可用和高效能,以下典型問題及解答可供參考。

1、Oracle的幾種備份方式簡介

備份就是把資料庫複製到轉儲裝置的過程。其中,轉儲裝置是指用於放置資料庫副本的磁帶或磁碟,備份是一份資料副本。

從物理與邏輯的角度來看,備份可以分為物理備份和邏輯備份。


物理備份:
對資料庫作業系統的物理檔案(資料檔案,控制檔案和日誌檔案)的備份。物理備份又可以分為離線備份(冷備份)和聯機備份(熱備份),前者是在關閉資料庫的時候進行的,後者是以歸檔日誌的方式對執行的資料庫進行備份。可以使用oracle的恢復管理器(RMAN)或作業系統命令進行資料庫的物理備份。


邏輯備份:
對資料庫邏輯元件(如表和儲存過程等資料庫物件)的備份。邏輯備份的手段很多,如傳統的EXP,資料泵(EXPDP),資料庫閃回技術等第三方工具,都可以進行資料庫的邏輯備份。

從資料庫的備份角度,備份可以分為完全備份和增量備份和差異備份。

  • 完全備份:每次對資料庫進行完整備份,當發生資料丟失的災難時,完全備份無需依賴其他資訊即可實現100%的資料恢復,其恢復時間最短且操作最方便。
  • 增量備份:只有那些在上次完全備份或增量備份後被修改的檔案才會被備份。優點是備份資料量小,需要的時間短,缺點是恢復的時候需要依賴以前備份記錄,出問題的風險較大。
  • 差異備份:備份那些自從上次完全備份之後被修改過的檔案。從差異備份中恢復資料的時間較短,因此只需要兩份資料—最後一次完整備份和最後一次差異備份,缺點是每次備份需要的時間較長。

2、Oracle資料庫備份採用哪種備份方式?適用範圍分別是什麼?

RMAN是oracle推薦的資料保護工具,在備份恢復上,RMAN能夠藉助備份資料恢復一段時間範圍內某個時間點資料庫的狀態。此外RMAN在備份恢復的校驗上更加嚴格,最大程度保護資料的完整性、一致性以及適用性,同時也方便備份恢復的統一管理。

EXP/EXPDB,在oracle的定位中,只是一個數據遷移的手段。在備份恢復上,資料泵只能利用備份資料來恢復一個時間點上的資料庫狀態,無法藉助備份資料在一段時間內自由選擇恢復點。在嚴格的意義說,資料泵備份並不能說是一種有效的資料保障措施,這更像是一種臨時的保底操作。

集中化備份管理來說,rman是最有效也是最可靠的方式。資料泵雖然操作簡單,對於資料的持續性保護太弱了。

結合系統的特點,邏輯匯出和RMAN配合使用效果最佳。

3、資料庫的備份與恢復的時間視窗?需要做都那些方面的考慮?



需要著重考慮幾點:

1、備份方式:一般都是FULL+INCR。

2、備份時間視窗:備份的過程中對生產業務(資料庫)壓力是很大的,所以首先應該規劃備份的時間視窗,一般都在晚上。

3、備份流量路徑:確定了備份時間視窗,就想想備份的流量怎麼走。確定好流量路徑,不要影響其他業務。

4、資料保留、克隆:對於重要的資料,不僅需要備份,最好克隆一份。

恢復一般在單獨的恢復環境。恢復驗證週期,一般一個季度內至少挑選各型別備份恢復一次。

4、Rman備份保留天數和保留副本數,這兩種具體有什麼區別,在什麼場景下使用什麼樣的引數設定?

Configure retention policy to recovery window of N days;--表示備份保留N天,即表示oracle可以保證還原到N天內的任意時間點。
CONFIGURE RETENTION POLICY TO REDUNDANCY n--表示備份保留N份。

保留天數主要考慮的方面是:想要把資料庫恢復到歷史的哪一個時間點;保留副本主要考慮的方面是:要針對備份如何做冗餘。

區別就是基於恢復視窗的保留策略緯度不同,看業務的具體需求。

5、在三地兩中心的雙活結構中,資料庫還有備份的必要性嗎?

資料庫雙活了更需要資料庫備份,否則資料庫邏輯錯誤,一損俱損。多活只能保障單邊故障下業務還可以online(高可用),但對於資料邏輯錯、歷史資料審查、歷史資料分析等問題,多中心多活的結構框架依舊無法克服。

6、在備份和恢復中,Catalog的主要優勢在哪?


rman的備份資訊預設是存放在目標資料庫的控制檔案中的,存放時間由control_file_record_keep_time引數控制,預設是7天。

也可以把rman的備份資訊儲存到一個獨立的資料庫中,叫做recovery catalog,使用recovery catalog可以儲存更長時間的備份資訊,如果想要試用永久保留備份的話,必須使用catalog。

如果只是簡單的備份管理需求的話,建議使用控制檔案即可。

7、Oracle11g資料庫資料量有50T,每天增量50g左右,該如何制定備份方案,如何驗證備份的有效性?


以一次全備份來算,在12h內備份完成,那麼平均備份速度最低是5010241024/12/3600=1210MB/S

按照LTO 5 drive的速度(140MB/S)來算,備份最低的drive數量:1210/140=9

為了保障dive儘量保持最大IO,建議額外關注幾點:

1、datafile較小的話,聚合成較大的bakcup piece;
2、調整read/write blocksize減少讀寫次數,可酌情調整至MB大小;
3、調整備份指令碼,一個channel對應一個backup session,每個channel儘量保障只有一個大塊backup piece寫入;
4、關閉備份軟體和drive的多路複用功能,保證每個dive上只有一個session寫入;
5、備份儘量走單獨的HBA卡,不要和業務或儲存共用。