一、企業(yè)更加關(guān)注數(shù)據(jù)連續(xù)性
我們對(duì)于重要的數(shù)據(jù),提到保護(hù)第一想到的就是備份。通過備份的方式將文件、數(shù)據(jù)庫等重要數(shù)據(jù)做一個(gè)副本。這是一個(gè)簡單易行的方法,而且目前很多企業(yè)里都是如此來實(shí)現(xiàn)的。但是隨著電子業(yè)務(wù)的發(fā)展和依賴,約來越多的IT設(shè)備需要連續(xù)運(yùn)轉(zhuǎn),這樣比以前更容易受到中斷的影響。業(yè)務(wù)的中斷對(duì)不同類型的企業(yè)來說造成的損失有所不同,但眾多的業(yè)務(wù)和客戶數(shù)據(jù)從而受到影響將會(huì)直接導(dǎo)致客戶感受、競爭對(duì)手、法律責(zé)任、企業(yè)信譽(yù)等受到嚴(yán)重影響。隨之而來的損失更是不可估量。
以前我們討論過業(yè)務(wù)的連續(xù)性通過高可用、集群等方式實(shí)現(xiàn),還討論過連續(xù)數(shù)據(jù)保護(hù)(Continuous Data Protection,CDP)。動(dòng)輒百萬的IT投入資金和維護(hù)讓眾多的企業(yè)望而卻步,不得已繼續(xù)使用原始的定期備份方式。在某市的一家武警醫(yī)院,僅有2臺(tái)服務(wù)器實(shí)現(xiàn)高可用技術(shù),但是還是擔(dān)心數(shù)據(jù)的丟失,希望能夠在增加1臺(tái)存儲(chǔ)和一臺(tái)服務(wù)器的情況下實(shí)現(xiàn)數(shù)據(jù)的連續(xù)復(fù)制保護(hù)解決后顧之憂。當(dāng)了解到冗災(zāi)復(fù)制方案時(shí),所需要的預(yù)算資金就把客戶的這一念頭徹底打消了。
在這里我們就是要討論一下如何能夠在最有限的資金投入下也能夠獲得最大的數(shù)據(jù)連續(xù)性的保護(hù)。那么我們要保護(hù)的是什么?保護(hù)級(jí)別是什么?如何能夠?qū)崿F(xiàn)各種各樣的保護(hù)?
總的來看排除業(yè)務(wù)應(yīng)用,所關(guān)注的數(shù)據(jù)無非分為2類:1.普通文件 2.數(shù)據(jù)庫
普通文件是指的能夠隨時(shí)打開的可讀寫的文檔,例如WORD、EXCEL、POWEPOINT等。它的特點(diǎn)是不受其它關(guān)聯(lián)程序的干擾,相對(duì)獨(dú)立的個(gè)體所承載的信息量少,我們隨時(shí)打開、編輯、保存和關(guān)閉。備份與復(fù)制過程都簡單,只要文件不被讀寫改變時(shí)都可以完整地保護(hù)單個(gè)文件。普通文件的復(fù)制實(shí)現(xiàn)過程較為簡單,我們不做討論。
數(shù)據(jù)庫通常由庫文件、日志文件、控制文件等組成,而且在工作時(shí)處于程序訪問狀態(tài)和變化狀態(tài),不能通過簡單的復(fù)制、轉(zhuǎn)移實(shí)現(xiàn)備份過程。文件中所包含的數(shù)據(jù)表也無法確保其完整性。因此如何確保數(shù)據(jù)庫的實(shí)時(shí)保護(hù)是很多方案中最為核心的部分。
二、數(shù)據(jù)保護(hù)方法
目前大部分企業(yè)客戶所使用的數(shù)據(jù)庫都是Oracle數(shù)據(jù)庫和SQLSERVER數(shù)據(jù)庫,這兩部分客戶占據(jù)了大部分應(yīng)用。因此基于浪潮存儲(chǔ)的Oralce/SQL數(shù)據(jù)復(fù)制冗災(zāi)方案無疑對(duì)眾多中小型企業(yè)具有很強(qiáng)的吸引力。而對(duì)于我們來說,能夠在極其有限的預(yù)算情況下同樣可以為客戶實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程冗災(zāi)也是非常具備競爭力的。
1.Oracle數(shù)據(jù)的遠(yuǎn)程復(fù)制方案
對(duì)于Oracle數(shù)據(jù)庫本身的企業(yè)版就集成了數(shù)據(jù)復(fù)制功能--Oracle Data Guard,它是管理、監(jiān)控和自動(dòng)化軟件的基礎(chǔ)架構(gòu),它創(chuàng)建、維護(hù)和監(jiān)控一個(gè)或多個(gè)備用數(shù)據(jù)庫,以保護(hù)企業(yè)數(shù)據(jù)結(jié)構(gòu)不受故障、災(zāi)難、錯(cuò)誤和崩潰的影響。
Data Guard 使備用數(shù)據(jù)庫保持為與生產(chǎn)數(shù)據(jù)庫在事務(wù)上一致的副本。這些備用數(shù)據(jù)庫可能位于距生產(chǎn)數(shù)據(jù)中心數(shù)千英里的遠(yuǎn)程災(zāi)難恢復(fù)站點(diǎn),或者可能位于同一城市、同一校園乃至同一建筑物內(nèi)。當(dāng)生產(chǎn)數(shù)據(jù)庫由于計(jì)劃中斷或意外中斷而變得不可用時(shí),Data Guard 可以將任意備用數(shù)據(jù)庫切換到生產(chǎn)角色,從而使與中斷相關(guān)的停機(jī)時(shí)間減到最少,并防止任何數(shù)據(jù)丟失。
災(zāi)難恢復(fù)和高可用性。Data Guard提供了一個(gè)高效和全面的災(zāi)難恢復(fù)和高可用性解決方案。易于管理的轉(zhuǎn)換和故障切換功能允許主數(shù)據(jù)庫和備用數(shù)據(jù)庫之間的角色轉(zhuǎn)換,從而使主數(shù)據(jù)庫因計(jì)劃的和計(jì)劃外的中斷所導(dǎo)致的停機(jī)時(shí)間減到最少。
完善的數(shù)據(jù)保護(hù)。使用備用數(shù)據(jù)庫,Data Guard 可保證即使遇到不可預(yù)見的災(zāi)難也不會(huì)丟失數(shù)據(jù)。備用數(shù)據(jù)庫提供了防止數(shù)據(jù)損壞和用戶錯(cuò)誤的安全保護(hù)。主數(shù)據(jù)庫上的存儲(chǔ)器級(jí)物理損壞不會(huì)傳播到備用數(shù)據(jù)庫上。同樣,導(dǎo)致主數(shù)據(jù)庫永久損壞的邏輯損壞或用戶錯(cuò)誤也能夠得到解決。最后,在將重做數(shù)據(jù)應(yīng)用到備用數(shù)據(jù)庫時(shí)會(huì)對(duì)其進(jìn)行驗(yàn)證。
有效利用系統(tǒng)資源。備用數(shù)據(jù)庫表使用從主數(shù)據(jù)庫接收到的重做數(shù)據(jù)進(jìn)行更新,并且可用于諸如備份操作、報(bào)表、合計(jì)和查詢等其他任務(wù),從而減少執(zhí)行這些任務(wù)所必需的主數(shù)據(jù)庫工作負(fù)載,節(jié)省寶貴的 CPU 和 I/O 周期。使用邏輯備用數(shù)據(jù)庫,用戶可以在模式中不從主數(shù)據(jù)庫進(jìn)行更新的表上執(zhí)行數(shù)據(jù)處理操作。邏輯備用數(shù)據(jù)庫可以在從主數(shù)據(jù)庫中對(duì)表進(jìn)行更新時(shí)保持打開,并可同時(shí)對(duì)表進(jìn)行只讀訪問。最后,可以在維護(hù)的表上創(chuàng)建額外索引和物化視圖,以獲得更好的查詢性能和適應(yīng)特定的業(yè)務(wù)要求。
靈活的數(shù)據(jù)保護(hù)功能,從而在可用性與性能要求之間取得平,Oracle Data Guard 提供了三種模式:
最大保護(hù),確保零數(shù)據(jù)丟失,完全同步。在寫入Standby Database后,Primary Database才能繼續(xù)下一個(gè)寫入操作,如果網(wǎng)絡(luò)等故障也會(huì)影響Primay Database,對(duì)主機(jī)的性能影響較大。
最高可用性,接近于零數(shù)據(jù)丟失,在網(wǎng)絡(luò)故障的發(fā)生時(shí),Primary Database可以正常操作,在恢復(fù)后再將數(shù)據(jù)寫入到Standby Database。
最高性能,異步寫入數(shù)據(jù)到Standby Database。Primay Database無需等待寫操作完成即可進(jìn)行下一個(gè)事務(wù)處理。如果主數(shù)據(jù)庫與一個(gè)或更多個(gè)備用數(shù)據(jù)庫之間的連接丟失(例如,由于網(wǎng)絡(luò)問題),則在主數(shù)據(jù)庫上生成的重做數(shù)據(jù)將無法發(fā)送到那些備用數(shù)據(jù)庫上。一旦重新建立連接,Data Guard 就自動(dòng)檢測(cè)丟失的存檔日志序列(或間隔),并將必要的存檔日志自動(dòng)傳輸?shù)絺溆脭?shù)據(jù)庫中。備用數(shù)據(jù)庫將重新與主數(shù)據(jù)庫同步,而無需管理員的任何手動(dòng)干預(yù)。
了解了這些功能和特點(diǎn)后,我們可以通過靈活的配置來幫助企業(yè)在系統(tǒng)性能要求和數(shù)據(jù)保護(hù)之間取得平衡。
Data Guard 進(jìn)程:簡單的集中式管理。Data Guard Broker 使一個(gè) Data Guard 配置中的多個(gè)數(shù)據(jù)庫間的管理和操作任務(wù)自動(dòng)化。Broker 還監(jiān)控單個(gè) Data Guard 配置內(nèi)的所有系統(tǒng)。管理員可以使用 Oracle Enterprise Manager 或 Broker 自己專用的命令行界面 (DGMGRL) 來利用這個(gè)集成的管理框架。
與 Oracle 數(shù)據(jù)庫集成。 Oracle Data Guard 是作為 Oracle 數(shù)據(jù)庫(企業(yè)版)的一個(gè)完全集成的功能提供的,無需任何額外費(fèi)用。
2.SQLSERVER數(shù)據(jù)的遠(yuǎn)程復(fù)制方案
針對(duì)Microsoft的SQLSERVER數(shù)據(jù)庫也能夠利用數(shù)據(jù)庫本身的管理功能實(shí)現(xiàn)數(shù)據(jù)復(fù)制。通過使用SQLSERVER復(fù)制技術(shù),用戶可以將一份數(shù)據(jù)發(fā)布到多臺(tái)服務(wù)器上,從而使不同的服務(wù)器用戶都可以在權(quán)限的許可的范圍內(nèi)共享這份數(shù)據(jù)。復(fù)制技術(shù)可以確保分布在不同地點(diǎn)的數(shù)據(jù)自動(dòng)同步更新,從而保證數(shù)據(jù)的一致性。
SQL復(fù)制的基本元素包括:出版服務(wù)器、訂閱服務(wù)器、分發(fā)服務(wù)器、出版物、文章 。
SQL SERVER 主要采用出版物、訂閱的方式來處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負(fù)責(zé)發(fā)表數(shù)據(jù)(在Oracle中就成為Primary Database盡管概念有所差別)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器(在Oracle中稱為Standby Database),分發(fā)服務(wù)器包含有一個(gè)分發(fā)數(shù)據(jù)庫,可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器。