盛哥學習 Data Guard 第一篇《先了解大概》
第一篇 先了解大概
我剛接觸DG的時候認為就是2個字母組合並不知道是2個單詞的縮寫(多麼悲催)
上網百度後才知哦高科技啊,Data Gurad 資料容災備份技術,以前叫standby database,從字面上看有人也叫他“資料衛士”,DG是一種oracle給出的高可用性解決方案屬於儲存級的HA技術。有人想問什麼叫“儲存級的HA技術”是不是還有其他級的HA技術,似的!!!大家耳熟能詳的聽說過RAC吧,這就可成為“例項級的HA技術”。不同點在於DG是解決儲存單點故障的HA技術,RAC是解決例項單點故障的HA技術,有人會想的如果組合起來使用是不是更加完美了,呵呵真是思路開闊,回答的就是完美,絕對沒問題。先做了開場白,也跟大家混個臉熟,我本名叫劉盛,圈子裡的人都叫“盛哥”估計是因為好記:)ITpub_id:leonardin,QQ 40354446 blog:http://space.itpub.net/26686207 口號:分享知識 收穫快樂
一 Data Guard 架構
Data Guard是怎麼組成的呢?或者說如何構建一個完整DG呢???
Data Guard是一個系統是由primary database(主庫) standby database(備庫)組成的。一個主庫最多可帶9個備庫還可級聯。備庫的位置可分佈在不同的地域,例如Data Guard Policy 策略第一套 備庫可放在同機房 第二套備庫可放在同城機房 第三套備庫可放在異地機房,這就是我們常說的三保險策略。只要網路環境好,DG對地理條件是沒有限制的。現在支援的作業系統Linux UNIX Solaris windows(單程式程式,實際用的很少,不建議使用),那麼DG管理方式呢?在生產中,主要有2中方式去管理,第一採用sqlplus命令列的方式去管理(實際生產中用的很多),第二採用Grid Control (外國朋友非常熱衷於這個)。
primary database(主庫):就是為我們生產環境提供主要支援的資料庫,是open狀態可任意操作。即可以是單例項也可以是RAC結構
standby database(備庫):就是當我們主庫出現問題不能對外提供服務的時候,坐冷板凳的我們立刻顯示出了重要性,馬上替換成主角繼續對外提供服務。即可以是單例項也可以是RAC結構。
Data Guard種類:主要分為2類,一類是物理standby庫,另一類是邏輯standby庫。如何區分這2種備庫,各有什麼特點,在什麼業務中使用,下面我會一一介紹。
物理Data Guard:
Concept:基於資料塊應用的,在備庫中透過redo日誌重演資料變化,物理的效率高,因為redo直接應用底層資料塊(也就是相當於塊對塊的copy),連塊的位置都是一樣的(預設情況下),主庫有什麼備庫就有什麼。當備庫正在應用redo時資料庫不能為open狀態
Read-only 模式
Select open_mode from v$database; 檢視到read-only,這時候說明資料庫為“只讀模式”,當備庫為read only模式時,能夠對外提供查詢服務和備份服務例如提供報表查詢服務,相當於減輕了主庫的壓力,此時備庫只能接收redo日誌不能應用日誌(在10G之前是這樣,11G就能active備庫了,技能在open時接收同時也能應用日誌了)。舉個小例子,我們可以設計成主庫只負責寫入資料,備庫只負責查詢資料,這樣便平衡了應用負載。如果要想應用日誌必須把狀態轉變為mount此時只能應用不能被查詢了,你可以根據情況在這2種狀態間進行轉換。
Read-write 模式
Select open_mode from v$database; 檢視到read-write,這時候說明資料庫為“讀寫模式”,當備庫為read write模式時,備庫將暫停接收主庫的redo日誌,此時2邊的日誌數就不能保持同步了,當然備庫也就失去了資料保護和容災恢復的功能了。那什麼時候會用到呢。當我們需要在資料庫上做一些操作,但一時不能直接在主庫上操作時,可以臨時把備庫調整為“read-write”(此時要把閃回開啟)等操作完之後閃回到初始狀態,Data Guard會自動開始同步不需要重建備庫。
總結物理Data Guard,提供了一個安全且高效的容災恢復高可用方案,既非常方便的角色之間的切換,又非常的自動化(它會自己探測當前的狀態和日誌應用情況)。可以保證在就算9.11 發生了資料也不會丟失。物理的效率高因為直接對底層資料塊的應用,就像照鏡子,主庫的哪個塊發生了變化備庫的哪個塊也就發生了變化。還可以減輕主庫的壓力,讀寫分離,平衡負載。
邏輯Data Guard:
Concept:基於SQL程式碼應用,邏輯Data Guard只是說明在邏輯層面上與主庫相同,物理結構可以不同。流程redo-> 解析-> SQL語句(DML DDL)->應用在備庫,也正因為有這樣的特性備庫可以以read-write模式開啟,一邊應用日誌一邊在本機操作。缺點,邏輯的效率低,因為解析SQL語句需要消耗大量系統資源。邏輯Data Guard對一些資料型別和一些ddl、dml不提供支援。
邏輯Data Guard 特點概述
1.因為可以在物理結構上不同,因此我們能在備庫上建立額外的一些主鍵、索引、臨時表等提高查詢效能,還能建立額外的使用者user,來支援特定業務的需求。
2.備庫可以在應用日誌的同時處於open狀態,而應用的那些表處於只讀狀態。你可以在備庫上額外的做一些臨時操作(好比備庫>主庫,包含的意思)同時對外提供報表查詢服務,減輕了主庫的壓力
3.邏輯Data Guard可以實現跨平臺的升級,但物理Data Guard卻力不從心。
二 Data Guard三種保護模式
Oracle Data Guard為我們提供了非常人性化的三種保護模式,其目的應用於不同的保護級別和場合,存在的目的就是讓我們的資料庫,健健康康活著,創造出自己的價值
1)保護最大化:主庫與備庫實時同步資料,如果主庫掛了,備庫也不能前進,等主庫好了,備庫才能前進(在寫入主庫的redo日誌時同時寫入備庫redo日誌,並且保證至少有一個備庫redo日誌可用【當你有多個備庫時】),最大限度的保證資料的完整性,不允許丟資料。實際生產很少用
2)可用最大化:主庫與備庫實時同步資料,當網路或備庫出現問題時,不影響主庫的工作
而是轉換為“效能最大化”模式,等備庫恢復正常後,再轉換為可用最大化模式。實際生產很少用
3)效能最大化:主庫與備庫是非同步傳輸資料(定期傳日誌),保證主庫的效能最好,如果主庫掛了,盡最大努力恢復備庫。實際生產很多用
總結:最大保護和最大可用都需要至少一個備庫的redo日誌可用。最大效能有可能丟資料,只能盡最大努力去恢復備庫
三 說說Data Guard 優點
1.資料保護
2.容災恢復
3.靈活平衡效能和保護最佳點
4.高效利用系統資源
5.均衡負載降低主庫壓力
6.角色狀態自動恢復
四 硬體、作業系統、引數注意事項
1. 主庫和備庫必須是同一個平臺。32位或者64位。X86 或者小機架構
2. 作業系統必須是同一個廠家的,但作業系統的版本號可以不同。比如redhat 5 和redhat 4可以組成一組Data Guard
3. Oracle企業版才支援Data Guard功能
4. 主備庫的compatible引數必須一致
5. 主備庫的管理員密碼必須一致
6. 主備庫都要在歸檔模式下
7. 主備庫都可以是單例項或者RAC模式
8. 主備庫可以搭建在一臺主機上,需要注意各自的日誌目錄和資料目錄
9. 底層採用相同的儲存模式Filesystem、ASM、OMF
10. 主庫必須設定Force logging引數(不管什麼操作都生成日誌)
五 日誌的傳輸模式LGWR 和ARCH
ARCH:當我採用此模式傳輸日誌的話,主庫觸發ARCH程式後把歸檔資料傳輸到備庫,此時備庫接受到歸檔資料後才能應用。Arch模式不寫standby logfile,直接儲存歸檔。
LGWR:當我們採用此模式傳輸日誌的話,主庫觸發LGWR程式後把重做資料傳輸到備庫,此時備庫接受到重做資料後預設並不應用,等形成歸檔日誌後,應用歸檔日誌。如果開啟real time【實時應用】選項則接受重做資料後,直接應用standby logfile。為了保證資料庫的事物一致性兩邊必須要有歸檔日誌。
六 角色轉換
Data Guard中有2中角色一個是 primary 一個是standby,所謂的轉換是在這2個角色間切換
兩種切換模式
switchover:主備庫可以順利的切換角色,主變成備,備變成主,不會破壞Data Guard架構
failover:放棄式切換,當主庫出現緊急問題又不能及時修復,啟動備庫切換成主庫,主庫立刻脫離Data Guard架構,當有多個備庫時,其中一臺備庫成為主庫後,其他備庫均失效。
小結:現在基本上對Data Guard的框架、術語、名詞解釋大致通講了一遍,後續慢慢的再深入的講開、擴大、挖深、提精。敬請期待。
leonarding
2012.5.8
於天津&夏
QQ 40354446
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-723085/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 盛哥學習 Data Guard 第二篇《物理standby準備和建立》
- 盛哥學習 Data Guard 第三篇《物理standby之switchover 無損切換》
- 盛哥學習 Data Guard 第四篇《物理standby之failover 丟棄切換》AI
- [Data Guard]Oracle10g Data Guard學習筆記(一)Oracle筆記
- [Data Guard]Oracle10g Data Guard學習筆記(二)Oracle筆記
- [Data Guard]Oracle10g Data Guard學習筆記(三)Oracle筆記
- 官方文件學習:data guard broker
- Data Guard 學習之引數設定
- Data Guard學習之物理standby建立步驟
- 需要了解的Data Guard理論知識(一)
- 需要了解的Data Guard理論知識(二)
- 需要了解的Data Guard理論知識(三)
- DATA GUARD部署模式——DATA GUARD概念和管理模式
- 學習Vue3.0,先來了解一下ProxyVue
- 介紹ORACLE DATA GUARD——DATA GUARD概念和管理Oracle
- Data guard搭建
- oracle data guard!!Oracle
- Data Guard Broker系列之二:Data Guard Broker配置實戰
- DATA GUARD 簡介
- Data Guard 建立(ASM)ASM
- Oracle Data Guard配置Oracle
- Oracle 11g Data Guard Enabling Active Data GuardOracle
- 入行學習前端,先來了解一下Web前端發展史前端Web
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- 單機搭建Data Guard
- Active Data Guard初探(一)
- DATA GUARD架構(一)架構
- Oracle Data Guard 介紹Oracle
- Data Guard Wait EventsAI
- physical data guard 的原理
- ORACLE Data Guard--IOracle
- data guard switchover on solaris 10
- 技術白皮書:Oracle Data Guard 11gOracle Data Guard 理論知識OracleGo
- 學習 Shell Scripts(轉載鳥哥)
- Jquery data()學習jQuery
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle