和力記易:論Oracle數(shù)據(jù)庫(kù)的四大備份方式
和力記易 發(fā)表于:13年07月01日 13:30 [來(lái)稿] DOIT.com.cn
Oracle作為目前世界上市場(chǎng)份額占有率最高的大型通用數(shù)據(jù)庫(kù),在世界上各行各業(yè)的信息化建設(shè)中起著核心首腦的作用。它(軟件自身以及它所依賴運(yùn)行的硬件)一旦出現(xiàn)問(wèn)題,輕則導(dǎo)致業(yè)務(wù)中斷,重則丟失部分?jǐn)?shù)據(jù),嚴(yán)重則全部數(shù)據(jù)不可逆轉(zhuǎn)性損毀!這種情況在信息化越來(lái)越占生產(chǎn)主導(dǎo)地位的今天意味著什么各大CIO都非常清楚,所以他們想盡一切辦法堅(jiān)決杜絕這種情況的發(fā)生!
中國(guó)有句古話,凡事預(yù)則立不預(yù)則廢。這句話在信息化建設(shè)高度發(fā)達(dá)的今天同樣適用。針對(duì)數(shù)據(jù)庫(kù)可能中斷服務(wù)以及丟失數(shù)據(jù)的“預(yù)”就是“備”。針對(duì)Oracle數(shù)據(jù)庫(kù)來(lái)說(shuō),主要有以下四種備份方式。
一、導(dǎo)出/導(dǎo)入(Export/Import)
導(dǎo)出導(dǎo)入是一種最初級(jí)的備份方式,它采用定時(shí)將全量、增量或者差異數(shù)據(jù)以表、用戶或者全庫(kù)為單位導(dǎo)出到某種格式的文件中達(dá)到備份的目的。它作為標(biāo)準(zhǔn)的命令被集成到了Oracle開發(fā)語(yǔ)言中。可以通過(guò)DBA手動(dòng)執(zhí)行備份命令,或者通過(guò)腳本和工具自動(dòng)執(zhí)行。RMAN就是此類工具中的佼佼者,曾經(jīng)有很多DBA在使用。
但它是一種定時(shí)備份的模式,具有明顯的備份時(shí)間窗口。備份間隔內(nèi)仍然存在數(shù)據(jù)丟失的可能,比如每一天做一個(gè)增量備份的話,那么最大會(huì)丟失一天的數(shù)據(jù)。如果是可以允許一段時(shí)間內(nèi)數(shù)據(jù)丟失的業(yè)務(wù),可以采用這種模式。反之只能采用下面的一種備份模式--熱備份。
二、熱備份
對(duì)于熱備份來(lái)說(shuō),故名思議就是剛出爐的數(shù)據(jù)還是熱乎的就開始執(zhí)行備份的操作。實(shí)現(xiàn)熱備份的方式目前主要有兩種方式,邏輯方式和物理方式。
1、邏輯方式
如果把Oracle數(shù)據(jù)庫(kù)比作一個(gè)美女的話,那么實(shí)例庫(kù)就是她的整個(gè)身體,表空間就是她的骨骼,表是她的筋絡(luò),數(shù)據(jù)是她的血肉。視圖、事務(wù)、函數(shù)、pack包等是她身體上毛發(fā)和的飾品。
對(duì)于邏輯方式備份來(lái)說(shuō)就是用一種方式勾勒出了這位美女的模樣,讓人看上去能認(rèn)出就是那位美女,但是仔細(xì)看的話可能又有所不同。
這種勾勒的方式又分為兩種:
1)SQL語(yǔ)句模式
SQL的全稱是,它是一種語(yǔ)言,而不是專指一種數(shù)據(jù)庫(kù)。很多人習(xí)慣把MSSQL簡(jiǎn)稱為SQL,這是不對(duì)的。SQL之前必須加了MS(Microsoft)才能是一種數(shù)據(jù)庫(kù)的名字。
SQL這種語(yǔ)言,大多數(shù)數(shù)據(jù)庫(kù)都支持。Oracle的老大埃里森當(dāng)年也是因?yàn)槭紫戎铝τ趯?duì)SQL語(yǔ)言的支持,才在SQL成為標(biāo)準(zhǔn)后挫敗了很多當(dāng)時(shí)沒(méi)有納入到SQL語(yǔ)言標(biāo)準(zhǔn)范疇內(nèi)的數(shù)據(jù)庫(kù)。
既然Oracle支持SQL語(yǔ)句,那么就可以用SQL語(yǔ)句進(jìn)行邏輯勾勒。我們知道當(dāng)我們提交數(shù)據(jù)的時(shí)候并不關(guān)心是提交到了哪種數(shù)據(jù)庫(kù)里面去了,以什么樣的方式存儲(chǔ)。最終只要能提交成功并能查、改、刪皆可。這些都是通過(guò)SQL語(yǔ)句來(lái)實(shí)現(xiàn)的,它同樣不關(guān)心數(shù)據(jù)庫(kù)的種類和存儲(chǔ)方式。這就意味著我們就可以用SQL語(yǔ)句將數(shù)據(jù)從源端數(shù)據(jù)庫(kù)抽取出來(lái),然后將它裝載在某個(gè)目標(biāo)的數(shù)據(jù)庫(kù)里面。源端數(shù)據(jù)庫(kù)和目標(biāo)端數(shù)據(jù)庫(kù)可以是不一樣的品牌,甚至可以不在同一平臺(tái)上。就如同我們?cè)诠蠢彰琅臅r(shí)候是用油畫布還是國(guó)畫宣紙都不影響最終對(duì)美女的展現(xiàn)。
CDC(Change Data Capture)就是以這種模式對(duì)Oracle進(jìn)行增量備份的,當(dāng)然它更多情況下用以做數(shù)據(jù)整合。
這種模式聽起來(lái)似乎很美,可以不用管平臺(tái)不用管數(shù)據(jù)庫(kù),直接抽取和裝載數(shù)據(jù)庫(kù)。但是要素描我們首先得雇傭一個(gè)畫家,這一塊的投資頗大,就如同CDC價(jià)值不菲一樣。
另外畫家在素描的時(shí)候,美女需要配合。這就如同在執(zhí)行SQL語(yǔ)句的時(shí)候占用了Oracle自身大量的資源,甚至影響到了它的正常運(yùn)行。
其次,在執(zhí)行SQL語(yǔ)言時(shí)對(duì)于SQL語(yǔ)言細(xì)分的組成部分:DDL (數(shù)據(jù)定義語(yǔ)言)、DML (數(shù)據(jù)操作語(yǔ)言)、DCL (數(shù)據(jù)控制語(yǔ)言)和TCL(事務(wù)控制語(yǔ)言)以及特殊的字段比如blob和clob字段等的支持并不完美,效率低下甚至就不支持。
2)日志重做模式
我們用素描的方式來(lái)比喻邏輯備份里面的SQL語(yǔ)句模式,那么對(duì)于歸檔重做的模式我們稱之為復(fù)印。歸檔日志是Oracle獨(dú)有的一種模式,它會(huì)將自己做過(guò)的所有事情的過(guò)程都記錄在里面。如果照著歸檔重新做一遍,則能得到同樣的結(jié)果,這個(gè)結(jié)果是相對(duì)比較接近源生產(chǎn)庫(kù)的。在這里之所以使用“相對(duì)比較接近”是因?yàn)檫是有所差別的,就如彩色照片復(fù)印出來(lái)是黑白的,內(nèi)容看上去差不多,但還是有差別,且存在很多限制。OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)就是兩款Orcle兩款典型的日志重做工具。前者是Oracle收購(gòu)的公司,后者是Oracle企業(yè)版包含的一個(gè)工具。
使用日志重做模式首先采用這種方法數(shù)據(jù)庫(kù)必須至于歸檔模式下,且要是Force Logging(強(qiáng)制記錄日志)狀態(tài)。這才能滿足日志重做的基本條件。因?yàn)镺racle的日志分為OnlineLog(聯(lián)機(jī)日志)和ArchiveLog Log(歸檔日志)。如果寫入的數(shù)據(jù)量較小,那么可以直接對(duì)OnlineLog進(jìn)行重做。但如果寫入的數(shù)據(jù)量很大或者巨大,那么對(duì)OnlineLog進(jìn)行重做是來(lái)不及的,就只有延后對(duì)ArchiveLog Log進(jìn)行重做。而對(duì)于一下NoLogging(無(wú)日志)的數(shù)據(jù)操作就沒(méi)有辦法進(jìn)行重做了,所以必須采用將數(shù)據(jù)庫(kù)模式設(shè)置為Force Logging(強(qiáng)制記錄日志)狀態(tài)。這對(duì)數(shù)據(jù)庫(kù)的使用具有很大的限制。
另外OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)的邏輯Standby模式雖然在源端獲取數(shù)據(jù)是通過(guò)歸檔日志,但是在目標(biāo)端(備份機(jī))上進(jìn)行數(shù)據(jù)還原的時(shí)候是轉(zhuǎn)換成SQL語(yǔ)句來(lái)進(jìn)行的。這就具有了1)中所述使用SQL語(yǔ)句的一些缺點(diǎn)。
2、物理方式
同于我們將SQL邏輯方式比如素描,把日志重做邏輯方式比作復(fù)印,則物理方式就是復(fù)制人。
卷復(fù)制、分割鏡像快照等技術(shù)就是一種常用的物理方式。乍看起來(lái)這種模式要優(yōu)于邏輯方式,但是它的優(yōu)勢(shì)恰恰就是它的劣勢(shì)。就如同我們打得復(fù)制人的比方,在復(fù)制人的時(shí)候必須每一個(gè)染色體每一個(gè)DNA都不能出差錯(cuò)。否則將會(huì)前功盡棄。對(duì)于Oracle這種結(jié)構(gòu)化數(shù)據(jù)來(lái)說(shuō),它的精密性不亞于人體。一旦在物理復(fù)制的時(shí)候不完整或者出錯(cuò),將會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)不可用。所以物理復(fù)制不能是單純的把數(shù)據(jù)庫(kù)當(dāng)作文件進(jìn)行表面復(fù)制,必須是建立在對(duì)Oracle數(shù)據(jù)的邏輯存儲(chǔ)結(jié)構(gòu)深入分析的基礎(chǔ)之上,才能保證復(fù)制出來(lái)的數(shù)據(jù)是100%可用的。
三、冷備份
從前文課件不管是邏輯方式的熱備份還是物理方式的熱備份,它都存在一些問(wèn)題。舉個(gè)例子來(lái)說(shuō):源端數(shù)據(jù)庫(kù)的一個(gè)事務(wù)寫完生產(chǎn)ArchiveLog Log后,ArchiveLog Log轉(zhuǎn)換成SQL語(yǔ)句在備份機(jī)上執(zhí)行,執(zhí)行到一半的時(shí)候正好停機(jī)了。再開機(jī)時(shí)這個(gè)沒(méi)有執(zhí)行完的SQL就有可能導(dǎo)致整個(gè)Oracle數(shù)據(jù)庫(kù)無(wú)法Open。
為了盡可能的避免這種情況,用戶往往在指定的時(shí)間(比如凌晨2-3點(diǎn))將源端數(shù)據(jù)庫(kù)合法Shutdown(關(guān)閉),以確保數(shù)據(jù)庫(kù)在可用的狀態(tài)時(shí)拷貝出一份完成的數(shù)據(jù)出來(lái)。
很明顯拷貝的前提是將數(shù)據(jù)庫(kù)Shutdown,就是說(shuō)業(yè)務(wù)需要停止。所以這種備份叫做冷備份。
四、CDP
SNIA(全球網(wǎng)絡(luò)存儲(chǔ)工業(yè)協(xié)會(huì)StorageNetworkingIndustryAssociation)對(duì)什么是CDP做了明確界定:1、有變化就備份2、至少備份到另外一個(gè)地方3、可以恢復(fù)到任意時(shí)間點(diǎn)。實(shí)現(xiàn)的模式主要有三種:基于塊、基于文件、基于應(yīng)用。
按照這一點(diǎn)來(lái)卡的話ODG的物理Standby模式可以算是。
ODG的物理Standby模式在創(chuàng)建時(shí),使用主庫(kù)進(jìn)行一個(gè)全copy(可以理解為不用shutdown的冷備份)。在此基礎(chǔ)之上以“基于塊”的模式對(duì)數(shù)據(jù)進(jìn)行物理的拷貝和恢復(fù)。此時(shí)目標(biāo)段(備份機(jī))就是完全是源端數(shù)據(jù)庫(kù)的一個(gè)復(fù)制,因?yàn)樗荗racle自身的工具,所以它深入了解Oracle自身的邏輯結(jié)構(gòu),從而有效的避免了物理復(fù)制存在數(shù)據(jù)庫(kù)不可用的問(wèn)題。
但是對(duì)于CDP里面的第3點(diǎn):可以恢復(fù)到任意時(shí)間點(diǎn)。它必須借助Oracle的另外一個(gè)功能Oracle Undo(撤消日志)。
我們知道Oracle的中文名是甲骨文,它一定意義上反映了Oracle數(shù)據(jù)庫(kù)操作的難易程度。
ODG的物理Standby模式雖然看起來(lái)很美,但是第一:它只屬于Oracle,第二:需要專業(yè)DBA配置和維護(hù)。這就使得它的使用成本過(guò)高而成為“王謝堂前燕” ,難以飛入“尋常百姓家”。
針對(duì)這種情況,國(guó)內(nèi)老牌CDP容災(zāi)備份廠家--北京和力記易科技有限公司在深入研究Oracle數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)十余家的基礎(chǔ)之上,集ODG的邏輯Standby和Undo功能于一體。以最簡(jiǎn)單的圖形化界面實(shí)現(xiàn)了CDP實(shí)時(shí)備份和任意時(shí)間點(diǎn)回退。不但支持Oracle,還是支持Windows、Linux、Unix下的MSSQL\Oracle\DB2\Sybase\Informix\Interbase\人大金倉(cāng)\神舟通用等數(shù)據(jù)庫(kù),支持主流的雙機(jī)集群環(huán)境:MSCS、Lifekeeper、NEC、PlusWell、Oracle RAC+ASM等模式。真正實(shí)現(xiàn)了“舊時(shí)王謝堂前燕,飛入尋常百姓家”。
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶寄語(yǔ) | DOIT歷程 | 誠(chéng)聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.