Oracle9i資料庫Data Guard實施及維護手冊

來源:互聯網
上載者:User
Oracle9i資料庫Data Guard實施及維護手冊

By Kamus

一.Data Guard介紹

備用資料庫(standby database)是ORACLE 推出的一種高可用性(HIGH AVAILABLE)數

據庫方案,在主節點與備用節點間通過日誌同步來保證資料的同步,備用節點作為主節點的

備份,可以實現快速切換與災難性恢複。

ORACLE 從7.3 才開始支援standby database。7.3.x-8.0.x 需要手工拷貝所有歸檔日誌並

手工同步,從ORACLE815開始,開始支援多節點複製,並實現了自動同步,但是這種同步

是資料非同步模式的,可能引起資料丟失。

Oracle9i的Data Guard是對Oracle8i中Standby Database功能的加強,而Standby Database技術出現的主要初衷就是為了容災(Disaster Recovery),所以具有更強大功能的Data Guard毫無疑問成了Oracle資料庫高可用性解決方案中首選使用的產品。

Oracle 提供支援高可用性 (high availability) 相關產品主要有下面幾種:

(1) Oracle Fail Safe on NT

(2) Oracle Real Application Cluster (RAC)

(3) Oracle Parallel Fail Safe

(4) Oracle Advanced Quening

(5) Oralce Advanced Replication

(6) Oracle Data Guard

這幾種產品中,最讓人困惑的是如何在 RAC,Data Guard 和 Advanced Replication 中選擇適合自己生產環境的高可用性產品。

因此我就先將這三種產品做一下比較:

RAC (Oracle Real Application Cluster)

RAC的前身是Oracle8i中的OPS(Oracle Parallel Server),RAC 是多個單CPU機或


SMP(Symmetric Multi-Processing system) 或者MPP(Massively Parallel Processing)的cluster 。cluster 裡面不同的伺服器使用一個(一般是一個)或多個oracle instances 與一個database 串連。 主要的技術特點:

(1) 資料庫中所有的資料檔案,控制檔案和重作記錄檔都是建立在裸裝置(raw devices)上的,雖然隨著OCFS的推出,在某些平台上面已經開始支援Cluster檔案系統,但是總體來說RAC在技術方面對作業系統的設定有很高的依賴性,需要有Cluster軟體的支援,難度比較大。

(2)每個資料庫執行個體都有自己單獨的聯機重作日誌組,因此在做備份和恢複的時候,需要特殊的處理。

(3)RAC的儲存方面並沒有額外的冗餘,因此在介質損壞的情況下,還是需要依靠RAID 等磁碟冗餘方案來支援。

軟體許可證方面,RAC並未包括在資料庫使用許可證 (license) 之內,需要額外購買;同樣,Oracle 產品的支援人員,也需在資料庫支援之外另外購買 OPS/RAC 部分。

總體來說,RAC的設定與維護還是比Data Guard複雜和昂貴得多。

進階複製(Advanced Replication )

主要的技術特點:

(1) Replication 使用分散式資料庫技術在多個網站之間共用資料。

(2) Replicated Database 和Distributed Database 並不一樣,在分散式資料庫系統中資料在

多個網站同時有效,但是一個表只會存在於一個網站中,而對於Replication 來說相同

的資料將同時存在於多個網站中。

(3) 使用replication 的原因:

1) Availability:也就是提供了優秀的failover保護

2) Performance:由於有多個server,所以可以將使用者業務分布在不同的server 上

3) Disconnected computing:實體化視圖允許使用者在和master 斷開後使用資料庫

的子集,在重新串連上master 之後再進行兩者的同步。

4) Network load reduction:由於有多個server,所以可以減少master 的網路請

5) Mass deployment:通過變數產生自訂的實體化視圖以滿足多種需求


 (4) 在不同的Oracle 發行版本之間以及不同作業系統的Oracle 之間都可以使用Advanced Replication。這是進階複製的最大優勢所在。而RAC和Data Guard都需要作業系統和資料庫版本相同。

進階複製不需要除資料庫之外額外的使用許可 (license) 。

進階複製要對需要同步的每個資料庫物件都進行單獨的複製產生準備工作,所以當資料庫中存在大量對象需要同步的話,進階複製的初期準備工作非常耗時。而且進階複製對於DDL操作不能很好支援,必須要使用特殊的包來執行DDL操作,才能將操作複製到遠方資料庫。所以進階複製作為一個整體資料庫的容災方案並不十分理想,只有在由於費用問題,要求災備資料庫和主要資料庫的硬體架構不同的情況下,才應該選擇這種方案。

Data Guard

