陳利平
【關鍵詞】Oracle 數據遷移 集群
1. 引言
Oracle 數據庫是鋼鐵企業普遍使用的一種大型數據庫系統,作為數據庫基礎管理層面的運維管理,是保證數據庫系統穩定且高性能運行的重要環節。運維管理包括操作系統層面,和數據庫系統層面。操作系統層面的數據庫備份,數據庫遷移,集群管理,以及基礎運維監控,是鋼鐵企業在Oracle 運維管理方面重要的部分。
2. 自帶備份功能應用
備份是數據庫運維管理中重要的項目,Oracle 數據庫系統自帶了強大的備份管理功能,利用這些自帶的功能,結合操作系統的計劃任務,就可以完整的實現企業需要的備份需求。實現Oracle 數據庫的備份,主要是通過RMAN 備份,以及數據泵的導出功能,在有條件的企業,建議每個月做一次完整的數據庫離線備份。
RMAN 備份是Oracle 自帶的專用的備份,許多的備份軟件,實際上也是調用RMAN 的備份接口,結合備份軟件的自動化管理功能,實現數據庫的備份。在不使用備份軟件的情況下,利用操作系統的計劃任務,結合OracleRMAN 的備份腳本,可以實現完整的備份功能,包括規定時間窗口和時間周期下的,數據庫的完整在線備份,增量備份,以及差異備份。實現歸檔日志和數據庫備份的保留時間周期規劃,自動刪除歸檔日志,自動刪除歸檔日志備份和數據庫備份。
數據泵技術主要是實現數據庫中的數據的移動,具備邏輯備份和邏輯恢復的能力,通過操作系統層面計劃任務,調用數據泵導出的方式,可以實現基礎的數據庫備份功能,在操作系統的腳本中,對數據泵的導出文件進行定期的刪除,實現數據庫備份的周期管理。
3. 數據遷移應用
3.1 異構平臺遷移
Oracle 的異構平臺數據庫遷移,主要是Unix,Linux,Windows 之間的互相遷移。鋼鐵企業在信息化建設的過程中,從最初的大規模使用Windows 平臺,逐漸的將業務遷移到Unix 和Linux 平臺;近幾年,由于Unix 小型機平臺的成本較高,同時由于OracleRAC 技術的成熟和普及,在Unix 平臺上的Oracle 數據庫系統,開始遷移到Linux 系統平臺上;隨著虛擬化的普及,Oracle 數據庫系統也發展到了虛擬化平臺,但是虛擬化平臺上的相應的操作系統,主要還是使用Linux 系統。
在異構平臺遷移時,可以使用數據泵的導入導出功能,DataGuard(數據衛士),RMANConvert,以及按照數據庫中表的內容傳輸,等。DataGuard 是獨立的產品,主要應用的手段還是數據泵和RMAN 兩種技術。
數據泵的方式,由于是運行在服務器端,可以做到一定程度的版本兼容性,但是,仍然要明確Oracle 官方的兼容性說明。用數據泵的方式,為了保證數據的一致性,數據庫需要處于離線狀態。數據泵是邏輯上的數據移動,可以確保異構平臺的數據遷移的兼容性。
RMAN 備份遷移數據庫的方式,需要用到CONVERT 轉換參數,使用跨平臺傳輸表空間,平臺之間可以是不同的字節順序,即ENDIAN_FORMAT。當源平臺和目的地平臺的字節順序不同,源平臺要傳輸表空間下的數據文件的字節存儲順序,需要轉換成和目的平臺字節順序相同。
3.2 同構平臺遷移
同構平臺的遷移,仍然可以通過數據泵,RMAN 來進行。在離線的情況下,Unix 和Linux 的同構平臺遷移,可以直接使用拷貝數據庫文件的方式進行。同構平臺的遷移,在相同Oracle 版本的前提下,不存在數據庫的兼容性問題。
3.3RAC 架構遷移
Oracle 數據庫在采用RAC 集群時,會使用ASM(自動存儲管理)來實現磁盤卷的管理。ASM 提供了以平臺無關的文件系統、邏輯卷管理以及軟RAID 服務。由于數據庫文件存儲在ASM 卷組中,給RAC 系統的遷移帶來了較大的困難。RAC 系統架構的數據庫遷移,一般使用數據泵或RMAN 的方式,而目標數據庫需要完整搭建后,將數據庫的內容遷移到搭建好的空數據庫環境里。
3.4 測試環境搭建
測試環境的搭建,由于對數據環境的一致性要求沒有那么高,可以在不停數據庫的情況下,使用數據泵或RMAN 的方式。測試環境,一般對系統穩定性的要求不會太高,有時為了達到盡快測試的目的,會將測試系統搭建在虛擬化平臺、性能不高的PC 服務器,或者性能較好的臺式電腦上。測試環境的操作系統,一般會選用Linux 或Windows,以單機的方式運行。鋼鐵企業的實際情況,多數以UNIX 或Linux 下的RAC 架構到Windows 或Linux 的單機架構為主也有單機生產數據庫到單機測試數據庫的情況。RAC 數據庫到單機數據庫的測試環境搭建,一般都會使用數據泵在線導出的方式,而不會去使用RMAN 轉換字節順序的方式。
4. 集群環境下的應用
Oracle 數據庫系統的集群環境,包括兩種主要的架構,RAC 集群和操作系統級的雙機熱備架構。操作系統級的雙機熱備架構,同時只能有一個主應用在線,另一個應用處于熱備狀態,底層的數據庫文件,同時只能被一個應用系統讀寫。RAC 集群的底層數據庫是同時共享給上層的應用系統,應用系統可以有多個,并且可以實現負載均衡的同時讀寫。所以,在鋼鐵企業的重要的核心業務系統上,普遍使用的是Oracle的RAC 集群架構。
在關閉OracleRAC 數據庫時, 如果是逐個通過SHUTDOWN 命令關閉數據庫節點,必須每個節點都執行SHUTDOWN 操作,不然數據庫實際上只在執行了命令的節點停下來,其他沒有執行命令的節點,并沒有完全停下來。所以要所有的節點都執行SHUTDOWN 命令才可以。
在RAC 集群管理時,主要用到CRSCTL 和SRVCTL 兩個命令,CRSCTL 命令,是用于集群層的管理;而SRVCTL命令,是用于集群層之下,集群內的各項服務資源的管理。
操作系統級的雙機集群,在實現上有兩種方式,一種是不使用RAC 架構的雙機熱備,一種是RAC 架構和雙機熱備結合方式。RAC 和雙機熱備結合的方式,不推薦使用,因為多了一層操作系統級的資源的調度,而實際上RAC 本身已經具備了強大的集群能力。單純操作系統級的雙機熱備,直接利用集群軟件的管理功能即可,但由于同時只有一個節點在線,會浪費一個節點的硬件資源,并且節點切換時會有時間的損失。
在使用RAC 架構和雙機熱備結合的方式時,需要明確操作系統級的雙機切換腳本的資源控制,配置為雙機啟動后,可以實現在硬件節點啟動后,自動的以Oracle 數據庫RAC資源啟動的方式,全自動化的啟動數據庫。
5. 結束語
數據已經成為鋼鐵企業的核心資源,數據庫作為存儲數據的重要載體,已經成為鋼鐵企業的核心基礎平臺。深入掌握鋼鐵企業普遍使用的Oracle 數據庫系統,將Oracle 數據庫系統穩定、可靠、高效的特點充分的發揮,為鋼鐵企業信息化建設奠定牢固的基礎。