Oracle10g 建立物理DataGuard(三)

cnaning發表於2013-01-16
上次只列出了建立物理DataGuard的步驟,沒有詳細命令,繼續細化建立步驟:
 
 
1.1 啟用force logging模式
資料庫建立成功之後用下面的語句,使主庫啟用force logging模式
 
SQL>ALTER DATABASE FORCE LOGGING;
 
這條語句需要很長時間完成,因為它需要等待那些未記錄日誌的直接路徑寫I/O完成
 
1.2 建立密碼檔案
如果沒有密碼檔案,則建立它。每個資料庫在DataGuard架構中必須用相同的密碼檔案,並且SYS使用者的密碼必須相同以保證重做資料在每個系統傳輸成功。
 
1.3 配置備用重做日誌
最大保護和最大可用模式都需要備用重做日誌,並且所有資料庫建議使用LGWR ASYNC傳輸模式。DataGuard從歸檔重做日誌,不如從備用重做日誌恢復與應用重做資料多。
 
在建立備用資料庫時,應該規劃備用重做日誌並建立好重做日誌組和日誌成員。為了提高可用性,參考線上重做日誌的複用方法,複用備用重做日誌。
 
請執行下面步驟配置備用重做日誌。
 
第一步 確保主庫和備庫的日誌檔案大小是一致的。
當前備用重做日誌的大小必須和當前主庫線上重做日誌大小完全匹配。
例如,如果主庫使用2個線上重做日誌組的日誌檔案大小為200k,那麼備用重做日誌組的日誌檔案大小也是200k
 
第二步 確定合適的重做日誌組數
至少地,配置重做日誌組比當前主庫的線上重做日誌組多一組。但是,建議備用重做日誌組數不要比執行緒數高。用下面公式確定適合的線上重做日誌組是
(每個執行緒的日誌檔案的最大數目+1)* 最大執行緒數
使用這個公式近可能的降低由於在備庫備用重做日誌不能分配導致主庫例項的LGWR程式被鎖死。例如,如果主庫每個執行緒有2個日誌檔案,有2個執行緒那麼備庫需要備用重做日誌6組
 
第三步 驗證相關的資料庫引數和設定
檢查用sql建立資料庫時MAXLOGFILES 和 MAXLOGMEMERS的值,不會限制你增加備用重做日誌組和成員。只能通過重新建立主庫或控制檔案,覆蓋MAXLOGFILES 和 MAXLOGMEMERS限制制定的值
 
第四步 建立備用重做日誌組
你必須有ALTER DATABASE 系統許可權,才能建立新的備用重做日誌組和成員。
備庫開始用新建立的備用重做資料,在下一時刻,主庫會發生日誌切換。
例子3-1和例子3-2顯示怎樣用ALTER DATABASE建立一個新備用重做日誌組,變化之處在於ADD STANDBY OGFILE GROUP.
 
例子3-1 給指定執行緒新增備用重做日誌組
執行下面命令,在物理備庫,新增一個新的備用重做日誌組,並制定到THREAD 5:
SQL>ALTER DATABASE ADD STANDBY LOGFILE THREAD 5
('','/oracle/dbs') SIZE 100M;
THREAD 僅僅在指定主庫新增一組或多組備用重做日誌是需要的,如果你不包括THREAD項,並且在RAC叢集,DataGuard將在執行時準備各種rac例項自動指定重做日誌組到執行緒
 
例子-3-2 新增備用重做日誌組成員
你在使用GROUP時可以指定數字:
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 10
('/oracle/dbs/logic.rdo','/oracle/dbs/log2c.rdo') SIZE 500M;
用組號可以很容易管理重做日誌檔案。可是,這組號在1到MAXLOGFILES之間。
不能跳過組號(就是說,不要10,20,30等等)或者你在備用資料庫控制檔案中將用額外空間
 
 
第五步 驗證備用重做日誌組是否建立成功
驗證備用重做日誌是被建立並且執行正常,在主庫上呼叫日誌切換,在備庫查詢任一檢視V$STANDBY_LOG 檢視和V$LOGFILE檢視,檢視同步情況。例如:
SQL>SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
 
GROUP#     THREAD#   SEQUENCE#   ARC   STATUS
-------------    --------------   -------------------   -------  -------------
             3                     1                        16    NO      ACTIVE
             4                     0                          0    YES    UNASSIGNED
             5                     0                          0    YES    UNASSIGNED
 
1.4 設定主庫初始化引數
在主庫中,當主庫處於主角色時,你定義控制重做傳輸服務的初始化引數。當主庫角色轉變為備庫角色時,你要新增額外的引數控制重做資料的接收和日誌應用服務。例如3-3 顯示主庫在主角色時的初始化引數。這例子描述DataGuard配置主庫位於Chicago,一個物理備庫位於Boston。在例子3-3,Chicago資料庫在執行中,不管是主角色或備角色,這些引數都是有效的。配置例子使用的名稱在下面表格中:
Database                  DB_UNIQUE_NAME          Oracle Net Service Name
Primary                       chicago                                 chicago
Physical standby       boston                                   boston
 
例子3-3 主庫:主角色初始化引數
DB_NAME=chicago
DB_UNIQUE_NAME=chicago
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/arch1/chicago/ 
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_2=
 'SERVICE=boston LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
這些引數控制重做傳輸服務怎樣傳輸重做資料到備用系統並且重做資料的歸檔儲存在本地檔案系統。注意在這個例子中初始化引數LOG_ARCHIVE_DEST_2指定LGWR程式和非同步網路傳輸傳輸重做資料。這些推薦設定需要備用重做日誌。
例子3-4 顯示主庫在備角色時需要額外的初始化引數。當主庫轉變為備角色時這些引數生效。
例子3-4 主庫:備角色初始化引數
FAL_SERVER=boston
FAL_CLIENT=chicago
DB_FILE_NAME_CONVERT='boston','chicago'
LOG_FILE_NAME_CONVERT=
 '/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/' 
STANDBY_FILE_MANAGEMENT=AUTO
例子3-4中指定的初始化引數解決主庫間隙,從一個新主庫轉換新資料檔案和日誌檔案路徑名,當這資料庫是備角色時傳入的重做資料歸檔,這些被描述的初始化引數包括主角色和備角色,在角色轉換後,不需要修改引數。
 
1.5 啟用歸檔模式
如果沒啟用歸檔模式,執行下面語句主庫將啟用歸檔模式並且能自動歸檔:
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;
 
2  建立物理備庫步驟說明
本節描述你執行建立一個物理備庫的任務
 
2.1 建立主庫資料檔案的備份副本
你能用任意主庫的備份副本建立物理備庫,只要你有需要的歸檔重做日誌檔案,Oracle建議你用RMAN,完全恢復資料庫。
 
2.2 建立備庫控制檔案
如果備份過程你停止主庫,那麼執行下面的SQL*PLUS語句啟動主庫:
SQL>STARTUP MOUNT;
 
這時,建立備庫控制檔案,並且開啟主庫提供使用者訪問,如下面示例所示:
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';
SQL>ALTER DATABASE OPEN;
 
注意:在主庫和備庫你都不能使用單個控制檔案
 
2.3 準備備庫初始化引數
執行下面步驟,建立備庫初始化引數檔案。
第一步 複製主庫引數檔案到備庫
根據主庫SPFILE建立一個文字初始化引數檔案(PFILE);一個文字初始化引數檔案被拷貝到備庫相應位置並修改。例如:
SQL>CREATE PFILE='/tmp/initboston.ora' FROM SPFILE;
之後,在2.5中,修改引數值為適合物理備庫的之後, 你將這備份檔案轉變為SPFILE。
 
第二步 在物理備庫設定初始化引數
雖然在主系統設定的文字初始化引數檔案中的大部分初始化引數同樣適合物理備庫,但是需要做少量的修改。
例子3-5 顯示部分備用的初始化引數值被修改為物理備庫。粗體字顯示的引數值與例子3-3和例子3-4不同。在例子3-5顯示Boston資料庫的引數在主角色和備角色時都生效。
例子3-5 修改物理備庫初始化引數
.
.
.
DB_NAME=chicago
DB_UNIQUE_NAME=boston
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/boston/control1.ctl', '/arch2/boston/control2.ctl'
DB_FILE_NAME_CONVERT='chicago','boston'
LOG_FILE_NAME_CONVERT=
 '/arch1/chicago/','/arch1/boston/','/arch2/chicago/','/arch2/boston/'
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
LOG_ARCHIVE_DEST_1=
 'LOCATION=/arch1/boston/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_2=
 'SERVICE=chicago LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=chicago
FAL_CLIENT=boston
.
.
.
注意這個例子假設用LGWR程式傳輸重做資料到本地和遠端(在LOG_ARCHIVE_DEST_2初始化引數中定義)2個目的地。
此外,主庫和物理備庫確保COMPATIBLE引數值相同。如果值不同,主庫重做傳輸服務不能傳輸重做資料到物理備庫。在DataGuard配置中,COMPATIBLE必須被設定的最小值是9.2.0.1.0,然而,如果你想使用Oracle Database 10g新特性,設定COMPATIBLE引數為10.2.0.0或更高。
使用SHOW PARAMETERS 命令驗證是否有其他引數需要修改,它總是一個好的習慣。
 
2.4 從主庫複製檔案到備庫
 
2.4.1 建立資料檔案備份,見2.1
2.4.2 建立備庫控制檔案,見2.2
2.4.3 建立初始化引數檔案,見2.3
 
2.5 設定備庫需要的環境
執行下面步驟建立一個基於windows平臺服務,建立一個密碼檔案,設定Oracle網路環境,並且建立一個SPFILE。
 