與RAC或者OPS比較 Data Guard 在高可用性方面的使用性,可以從幾個方面來探討:

(1) Database Backup:Data Guard複製了未經處理資料庫,因此未經處理資料庫有備份,具有災備要求的冗餘量;而 RAC/OPS 只有一份資料庫,如果資料所在的硬碟發生了問題,需要另外的方法(比如RAID)解決。

(2) 伺服器的數量及利用率:RAC/OPS 至少需要雙機支援,支援動態Server Load Balancer,對於大量使用者訪問的環境,可以在多個伺服器同時處理使用者的請求。在多機系統內容,如果尚有一台伺服器運行正常,不會造成整個資料庫系統由於故障徹底停機。Data Guard可以設定在同一個伺服器上面,理論上支援單機環境。

(3) 故障停機時間:如上面所說,OPS/RAC 環境只要還有一台伺服器正常運行,就不會造成停機;Data Guard環境中,primary 資料庫到 Standby 資料庫的切換,至少需要幾分鐘的停機時間。

(4) 費用:使用許可證方面,Data Guard不需要購買資料庫之外的使用許可。同時在維護費用方面,OPS/RAC 的實施也相對複雜,人力、物力相對昂貴。

通過上面幾種產品的比較,再分析此次客戶對於災備的硬體投入和功能要求,我們認為Data Guard是比較合適的方案。

首先此次災備環境中使用的都是SUN的小型機,符合Data Guard對於伺服器同構的要求,其次由於災備庫在上海,而主庫在北京,也同樣滿足Data Guard對於HA的要求。

而Data Guard在也同樣能夠滿足最多丟失一分鐘的資料,並且使用災備庫作為曆史查詢服務器這樣的功能需求。

二.Data Guard類型的比較

Oracle9i在Data Guard的配置方面提供了幾種不同的類型,根據客戶對於高可用性的不同要求,可以選擇不同的Data Guard類型。


下面對於Data Guard的幾種類型作一個列舉和比較。

Data Guard環境中包含一個產品資料庫,這是正常運行用以支撐日常業務的主要資料庫,稱為Primary Database。另外包含一個或者多個災備資料庫,稱為Standby Database。

按照備用庫(Standby Database)應用歸檔日誌的不同方式,Standby Database可以分為物理備用庫(Physical Standby)和邏輯備用庫(Logical Standby)。

按照主要資料庫(Primary Database)的保護模式,整個Data Guard環境分為最大資料保護模式(MAXIMIZE PROTECTION),最大可用性模式(MAXIMIZE AVAILABILITY),最大效能模式(MAXIMIZE PERFORMANCE)。

按照主庫向備用庫傳遞重作資訊的方式,可以分為ARCH方式和LGWR方式。

物理備用庫可以運行在資料庫三種保護模式中的任何一種模式下,邏輯備用庫只可以運行在最大可用性模式或者最大效能模式下。無論物理備用庫還是邏輯備用庫都可以在傳輸日誌上採用ARCH方式或者LGWR方式。

物理備用庫(Physical Standby):

提供了一份跟主要資料庫在物理層級上完全相同的copy,指在資料庫的block層級都是完全相同的,比如資料庫表中記錄的rowid。物理備用庫是通過不斷地恢複Primary Database傳入的重作日誌資料資訊來達到跟主要資料庫保持同步。

物理備用庫在處於自動回復重作日誌資訊的狀態下,無法提供查詢服務。因為此時的備用資料庫並不是處於正常開啟的狀態,資料庫的非sysdba使用者無法登入備用庫,自然也就無法進行普通的查詢業務。

邏輯備用庫(Logical Standby):

指在邏輯上跟主要資料庫保持一致,但是在物理層面上跟主要資料庫並不相同。邏輯備用庫是通過將Primary Database傳入的重作日誌資料資訊轉化為SQL語句,然後在備用庫上重新執行來達到跟主要資料庫保持同步。

邏輯備用庫在應用重作資訊的同時也可以提供查詢功能。但是由於邏輯備用庫應用重作日誌的方式限制,所以邏輯備用庫在功能和效能上面都有所限制。以下是邏輯備用庫的一些限制條件。

              1. 以下資料類型不被支援:

NCLOB ,LONG ,LONG RAW ,BFILE ,ROWID ,UROWID

2. 以下操作不被支援:

ALTER DATABASE ,ALTER SESSION ,ALTER SNAPSHOT

ALTER SNAPSHOT LOG ,ALTER SYSTEM SWITCH LOG

CREATE CONTROL FILE ,CREATE DATABASE ,


CREATE DATABASE LINK ,CREATE PFILE FROM SPFILE ,

