數據存儲產業服務平臺

和力記易:論Oracle數據庫的四大備份方式

Oracle作為目前世界上市場份額占有率最高的大型通用數據庫,在世界上各行各業的信息化建設中起著核心首腦的作用。它(軟件自身以及它所依賴運行的硬件)一旦出現問題,輕則導致業務中斷,重則丟失部分數據,嚴重則全部數據不可逆轉性損毀!這種情況在信息化越來越占生產主導地位的今天意味著什么各大CIO都非常清楚,所以他們想盡一切辦法堅決杜絕這種情況的發生!

中國有句古話,凡事預則立不預則廢。這句話在信息化建設高度發達的今天同樣適用。針對數據庫可能中斷服務以及丟失數據的“預”就是“備”。針對Oracle數據庫來說,主要有以下四種備份方式。

一、導出/導入(Export/Import)

導出導入是一種最初級的備份方式,它采用定時將全量、增量或者差異數據以表、用戶或者全庫為單位導出到某種格式的文件中達到備份的目的。它作為標準的命令被集成到了Oracle開發語言中??梢酝ㄟ^DBA手動執行備份命令,或者通過腳本和工具自動執行。RMAN就是此類工具中的佼佼者,曾經有很多DBA在使用。

但它是一種定時備份的模式,具有明顯的備份時間窗口。備份間隔內仍然存在數據丟失的可能,比如每一天做一個增量備份的話,那么最大會丟失一天的數據。如果是可以允許一段時間內數據丟失的業務,可以采用這種模式。反之只能采用下面的一種備份模式–熱備份。

二、熱備份

對于熱備份來說,故名思議就是剛出爐的數據還是熱乎的就開始執行備份的操作。實現熱備份的方式目前主要有兩種方式,邏輯方式和物理方式。

1、邏輯方式

如果把Oracle數據庫比作一個美女的話,那么實例庫就是她的整個身體,表空間就是她的骨骼,表是她的筋絡,數據是她的血肉。視圖、事務、函數、pack包等是她身體上毛發和的飾品。

對于邏輯方式備份來說就是用一種方式勾勒出了這位美女的模樣,讓人看上去能認出就是那位美女,但是仔細看的話可能又有所不同。

這種勾勒的方式又分為兩種:

1)SQL語句模式

SQL的全稱是,它是一種語言,而不是專指一種數據庫。很多人習慣把MSSQL簡稱為SQL,這是不對的。SQL之前必須加了MS(Microsoft)才能是一種數據庫的名字。

SQL這種語言,大多數數據庫都支持。Oracle的老大埃里森當年也是因為首先致力于對SQL語言的支持,才在SQL成為標準后挫敗了很多當時沒有納入到SQL語言標準范疇內的數據庫。

既然Oracle支持SQL語句,那么就可以用SQL語句進行邏輯勾勒。我們知道當我們提交數據的時候并不關心是提交到了哪種數據庫里面去了,以什么樣的方式存儲。最終只要能提交成功并能查、改、刪皆可。這些都是通過SQL語句來實現的,它同樣不關心數據庫的種類和存儲方式。這就意味著我們就可以用SQL語句將數據從源端數據庫抽取出來,然后將它裝載在某個目標的數據庫里面。源端數據庫和目標端數據庫可以是不一樣的品牌,甚至可以不在同一平臺上。就如同我們在勾勒美女的時候是用油畫布還是國畫宣紙都不影響最終對美女的展現。

CDC(Change Data Capture)就是以這種模式對Oracle進行增量備份的,當然它更多情況下用以做數據整合。

這種模式聽起來似乎很美,可以不用管平臺不用管數據庫,直接抽取和裝載數據庫。但是要素描我們首先得雇傭一個畫家,這一塊的投資頗大,就如同CDC價值不菲一樣。

另外畫家在素描的時候,美女需要配合。這就如同在執行SQL語句的時候占用了Oracle自身大量的資源,甚至影響到了它的正常運行。

其次,在執行SQL語言時對于SQL語言細分的組成部分:DDL (數據定義語言)、DML (數據操作語言)、DCL (數據控制語言)和TCL(事務控制語言)以及特殊的字段比如blob和clob字段等的支持并不完美,效率低下甚至就不支持。

2)日志重做模式

我們用素描的方式來比喻邏輯備份里面的SQL語句模式,那么對于歸檔重做的模式我們稱之為復印。歸檔日志是Oracle獨有的一種模式,它會將自己做過的所有事情的過程都記錄在里面。如果照著歸檔重新做一遍,則能得到同樣的結果,這個結果是相對比較接近源生產庫的。在這里之所以使用“相對比較接近”是因為還是有所差別的,就如彩色照片復印出來是黑白的,內容看上去差不多,但還是有差別,且存在很多限制。OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)就是兩款Orcle兩款典型的日志重做工具。前者是Oracle收購的公司,后者是Oracle企業版包含的一個工具。