第一步 建立基於Windows的服務
如果備庫執行在windows平臺,用ORADIM 建立一個window服務和密碼檔案。例如:
WINNT>oradim -NEW -SID boston -INTPWD password -STARTMODE manual
 
第二步 建立密碼檔案
除了window平臺的其他平臺,建立密碼檔案,並設定和主庫SYS使用者密碼相同的SYS使用者密碼。為了重做傳輸成功,在DataGuard配置中每個資料庫的SYS使用者密碼必須是相同的。
 
第三步 配置主庫和備庫監聽
在主庫和備庫2臺伺服器上,使用Oracle Net Manager 配置各自資料庫的監聽。
重啟監聽,在主庫和物理備庫上分別執行下面LSNRCTL命令:
lsnrctl stop
lsnrctl start
 
第四步 建立網路服務名
在主庫和備庫2臺伺服器上,主庫和備庫使用Oracle Net Manager分別建立一個網路服務名被重做傳輸服務使用。
網路服務名指定的連結描述符必須用你配置主庫和備庫監聽時指定的相同的協議,主機地址,和服務。連結描述符必須指定為專用伺服器。
 
第五步 建立備庫服務引數檔案
在空閒的物理備庫上,用SQL CREATE語句根據在第二步中編輯好的的文字引數檔案建立一個物理備庫伺服器引數檔案。例如:
SQL>CREATE SPFILE FROM PFILE='imitboston.ora';
 
2.6 啟動物理備庫
執行下面步驟啟動物理備庫和重做應用。
 
第一步 啟動物理備庫
在物理備庫上,執行下面SQL語句啟動資料庫到MOUNT狀態:
SQL>STARTUP MOUNT;
 
第二步 啟動重做應用
在物理備庫上,執行下面命令啟用重做應用:
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
這條語句包括DISCONNECT FORM. SESION 選項是重做應用在後臺執行。
 
第三步 測試歸檔是否傳到備庫
在這例子中,在傳輸重做資料到遠端備庫不會發生日誌切換。當線上重做日誌滿後,預設會發生日誌切換。在主庫執行ALTER SYSTEM語句,強制日誌切換會導致重做資料立即被傳輸。
 
2.7 驗證物理備庫是否正常執行
在你建立物理備庫並設定重做傳輸服務,你想驗證資料庫修改被成功的從主庫傳輸到備庫。
檢視重做資料被物理備庫接收,你首先確認歸檔重做日誌檔案在備庫上,在主庫上強制切換一些線上重做日誌並歸檔後,這時檢查物理備庫。下面步驟顯示怎樣執行這些任務。
 
第一步 確認已經存在的歸檔重做日誌
在物理備庫,查詢V$ARCHIVED_LOG檢視確認歸檔重做日誌已經存在。例如:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME
  2  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

 SEQUENCE# FIRST_TIME         NEXT_TIME
---------- ------------------ ------------------
         8 11-JUL-02 17:50:45 11-JUL-02 17:50:53
         9 11-JUL-02 17:50:53 11-JUL-02 17:50:58
        10 11-JUL-02 17:50:58 11-JUL-02 17:51:03

3 rows selected.
 
第二步 強制切換當前線上重做日誌
在主庫,用ALTER SYSTEM SWITCH LOGFILE 語句強制切換並歸檔當前線上重做日誌檔案組:
SQL>ALTER SYSTEM SWITCH LOGFILE;
 
第三步 驗證新的重做資料在備庫上歸檔
在備庫上,查詢V$ARCHIVED_LOG檢視驗證重做資料和歸檔被接收:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME
  2>  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

 SEQUENCE# FIRST_TIME         NEXT_TIME
---------- ------------------ ------------------
         8 11-JUL-02 17:50:45 11-JUL-02 17:50:53
         9 11-JUL-02 17:50:53 11-JUL-02 17:50:58
        10 11-JUL-02 17:50:58 11-JUL-02 17:51:03
        11 11-JUL-02 17:51:03 11-JUL-02 18:34:11
4 rows selected.
這些歸檔重做日誌檔案現在可以被物理備庫應用。
 
 
第四步 驗證新歸檔日誌已經被應用
在物理備庫上,查詢V$ARCHIVED_LOG檢視驗證歸檔重做日誌檔案是否被應用。
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG
  2  ORDER BY SEQUENCE#;

SEQUENCE# APP
--------- ---
        8 YES
        9 YES
       10 YES
       11 YES

4 rows selected.

 
3 建立後步驟
在這裡描述,物理備庫預設執行並能提供最大效能的資料保護級別。下面的描述列表時你可以再物理備庫上額外準備的:
3.1更新資料保護模式
3.2啟用閃回資料庫

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12457158/viewspace-752776/,如需轉載,請註明出處,否則將追究法律責任。

相關文章