天天看點

[周末往期回顧]Oracle Data Guard 參數介紹

Data Guard作為Oracle提供的一個高可用及災備解決方案,了解并可以實施它對于DBA來說是非常重要套的技能

上節介紹了有關Data Guard的概念,這節将介紹相關的一些參數

有的參數是做為備庫角色時才生效的,會單獨說出來

1. DB_NAME

該參數指定Oracle資料庫的名稱

Data Guard環境中所有資料庫的DB_NAME需保持一緻

db_name= dg1
           

複制

2. DB_UNIQUE_NAME

該參數指定Oracle資料庫的唯一名稱

Data Guard環境中所有資料庫的DB_UNIQUE_NAME都不能一緻

DB_UNIQUE_NAME=dg1
           

複制

3. LOG_ARCHIVE_CONFIG

該參數主要用來指定Data Guard環境中哪些資料庫可以傳輸日志檔案

該參數指定的資料庫名稱為DB_UNIQUE_NAME

該參數主備庫需設定一緻

LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)'
           

複制

4. LOG_ARCHIVE_FORMAT

該參數設定歸檔日志檔案的命名格式

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
           

複制

5. LOG_ARCHIVE_DEST_n

該參數控制資料庫歸檔檔案的路徑,其包含下面子參數

n=1一般為本地歸檔路徑

log_archive_dest_1=
'LOCATION=/oralog/arch
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=dg1'
           

複制

5.1 LOCATION

指定本地歸檔路徑,必須為第一個參數,不能和service同時出現

5.2 VALID_FOR

決定redo資料可以寫入目标路徑的條件

VALID_FOR=(redo_log_type,database_role)
           

複制

redo_log_type 取值範圍:

  • ONLINE_LOGFILE
  • STANDBY_LOGFILE
  • ALL_LOGFILES

database_role取值範圍

  • PRIMARY_ROLE
  • STANDBY_ROLE
  • ALL_ROLES

5.3 DB_UNIQUE_NAME

指定該歸檔路徑有效的db unique name

總結:

上面的配置的意思為滿足下列條件時就會歸檔日志檔案 :

  • 當資料庫unique名為dg1時
  • 無論其是主庫或者備庫角色
  • 無論是歸檔online redo log還是standby log

n>1一般為歸檔至遠端資料庫

log_archive_dest_2=
'SERVICE=dg2  LGWR SYNC AFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=dg2'
           

複制

5.4 SERVICE

指定遠端資料庫的service name,必須為第一個參數,不能和location同時出現

5.5 LGWR ARCH

指定收集和傳輸redo資料的背景程序,包括:

  • ARCH:此為預設配置,但是隻能用于最大性能模式
  • LGWR:使用LGWR程序,可用于所有保護模式

無法同時使用2個程序用于發送redo資料到目标路徑

5.6 SYNC ASYNC

預設值:ASYNC

  • SYNC(同步)時,redo data在傳輸到所有啟用的路徑前transaction不可以commit
  • ASYNC(異步)時,redo data在傳輸到所有啟用的路徑前transaction可以commit

5.7 AFFIRM NOAFFIRM

  • AFFIRM時,在主庫redo data寫入所有備庫standby redo log後确認已收到redo log,當SYNC屬性指定時該屬性是預設值
  • NOAFFIRM時,AFFIRM時,在主庫redo data 寫入所有備庫redo log前确認已收到redo log,當ASYNC屬性指定時該屬性是預設值

總結:

上面的配置的意思為滿足下列條件時就會歸檔日志檔案到遠端路徑 :

  • 當資料庫unique 名為dg2時
  • 需要處于主庫角色
  • 需要歸檔的redo data是online log file
  • 使用LGWR程序
  • 必須等所有redo data傳輸到目标路徑才可以完成commit
  • 在redo data完成傳輸到standby redo log後才确認完成

主庫保護模式相應的屬性需求:

[周末往期回顧]Oracle Data Guard 參數介紹

上圖表面了我們實際需求的保護模式相對應的一些參數設定

6. LOG_ARCHIVE_DEST_STATE_n

該參數控制LOG_ARCHIVE_DEST_n參數的有效性

LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
           

複制

具體請檢視如下連接配接

Oracle基本參數(LOG_ARCHIVE_DEST_STATE_n)

7. REMOTE_LOGIN_PASSWORDFILE

該參數在使用密碼檔案驗證時必須使用EXCLUSIVE

具體請檢視如下連接配接

Oracle基本參數(REMOTE_LOGIN_PASSWORDFILE)

8. DB_FILE_NAME_CONVERT

該參數控制主庫資料檔案到備庫時的路徑轉換規則

如主備庫目錄結構一直可直接寫服務名

該參數隻在備庫(Standby)角色時有效,但Oracle建議主庫也設定,友善以後的角色轉換

DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...
           

複制

  • string1 是 主庫資料檔案的路徑
  • string2 是備庫資料檔案的路徑
  • string3 是 主庫資料檔案的路徑
  • string4 是備庫資料檔案的路徑

以此類推,數量不限

9. LOG_FILE_NAME_CONVERT

該參數控制主庫online log file到備庫時的路徑轉換規則

如主備庫目錄結構一直可直接寫服務名

該參數隻在備庫(Standby)角色時有效,但Oracle建議主庫也設定,友善以後的角色轉換

LOG_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...
           

複制

  • string1 是主庫資料檔案的路徑
  • string2 是備庫資料檔案的路徑
  • string3 是主庫資料檔案的路徑
  • string4 是備庫資料檔案的路徑

以此類推,數量不限

10. STANDBY_FILE_MANAGEMENT

該參數控制是否自動在備庫中建立主庫建立的資料檔案

注意下面兩點:

  1. 不會自動建立日志檔案
  2. 如果資料檔案重名會覆寫現有檔案

該參數隻在備庫(Standby)角色時有效,但Oracle建議主庫也設定,友善以後的角色轉換

STANDBY_FILE_MANAGEMENT=AUTO
           

複制

11. FAL_SERVER

FAL=fetch archive log,這個參數設定備庫從哪裡擷取歸檔日志,一般設定為主庫的服務名(service name)

該參數隻在備庫(Standby)角色時有效,但Oracle建議主庫也設定,友善以後的角色轉換

FAL_SERVER=dg2
           

複制

12. FAL_CLIENT

設定FAL的用戶端名稱,一把為本地資料庫的服務名

該參數隻在備庫(Standby)角色時有效,但Oracle建議主庫也設定,友善以後的角色轉換

FAL_CLIENT=dg1
           

複制

好了 DataGuard需要用到的參數講到這了,下節介紹Data Guard 是如何工作的