使用日志重做模式首先采用這種方法數據庫必須至于歸檔模式下,且要是Force Logging(強制記錄日志)狀態。這才能滿足日志重做的基本條件。因為Oracle的日志分為OnlineLog(聯機日志)和ArchiveLog Log(歸檔日志)。如果寫入的數據量較小,那么可以直接對OnlineLog進行重做。但如果寫入的數據量很大或者巨大,那么對OnlineLog進行重做是來不及的,就只有延后對ArchiveLog Log進行重做。而對于一下NoLogging(無日志)的數據操作就沒有辦法進行重做了,所以必須采用將數據庫模式設置為Force Logging(強制記錄日志)狀態。這對數據庫的使用具有很大的限制。

另外OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)的邏輯Standby模式雖然在源端獲取數據是通過歸檔日志,但是在目標端(備份機)上進行數據還原的時候是轉換成SQL語句來進行的。這就具有了1)中所述使用SQL語句的一些缺點。

2、物理方式

同于我們將SQL邏輯方式比如素描,把日志重做邏輯方式比作復印,則物理方式就是復制人。

卷復制、分割鏡像快照等技術就是一種常用的物理方式。乍看起來這種模式要優于邏輯方式,但是它的優勢恰恰就是它的劣勢。就如同我們打得復制人的比方,在復制人的時候必須每一個染色體每一個DNA都不能出差錯。否則將會前功盡棄。對于Oracle這種結構化數據來說,它的精密性不亞于人體。一旦在物理復制的時候不完整或者出錯,將會導致整個數據庫不可用。所以物理復制不能是單純的把數據庫當作文件進行表面復制,必須是建立在對Oracle數據的邏輯存儲結構深入分析的基礎之上,才能保證復制出來的數據是100%可用的。

三、冷備份

從前文課件不管是邏輯方式的熱備份還是物理方式的熱備份,它都存在一些問題。舉個例子來說:源端數據庫的一個事務寫完生產ArchiveLog Log后,ArchiveLog Log轉換成SQL語句在備份機上執行,執行到一半的時候正好停機了。再開機時這個沒有執行完的SQL就有可能導致整個Oracle數據庫無法Open。

為了盡可能的避免這種情況,用戶往往在指定的時間(比如凌晨2-3點)將源端數據庫合法Shutdown(關閉),以確保數據庫在可用的狀態時拷貝出一份完成的數據出來。

很明顯拷貝的前提是將數據庫Shutdown,就是說業務需要停止。所以這種備份叫做冷備份。

四、CDP

SNIA(全球網絡存儲工業協會StorageNetworkingIndustryAssociation)對什么是CDP做了明確界定:1、有變化就備份2、至少備份到另外一個地方3、可以恢復到任意時間點。實現的模式主要有三種:基于塊、基于文件、基于應用。

按照這一點來卡的話ODG的物理Standby模式可以算是。

ODG的物理Standby模式在創建時,使用主庫進行一個全copy(可以理解為不用shutdown的冷備份)。在此基礎之上以“基于塊”的模式對數據進行物理的拷貝和恢復。此時目標段(備份機)就是完全是源端數據庫的一個復制,因為它是Oracle自身的工具,所以它深入了解Oracle自身的邏輯結構,從而有效的避免了物理復制存在數據庫不可用的問題。

但是對于CDP里面的第3點:可以恢復到任意時間點。它必須借助Oracle的另外一個功能Oracle Undo(撤消日志)。

我們知道Oracle的中文名是甲骨文,它一定意義上反映了Oracle數據庫操作的難易程度。

ODG的物理Standby模式雖然看起來很美,但是第一:它只屬于Oracle,第二:需要專業DBA配置和維護。這就使得它的使用成本過高而成為“王謝堂前燕” ,難以飛入“尋常百姓家”。

針對這種情況,國內老牌CDP容災備份廠家–北京和力記易科技有限公司在深入研究Oracle數據庫存儲結構十余家的基礎之上,集ODG的邏輯Standby和Undo功能于一體。以最簡單的圖形化界面實現了CDP實時備份和任意時間點回退。不但支持Oracle,還是支持Windows、Linux、Unix下的MSSQLOracleDB2SybaseInformixInterbase人大金倉神舟通用等數據庫,支持主流的雙機集群環境:MSCS、Lifekeeper、NEC、PlusWell、Oracle RAC+ASM等模式。真正實現了“舊時王謝堂前燕,飛入尋常百姓家”。

未經允許不得轉載:存儲在線-存儲專業媒體 » 和力記易:論Oracle數據庫的四大備份方式
精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走