為了最大限度保障數據的安全性,同時能在不可預計災難的情況下保證數據的快速恢復,需要根據數據的類型和重要程度制定相應的備份和恢復方案。
在這個過程中,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卡,不要和業務或存儲共用