ORACLE DATAGUARD 資料庫---建立物理備用資料庫

yiyu_66發表於2007-12-11

本文指導物理備用資料庫的建立,包括以下主題:
準備主庫
建立物理備用資料庫
更多準備

1、在建立備庫之前準備主庫
1.1強制記錄日誌模式
     SQL>alter database force logging;
1.2建立一個口令檔案
     DATA GUARD配置中的每一個資料庫都需要一個口令檔案,用來傳輸日誌的sys使用者的密碼在所有系統中必須是一致的。
1.3設定主庫的初始化引數檔案
    在主庫中,你需要定義一些控制日誌傳輸服務的初始化引數。當主庫被轉換成備庫角色的時候,你需要增加一些額外的引數來控制日誌資料的接收和日誌應用服務。下面是一個主庫的初始化引數檔案示例,這個示例展現一個主庫在芝加哥,一個物理備用資料庫在波士頓的DATA GUARD配置。當芝加哥的資料庫執行在主庫角色或者從庫角色時,這些示例中的引數是有效的。配置使用的名稱如下:

Database                  DB_UNIQUE_NAME       Oracle Net Service Name
Primary                     chicago                               chicago
Physical standby        boston                                 boston


主庫: Primary Role Initialization Parameters
DB_NAME=chicago
DB_UNIQUE_NAME=chicago
SERVICE_NAMES=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
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
這些引數控制日誌傳輸服務如何傳輸日誌資料以及日誌資料在本地的歸檔。注意示例假定使用預設的ARCn程式傳輸日誌資料,如果你指定LGWR程式傳輸日誌資料,需要包括NET_TIMEOUT引數在LOG_ARCHIVE_DEST_2引數。
下面一個例子顯示當主庫轉換為從庫時的一些其他引數,這些引數當主庫轉換為從庫時起作用:
FAL_SERVER=boston
FAL_CLIENT=chicago
DB_FILE_NAME_CONVERT=
'/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/'
LOG_FILE_NAME_CONVERT=
'/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/'
STANDBY_FILE_MANAGEMENT=AUTO
下面提供對每一個初始化引數的簡單解釋:
DB_NAME--指定一個8個字元的名稱,對於所有備用資料庫使用相同的名稱
DB_UNIQUE_NAME--為每一個資料庫指定一個唯一的名稱
SERVICE_NAMES--為備用資料庫指定一個與主庫不同的服務名,如果你不明確指定不同的服務名,並且主庫和從庫位於同一系統中,相同的global name(由資料庫名和域名組成DB_NAME,DB_DOMAIN),會對兩個資料庫有效
LOG_ARCHIVE_CONFIG--指定DG_CONFIG列出主庫和備庫的DB_UNIQUE_NAME,可以動態新增備庫。
LOG_ARCHIVE_DEST_n--指定重做資料在主庫和從庫的歸檔位置,示例中的LOG_ARCHIVE_DEST_1歸檔主庫的本地聯機重做日誌檔案到本地歸檔日誌檔案/arch1/chicago/,LOG_ARCHIVE_DEST_2只對於主庫角色有效,傳輸重做資料到遠端物理備用目標boston。注意:如果配置了閃回恢復區(DB_RECOVERY_FILE_DEST),並且你沒有使用LOCATION屬性配置本地歸檔目標,Data Guard 自動使用LOG_ARCHIVE_DEST_10初始化引數作為本地歸檔的預設目標。
REMOTE_LOGIN_PASSWORDFILE--在主庫和備庫為sys使用者設定相同的密碼,這個引數的推薦設定是EXCLUSIVE或者SHARED
FAL_SERVER--指定FAL server(一般執行在主庫角色的資料庫)的網路服務名,當Chicago資料庫執行在備用角色時,它使用這個引數指定的伺服器來獲取缺少的日誌資料
FAL_CLIENT--指定Chicago資料庫的網路服務名,FAL server Boston 複製缺少的重做日誌檔案到Chicago備用資料庫
STANDBY_FILE_MANAGEMENT--設定成AUTO,當主庫資料檔案增加或刪除時,自動改變備用資料庫
警告:小心初始化引數檔案中的引數,如果主庫與從庫的目錄位置不同的話。
1.4歸檔
    主庫必須工作在歸檔模式
    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
2、建立一個物理備用資料庫
2.1建立主庫資料檔案的副本
2.2建立備用資料庫的控制檔案
    SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';
    注意:不能使用同樣的控制檔案
2.3為備用資料庫準備初始化引數檔案
第一步,複製主庫的初始化引數檔案到從庫
SQL> CREATE PFILE='/tmp/initboston.ora' FROM SPFILE;
第二步,設定引數
下例顯示備用資料庫的初始化引數
DB_NAME=chicago
DB_UNIQUE_NAME=boston
SERVICE_NAMES=boston
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/boston/control1.ctl', '/arch2/boston/control2.ctl'
DB_FILE_NAME_CONVERT=
'/arch1/chicago/','/arch1/boston/','/arch2/chicago/','/arch2/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
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
INSTANCE_NAME=boston
FAL_SERVER=chicago
FAL_CLIENT=boston
另外,確保COMPATIBLE引數被設定成相同的值。如果值不同,資料傳輸服務不可用。
2.4從主庫複製檔案到從庫
資料檔案
控制檔案
初始化引數檔案
2.5設定環境
第一步,建立windows服務
WINNT> oradim -NEW -SID boston -INTPWD password -STARTMODE manual
第二步,建立密碼檔案
第三步,配置主庫和從庫的監聽器
第四步,備庫斷開連線的監測
在備庫SQLNET.ORA檔案中SQLNET.EXPIRE_TIME=2
第五步,建立oracle網路服務名
第六步,為備庫建立spfile
SQL> CREATE SPFILE FROM PFILE='initboston.ora';
2.6啟動物理備用資料庫
第一步,啟動資料庫到只讀模式
SQL> STARTUP OPEN READ ONLY;
第二步,為物理備用資料庫增加一個新的臨時檔案
SQL> ALTER TABLESPACE TEMP1 ADD TEMPFILE
2> '/arch1/boston/temp01.dbf'
3> SIZE 40M REUSE;
第三步,開始日誌應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
第四步,測試物理備用資料庫的歸檔操作
直到日誌切換,重做日誌才傳輸到遠端備用位置。
SQL> ALTER SYSTEM SWITCH LOGFILE;
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.
第二步,日誌切換歸檔當前的聯機重做日誌檔案
在主庫
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
第三步,驗證新的重做資料被歸檔到備用資料庫
在備用資料庫,查詢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
3、更多的準備
3.1升級資料保護模式
3.2配置備用重做日誌
    當備用資料庫執行在最高保護模式和最高可用性模式時需要備用重做日誌檔案。但是,推薦在所有備用資料庫配置備用日誌檔案,因為在失敗轉移時Data Guard可以應用更多的重做資料。備用日誌檔案存在在主庫和從庫並且有相同的大小和名稱。
3.3啟用閃回資料庫
啟用閃回資料庫,在失敗轉移之後,不需要重建主庫。閃回資料庫類似於基於時間點的資料庫恢復,閃回資料庫比基於時間點的恢復更快,你可以在主庫,從庫,或者兩者同時啟用閃回資料庫。

原文地址: http://www.cnitblog.com/feiyang0721/archive/2007/12/07/37469.html

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

相關文章