它有無(wú)數(shù)個(gè)名字,,有人叫它dg,,有人叫它數(shù)據(jù)衛(wèi)士,有人叫它data guard,,在oracle的各項(xiàng)特性中它有著舉足輕理的地位,,它就是(掌聲)......................Oracle Data Guard。而對(duì)于我而言,,我一定要親切的叫它:DG(注:主要是因?yàn)榇蛑奖?,。
不少未實(shí)際接觸過(guò)dg的初學(xué)者可能會(huì)下意識(shí)以為dg是一個(gè)備份恢復(fù)的工具。我要說(shuō)的是,,這種形容不完全錯(cuò),,dg擁有備份的功能,某些情況下它甚至可以與primary數(shù)據(jù)庫(kù)完全一模一樣,,但是它存在的目的并不僅僅是為了恢復(fù)數(shù)據(jù),,應(yīng)該說(shuō)它的存在是為了確保企業(yè)數(shù)據(jù)的高可用性,,數(shù)據(jù)保護(hù)以及災(zāi)難恢復(fù)(注意這個(gè)字眼,災(zāi)難恢復(fù)),。dg提供全面的服務(wù)包括:創(chuàng)建,,維護(hù),管理以及監(jiān)控standby數(shù)據(jù)庫(kù),,確保數(shù)據(jù)安全,,管理員可以通過(guò)將一些操作轉(zhuǎn)移到standby數(shù)據(jù)庫(kù)執(zhí)行的方式改善數(shù)據(jù)庫(kù)性能。后面這一長(zhǎng)串大家可以把它們理解成形容詞,,千萬(wàn)不要被其花哨的修飾所迷惑,,要抓住重點(diǎn),要擁有透明現(xiàn)象看本質(zhì)的能力,,如果沒(méi)有那就要努力學(xué)習(xí)去擁有,,下面我來(lái)舉一個(gè)例子,比如我們夸人會(huì)說(shuō)它聰明勇敢善良等等,,這些就屬于形容詞,,不重要,重點(diǎn)在于我們究竟想形容這個(gè)人是好人還是壞人,。然后再回來(lái)看看oracle對(duì)dg功能上的形容,,數(shù)據(jù)保護(hù)和災(zāi)難恢復(fù)應(yīng)該都可以歸結(jié)為高可用性,那么我們可以清晰的定位dg的用途了,,就是構(gòu)建高可用的企業(yè)數(shù)據(jù)庫(kù)應(yīng)用環(huán)境,。
一、Data Guard配置(Data Guard Configurations)
Data Guard是一個(gè)集合,,由一個(gè)primary數(shù)據(jù)庫(kù)(生產(chǎn)數(shù)據(jù)庫(kù))及一個(gè)或多個(gè)standby數(shù)據(jù)庫(kù)(最多9個(gè))組成,。組成Data Guard的數(shù)據(jù)庫(kù)通過(guò)Oracle Net連接,并且有可能分布于不同地域,。只要各庫(kù)之間可以相互通信,,它們的物理位置并沒(méi)有什么限制,至于操作系統(tǒng)就更無(wú)所謂了(某些情況下),,只要支持oracle就行了,。
你即可以通過(guò)命令行方式管理primary數(shù)據(jù)庫(kù)或standby數(shù)據(jù)庫(kù),也可以通過(guò)Data Guard broker提供的專(zhuān)用命令行界面(DGMGRL),,或者通過(guò)OEM圖形化界面管理,。
1.Primary 數(shù)據(jù)庫(kù)
前面提到,Data Guard包含一個(gè)primary數(shù)據(jù)庫(kù)即被大部分應(yīng)用訪問(wèn)的生產(chǎn)數(shù)據(jù)庫(kù),,該庫(kù)即可以是單實(shí)例數(shù)據(jù)庫(kù),,也可以是RAC。
2.Standby 數(shù)據(jù)庫(kù)
Standby數(shù)據(jù)庫(kù)是primary數(shù)據(jù)庫(kù)的復(fù)制(事務(wù)上一致),。在同一個(gè)Data Guard中你可以最多創(chuàng)建9個(gè)standby數(shù)據(jù)庫(kù),。一旦創(chuàng)建完成,,Data Guard通過(guò)應(yīng)用primary數(shù)據(jù)庫(kù)的redo自動(dòng)維護(hù)每一個(gè)standby數(shù)據(jù)庫(kù)。Standby數(shù)據(jù)庫(kù)同樣即可以是單實(shí)例數(shù)據(jù)庫(kù),,也可以是RAC結(jié)構(gòu),。關(guān)于standby數(shù)據(jù)庫(kù),通常分兩類(lèi):邏輯standby和物理standby,,如何區(qū)分,,兩類(lèi)各有什么特點(diǎn),如何搭建,,這方面內(nèi)容就是后面的章節(jié)主要介紹的,,在這里呢三思先簡(jiǎn)單白話一下:
* 邏輯standby
就像你請(qǐng)人幫你素描畫(huà)像,基本器官是都會(huì)有的,,這點(diǎn)你放心,,但是各器官位置啦大小啦膚色啦就不一定跟你本人一致了。
* 物理standby
就像拿相機(jī)拍照,,你長(zhǎng)什么樣出來(lái)的照片就是什么樣,眼睛絕對(duì)在鼻子上頭,?;蛘哒f(shuō)就像你去照鏡子,里外都是你,,哇哈哈,。具體到數(shù)據(jù)庫(kù)就是不僅文件的物理結(jié)構(gòu)相同,甚至連塊在磁盤(pán)上的存儲(chǔ)位置都是一模一樣的(默認(rèn)情況下),。
為什么會(huì)這樣呢,?這事就得從同步的機(jī)制說(shuō)起了。邏輯standby是通過(guò)接收primary數(shù)據(jù)庫(kù)的redo log并轉(zhuǎn)換成sql語(yǔ)句,,然后在standby數(shù)據(jù)庫(kù)上執(zhí)行SQL語(yǔ)句(SQL Apply)實(shí)現(xiàn)同步,,物理standby是通過(guò)接收并應(yīng)用primary數(shù)據(jù)庫(kù)的redo log以介質(zhì)恢復(fù)的方式(Redo Apply)實(shí)現(xiàn)同步。
另外,,不知道大家是否注意到形容詞上的細(xì)節(jié):對(duì)于相機(jī)拍照而言,,有種傻瓜相機(jī)功能強(qiáng)大而操作簡(jiǎn)便,而對(duì)于素描,,即使是最簡(jiǎn)單的畫(huà)法,,也需要相當(dāng)多的練習(xí)才能掌握。這個(gè)細(xì)節(jié)是不是也說(shuō)明邏輯standby相比物理standby需要操作者擁有更多的操作技能呢,?
二,、Data Guard服務(wù)(Data Guard Services)
* REDO傳輸服務(wù)(Redo Transport Services)
控制redo數(shù)據(jù)的傳輸?shù)揭粋€(gè)或多個(gè)歸檔目的地。
* Log應(yīng)用服務(wù)(Log Apply Services)
應(yīng)用redo數(shù)據(jù)到standby數(shù)據(jù)庫(kù),,以保持與primary數(shù)據(jù)庫(kù)的事務(wù)一致,。redo數(shù)據(jù)即可以從standby數(shù)據(jù)庫(kù)的歸檔文件讀取,,也可直接應(yīng)用standby redo log文件(如果實(shí)時(shí)應(yīng)用打開(kāi)了的話)。
* 角色轉(zhuǎn)換服務(wù)(Role Transitions)
Dg中只有兩種角色:primary和standby,。所謂角色轉(zhuǎn)換就是讓數(shù)據(jù)庫(kù)在這兩個(gè)角色中切換,,切換也分兩種:switchover和failover
switchover:轉(zhuǎn)換primary數(shù)據(jù)庫(kù)與standby數(shù)據(jù)庫(kù)。switchover可以確保不會(huì)丟失數(shù)據(jù),。
failover:當(dāng)primary數(shù)據(jù)庫(kù)出現(xiàn)故障并且不能被及時(shí)恢復(fù)時(shí),,會(huì)調(diào)用failover將一個(gè)standby數(shù)據(jù)庫(kù)轉(zhuǎn)換為新的primary數(shù)據(jù)庫(kù)。在最大保護(hù)模式或最高可用性模式下,,failover可以保證不會(huì)丟失數(shù)據(jù),。
注:上述各概念簡(jiǎn)要了解即可,這里寫(xiě)的太簡(jiǎn)單,,不要咬文嚼字,,不然你會(huì)越看越糊涂,相關(guān)服務(wù)在后面章節(jié)將會(huì)有詳細(xì)介紹,,不僅有直白的描述,,還會(huì)有示例,再加上淺顯的圖片,,就算你一看不懂,,再看肯定懂:)
三、Data Guard保護(hù)模式(Data Guard Protection Modes)
對(duì)于Data Guard而言,,其生存邏輯非常簡(jiǎn)單,,好好活,做有意義的事,,做黑多黑多有意義的事:)
由于它提供了三種數(shù)據(jù)保護(hù)的模式,,我們又親切的叫它:有三模:
* 最大保護(hù)(Maximum protection):
這種模式能夠確保絕無(wú)數(shù)據(jù)丟失。要實(shí)現(xiàn)這一步當(dāng)然是有代價(jià)的,,它要求所有的事務(wù)在提交前其redo不僅被寫(xiě)入到本地的online redo log,,還要同時(shí)提交到standby數(shù)據(jù)庫(kù)的standby redo log,并確認(rèn)redo數(shù)據(jù)至少在一個(gè)standby數(shù)據(jù)庫(kù)可用(如果有多個(gè)的話),,然后才會(huì)在primary數(shù)據(jù)庫(kù)上提交,。如果出現(xiàn)了什么故障導(dǎo)致standby數(shù)據(jù)庫(kù)不可用的話,primary數(shù)據(jù)庫(kù)會(huì)被shutdown,。
* 最高性能(Maximum performance):
這種模式提供在不影響primary數(shù)據(jù)庫(kù)性能前提下最高級(jí)別的數(shù)據(jù)保護(hù)策略,。事務(wù)可以隨時(shí)提交,當(dāng)前primary數(shù)據(jù)庫(kù)的redo數(shù)據(jù)也需要至少寫(xiě)入一個(gè)standby數(shù)據(jù)庫(kù),,不過(guò)這種寫(xiě)入可以是不同步的,。
如果網(wǎng)絡(luò)條件理想的話,這種模式能夠提供類(lèi)似最高可用性的數(shù)據(jù)保護(hù)而僅對(duì)primary數(shù)據(jù)庫(kù)有輕微的性能影響,。
* 最高可用性(Maximum availability):
這種模式提供在不影響primary數(shù)據(jù)庫(kù)可用前提下最高級(jí)別的數(shù)據(jù)保護(hù)策略,。其實(shí)現(xiàn)方式與最大保護(hù)模式類(lèi)似,,也是要求所有事務(wù)在提交前必須保障redo數(shù)據(jù)至少在一個(gè)standby數(shù)據(jù)庫(kù)可用,不過(guò)與之不同的是,,如果出現(xiàn)故障導(dǎo)入無(wú)法同時(shí)寫(xiě)入standby數(shù)據(jù)庫(kù)redo log,,primary數(shù)據(jù)庫(kù)并不會(huì)shutdown,而是自動(dòng)轉(zhuǎn)為最高性能模式,,等standby數(shù)據(jù)庫(kù)恢復(fù)正常之后,,它又會(huì)再自動(dòng)轉(zhuǎn)換成最高可用性模式。
最大保護(hù)及最高可用性需要至少一個(gè)standby數(shù)據(jù)庫(kù)redo數(shù)據(jù)被同步寫(xiě)入,。三種模式都需要指定LOG_ARCHIVE_DEST_n初始化參數(shù),。LOG_ARCHIVE_DEST_n很重要,你看著很眼熟是吧,,我保證,,如果你完完整整學(xué)完dataguard,你會(huì)對(duì)它更熟
文章轉(zhuǎn)載自網(wǎng)管之家:http://www./pdb/oracle/200807/146612.html |
|