2013年1月31日

[Oracle] Data Guard - Conecpts


其實 Data Guard 參數要修改的就只有幾項而已,但如果沒有先了解背後的概念及oracle是透過什麼方法來實現Primary & Standby這樣的架構的話,很容易就迷失在這些參數之中。
所以先了解一些簡單的概念,會讓後面的過程輕鬆許多。

1. Description :

為了BCP ( Business Continuity Plan ),需演練Data Guard switch over操作,
所以於虛擬環境先架設 Data Guard 環境來測試。

2. 環境說明 :

Primary :  test01 ( Oracle 9i )
Standby : test02 ( Oracle 9i ) 
Log Transport Service : LGWr

3. Concepts :

3.1 Standby Database Type :
Standby DB 有下列兩種類型,主要的差異在於與 Primary DB 同步方式。
a. Physical Standby Database - Managed Recovery.
b. Logical Standby Database  - Updated by applying SQL statements.
此範例選擇為Physical Standby Database。

如何選擇請參考 : 

3.2 Data Guard Log Transport Process :

主要是透過下列幾個 process 來達成:
a. Log Writer ( LGWr )
b. Archiver ( ARCn )
c. Remote File Server ( RFS )
d. Fetch Archive log ( FAL )

下面兩張圖即可看出 LGWr、ARCn的差異所在。
LGWr透過兩個  process,一個將 redo log 寫入本地的Online Redo Logs,另一個可寫到遠端的Standby DB,再由 RFS 做接收。 ( 所以說也可以做到分配多個 LGWr,同步到多台Standby上 )
ARCn則是在最後產生Archived Log時,同時產生一份到Standby DB上。

Figure 1 : Using LGWr Process

Figure 2 : Using ArchiveProcess







                       
























由圖也可以很清楚的看出,Remote File Server 是運行在 Standby DB 上,接收Primary DB傳來的Redo Logs。

所以在配置前,需要先了解實際的需求到底為何。
再來根據需求選擇我們所要的配置。

詳細資料請參考:
Oracle Data Guard Concepts and Administration - Log Transport Services

4. Parameter File Configuration

主要的配置就可分為下面幾項:
a. REMOTE_ARCHIVE_ENABLE 
    - enable sending & receiving redo logs
b. LOG_ARCHIVE_DEST_n
    - configure primary database to perform archiving
c. LOG_ARCHIVE_DEST_STATE_n
    - controls  state of the destination
d. STANDBY_ARCHIVE_DEST
    - Determines the location of archive redo logs on the standby database

按照下圖,就可以很清楚的看到,Primary & Standby DB的 pfile 要如何設定。
將紅字的部分,加到對應的 pfile 中,就完成一個 Data Guard ( Physical Standby Database using LGWr )的基本設定摟!

Figure 3 : Data Guard Configuration - pfile parameters 

5. Oracle Net Configuration :

log_archive_dest_2='service=standby lgwr async affirm'
service 所對應到的 standby 就是 tnsnames.ora 中的設定名稱,指定 Port & Hostname,指向standby database。 可用 tnsping standby 確定連線是否成功。

至於 sync & async 、 affirm & noaffirm 的選擇可參考:
Figure 4 : Maximum Protection、Maximum Availability、Maximum Performance












在了解了這些基本概念之後,我們可以清楚的知道 Log 是透過哪些參數設定來傳送與接收。如果配置完成後發生了問題 ,也比較容易找尋是哪邊設定出了問題,方便trouble shooting。
接下來,我們就可以來看看 Oracle Data Guard 的 Step by Step ~








沒有留言:

張貼留言