CREATE SCHEMA AUTHORIZATION

CREATE SNAPSHOT ,CREATE SNAPSHOT LOG ,CREATE SPFILE FROM PFILE

CREATE TABLE AS SELECT FROM A CLUSTER TABLE

DROP DATABASE LINK ,DROP SNAPSHOT ,DROP SNAPSHOT LOG

EXPLAIN ,LOCK TABLE ,RENAME ,SET CONSTRAINTS ,

SET ROLE ,SET TRANSACTION

3. 進階隊列的管理和物化視圖的重新整理不被支援

4. 要求每張表應該有主鍵或者唯一性索引 ,如果必須有沒有唯一性標識的表,那麼可以啟用Primary庫的supplemental logging屬性,但是這樣將會在重作日誌中記錄該表中每一條記錄的所有欄位資訊,會大大增加重作日誌的記錄量。

以下是Data Guard環境中物理備用庫和邏輯備用庫的配置圖。

 

最大資料保護模式(MAXIMIZE PROTECTION)

提供最高等級的資料保護,重作資訊從主庫同步送到備用庫。直到備用庫成功接收重作資訊,主庫上的事務才會提交。如果由於網路等問題,導致備用庫不可用,那麼主庫也同時會被關閉。這種模式保證了完全沒有資料丟失。

最大可用性模式(MAXIMIZE AVAILABILITY)

在備用庫正常的情況下,該模式提供了跟“最大資料保護模式”一樣的機制,保證沒有任何資料丟失。如果備用庫不可用,那麼將轉換到“最大效能模式”,操作可以在主庫上繼續執行。當備用庫重新可用之後,將會繼續同步。但是如果在同步完成之前,主庫由於故障損壞,將會遺失資料(當然,可以通過RAID,RMAN等方式盡量保護主庫即使出現故障也不遺失資料)。

最大效能模式(MAXIMIZE PERFORMANCE)

這種模式下,主庫上的重作資訊是非同步傳遞到備用庫上,不論備用庫上是否已經成功接收了重作資訊,主庫上的操作都會成功執行。所以這種模式提供了最好的效能,但是最低的資料保護。這是Oracle9i配置Data Guard的預設模式。

ARCH方式

當主庫歸檔聯機重作記錄檔時,ARCH歸檔進程在歸檔到原生同時,將重作資料傳遞到備用庫,由備用庫端的RFS進程(Remote File Server)接收,產生備用庫端的歸檔記錄檔,然後由備用庫端的MRP進程(物理備用庫類型)或者LSP進程(邏輯備用庫類型)將歸檔記錄檔恢複到備用庫中。

傳遞方式

 

LGWR方式

物理備用庫類型下,主庫的LGWR進程在將重作資料寫到本地聯機重作記錄檔中的同時,將重作資料傳遞到備用庫,備用庫的RFS進程將收到的資料寫入本地的備用重作記錄檔(Standby Redo Log)中。當主庫日誌切換時也觸發備用庫的日誌切換,切換髮生時,備用庫的歸檔進程將重作記錄檔歸檔,然後由備用庫端的MRP進程將歸檔記錄檔恢複到備用庫中。


傳遞方式

 

邏輯備用庫類型下,不可以建立備用重作記錄檔(Standby Redo Log),所以處理流程跟物理備用庫稍有不同。

主庫的LGWR進程在將重作資料寫到本地聯機重作記錄檔中的同時,將重作資料傳遞到備用庫,備用庫的RFS進程將收到的資料寫入本地的歸檔記錄檔中。當主庫日誌切換時也觸發備用庫的日誌切換,切換髮生時,備用庫的歸檔進程完成歸檔記錄檔的最後產生,然後由備用庫端的LSP進程提取歸檔記錄檔中的SQL語句,重新在備用庫上運行一遍。

傳遞方式

 


最後上述所有類型或者方式互相搭配進行一個比較。

Maximum Protection

Maximum Availability

Maximum Performance

重作傳遞方式

LGWR

LGWR

LGWR或者ARCH

網路傳遞模式

同步

同步

當使用LGWR傳遞方式時為非同步方式,如果使用ARCH傳遞方式,那麼不牽涉聯機重作資料的網路傳輸

磁碟寫入選項

AFFIRM

AFFIRM

NOAFFIRM

是否需要備用重作記錄檔

需要

只在物理備用庫類型中需要

如果物理備用庫使用LGWR傳遞方式,那麼需要

備份庫類型

物理

物理或邏輯

物理或邏輯

 

三.硬體設定

四.軟體配置

五.實施Data Guard前提條件和注意事項

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.