Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks

          本文作者: junsansi???? 轉(zhuǎn)載網(wǎng)址: http://www.5ienet.com/index.shtml

          ?
          ?
          第一部分基礎(chǔ)1之名詞先混個臉熟? 2007.11.23
          ?
          ??? 它有無數(shù)個名字,有人叫它dg,有人叫它數(shù)據(jù)衛(wèi)士,有人叫它data guard,在oracle 的各項特性中它有著舉足輕理的地位,它就是(掌聲).........Oracle Data Guard。而對于我而言,我一定要親切的叫它:DG(注:主要是因為打著方便)。
          ??? 不少未實際接觸過dg 的初學(xué)者可能會下意識以為dg 是一個備份恢復(fù)的工具。我要說的是,這種形容不完全錯,dg 擁有備份的功能,某些情況下它甚至可以與primary 數(shù)據(jù)庫完全一模一樣,但是它存在的目的并不僅僅是為了恢復(fù)數(shù)據(jù),應(yīng)該說它的存在是為了確保企業(yè)數(shù)據(jù)的高可用性,數(shù)據(jù)保護以及災(zāi)難恢復(fù)(注意這個字眼,災(zāi)難恢復(fù))。dg 提供全面的服務(wù)包括:創(chuàng)建,維護,管理以及監(jiān)控standby 數(shù)據(jù)庫,確保數(shù)據(jù)安全,管理員可以通過將一些操作轉(zhuǎn)移到standby 數(shù)據(jù)庫執(zhí)行的方式改善數(shù)據(jù)庫性能。后面這一長串大家可以把它們理解成形容詞,千萬不要被其花哨的修飾所迷惑,要抓住重點,要擁有透明現(xiàn)象看本質(zhì)的能力,如果沒有那就要努力學(xué)習去擁有,下面我來舉一個例子,比如我們夸人會說它聰明勇敢善良等等,這些就屬于形容詞,不重要,重點在于我們究竟想形容這個人是好人還是壞人。然后再回來看看oracle 對dg 功能上的形容,數(shù)據(jù)保護和災(zāi)難恢復(fù)應(yīng)該都可以歸結(jié)為高可用性,那么我們可以清晰的定位dg 的用途了,就是構(gòu)建高可用的企業(yè)數(shù)據(jù)庫應(yīng)用環(huán)境。
          ?
          ?
          一、DataGuard配置(DataGuardConfigurations)
          ?
          ??? Data Guard 是一個集合,由一個primary 數(shù)據(jù)庫(生產(chǎn)數(shù)據(jù)庫)及一個或多個standby 數(shù)據(jù)庫(最多9 個)組成。組成Data Guard 的數(shù)據(jù)庫通過Oracle Net 連接,并且有可能分布于不同地域。只要各庫之間可以相互通信,它們的物理位置并沒有什么限制,至于操作系統(tǒng)就更無所謂了(某些情況下),只要支持oracle 就行了。
          ??? 你即可以通過命令行方式管理primary 數(shù)據(jù)庫或standby 數(shù)據(jù)庫,也可以通過Data Guard broker 提供的專用命令行界面(DGMGRL),或者通過OEM 圖形化界面管理。
          ?
          1.Primary數(shù)據(jù)庫
          ?
          ??? 前面提到,Data Guard 包含一個primary 數(shù)據(jù)庫即被大部分應(yīng)用訪問的生產(chǎn)數(shù)據(jù)庫,該庫即可以是單實例數(shù)據(jù)庫,也可以是RAC。
          ?
          2.Standby數(shù)據(jù)庫
          ?
          ??? Standby 數(shù)據(jù)庫是primary 數(shù)據(jù)庫的復(fù)制(事務(wù)上一致)。在同一個Data Guard 中你可以最多創(chuàng)建9 個standby數(shù)據(jù)庫。一旦創(chuàng)建完成,Data Guard 通過應(yīng)用primary 數(shù)據(jù)庫的redo 自動維護每一個standby 數(shù)據(jù)庫。Standby數(shù)據(jù)庫同樣即可以是單實例數(shù)據(jù)庫,也可以是RAC 結(jié)構(gòu)。關(guān)于standby 數(shù)據(jù)庫,通常分兩類:邏輯standby 和物理standby,如何區(qū)分,兩類各有什么特點,如何搭建,這方面內(nèi)容就是后面的章節(jié)主要介紹的,在這里呢三思先簡單白話一下:
          ?
          ??? 邏輯standby
          ?
          ??? 就像你請人幫你素描畫像,基本器官是都會有的,這點你放心,但是各器官位置啦大小啦膚色啦就不一定跟你本人一致了。
          ?
          ??? 物理standby
          ?
          ??? 就像拿相機拍照,你長什么樣出來的照片就是什么樣,眼睛絕對在鼻子上頭。或者說就像你去照鏡子,里外都是你,哇哈哈。具體到數(shù)據(jù)庫就是不僅文件的物理結(jié)構(gòu)相同,甚至連塊在磁盤上的存儲位置都是一模一樣的(默認情況下)。
          ?
          ??? 為什么會這樣呢?這事就得從同步的機制說起了。邏輯standby 是通過接收primary 數(shù)據(jù)庫的redo log并轉(zhuǎn)換成sql 語句,然后在standby 數(shù)據(jù)庫上執(zhí)行SQL 語句(SQL Apply)實現(xiàn)同步,物理standby 是通過接收并應(yīng)用primary 數(shù)據(jù)庫的redo log 以介質(zhì)恢復(fù)的方式(Redo Apply)實現(xiàn)同步。
          ?
          ??? 另外,不知道大家是否注意到形容詞上的細節(jié):對于相機拍照而言,有種傻瓜相機功能強大而操作簡便,而對于素描,即使是最簡單的畫法,也需要相當多的練習才能掌握。這個細節(jié)是不是也說明邏輯standby相比物理standby 需要操作者擁有更多的操作技能呢?
          ?
          ?
          二、DataGuard服務(wù)(DataGuardServices)
          ?
          ??? REDO 傳輸服務(wù)(Redo Transport Services)
          ?
          ??? 控制redo 數(shù)據(jù)的傳輸?shù)揭粋€或多個歸檔目的地。
          ?
          ??? Log 應(yīng)用服務(wù)(Log Apply Services)

          ??? 應(yīng)用redo 數(shù)據(jù)到standby 數(shù)據(jù)庫,以保持與primary 數(shù)據(jù)庫的事務(wù)一致。redo 數(shù)據(jù)即可以從standby 數(shù)據(jù)庫的歸檔文件讀取,也可直接應(yīng)用standby redo log 文件(如果實時應(yīng)用打開了的話)。
          ?
          ??? 角色轉(zhuǎn)換服務(wù)(Role Transitions)
          ?
          ??? Dg 中只有兩種角色:primary 和standby。所謂角色轉(zhuǎn)換就是讓數(shù)據(jù)庫在這兩個角色中切換,切換也分兩種:switchover 和failover
          ?
          ??? switchover :轉(zhuǎn)換primary 數(shù)據(jù)庫與standby 數(shù)據(jù)庫。switchover 可以確保不會丟失數(shù)據(jù)。
          ??? failover :當primary 數(shù)據(jù)庫出現(xiàn)故障并且不能被及時恢復(fù)時,會調(diào)用failover 將一個standby 數(shù)據(jù)庫轉(zhuǎn)換為新的primary 數(shù)據(jù)庫。在最大保護模式或最高可用性模式下,failover 可以保證不會丟失數(shù)據(jù)。
          ?

          ??? 注:上述各概念簡要了解即可,這里寫的太簡單,不要咬文嚼字,不然你會越看越糊涂,相關(guān)服務(wù)在后面章節(jié)將會有詳細介紹,不僅有直白的描述,還會有示例,再加上淺顯的圖片,就算你一看不懂,再看肯定懂:)

          ?

          三、DataGuard保護模式(DataGuardProtectionModes)
          ?
          ??? 對于Data Guard 而言,其生存邏輯非常簡單,好好活,做有意義的事,做黑多黑多有意義的事:)
          ??? 由于它提供了三種數(shù)據(jù)保護的模式,我們又親切的叫它:有三模:
          ?
          ??? 最大保護(Maximumprotection):
          ?
          ??? 這種模式能夠確保絕無數(shù)據(jù)丟失。要實現(xiàn)這一步當然是有代價的,它要求所有的事務(wù)在提交前其redo 不僅被寫入到本地的online redo log,還要同時提交到standby 數(shù)據(jù)庫的standby redo log,并確認redo 數(shù)據(jù)至少在一個standby 數(shù)據(jù)庫可用(如果有多個的話),然后才會在primary 數(shù)據(jù)庫上提交。如果出現(xiàn)了什么故障導(dǎo)致standby數(shù)據(jù)庫不可用的話,primary 數(shù)據(jù)庫會被shutdown。
          ?
          ??? ● 最高性能(Maximumperformance):
          ?
          ??? 這種模式提供在不影響primary 數(shù)據(jù)庫性能前提下最高級別的數(shù)據(jù)保護策略。事務(wù)可以隨時提交,當前primary 數(shù)據(jù)庫的redo 數(shù)據(jù)也需要至少寫入一個standby 數(shù)據(jù)庫,不過這種寫入可以是不同步的。
          ??? 如果網(wǎng)絡(luò)條件理想的話,這種模式能夠提供類似最高可用性的數(shù)據(jù)保護而僅對primary 數(shù)據(jù)庫有輕微的性能影響。
          ?
          ??? ● 最高可用性(Maximumavailability):
          ?
          ??? 這種模式提供在不影響primary 數(shù)據(jù)庫可用前提下最高級別的數(shù)據(jù)保護策略。其實現(xiàn)方式與最大保護模式類 似,也是要求所有事務(wù)在提交前必須保障redo 數(shù)據(jù)至少在一個standby 數(shù)據(jù)庫可用,不過與之不同的是,如果出現(xiàn)故障導(dǎo)入無法同時寫入standby 數(shù)據(jù)庫redo log,primary 數(shù)據(jù)庫并不會shutdown,而是自動轉(zhuǎn)為最高性能模式,等standby 數(shù)據(jù)庫恢復(fù)正常之后,它又會再自動轉(zhuǎn)換成最高可用性模式。
          ??? 最大保護及最高可用性需要至少一個standby 數(shù)據(jù)庫redo 數(shù)據(jù)被同步寫入。三種模式都需要指定LOG_ARCHIVE_DEST_n 初始化參數(shù)。LOG_ARCHIVE_DEST_n 很重要,你看著很眼熟是吧,我保證,如果你完完整整學(xué)完dataguard,你會對它更熟。
          ?
          ?
          四、DataGuard優(yōu)點總結(jié)

          ??? ● 災(zāi)難恢復(fù)及高可用性
          ??? ● 全面的數(shù)據(jù)保護
          ??? ● 有效利用系統(tǒng)資源
          ??? ● 在高可用及高性能之間更加靈活的平衡機制
          ??? ● 故障自動檢查及解決方案
          ??? ● 集中的易用的管理模式
          ??? ● 自動化的角色轉(zhuǎn)換
          ?

          ??? 經(jīng)常開篇的灌輸,相信大家已經(jīng)看的出來,上面這幾條都是形容詞,看看就好,記住更好,跟人窮白活的時候通常能夠用上:)

          ?
          ?
          ?
          ?




          -The End-

          posted on 2009-02-17 22:19 decode360-3 閱讀(220) 評論(0)  編輯  收藏 所屬分類: DBA
          主站蜘蛛池模板: 科技| 洛扎县| 云霄县| 辽阳市| 泰安市| 南靖县| 交城县| 通海县| 邹城市| 鹿泉市| 青冈县| 松潘县| 寻甸| 和顺县| 防城港市| 阿拉尔市| 阳谷县| 永福县| 南召县| 若尔盖县| 甘孜县| 佛山市| 龙泉市| 巴林右旗| 榆社县| 教育| 深水埗区| 英超| 四川省| 石狮市| 铁岭市| 华阴市| 宁乡县| 永春县| 平塘县| 通化市| 长丰县| 桐梓县| 葵青区| 遂昌县| 赣州市|