簡述對DG引數檔案的理解
一、配置DG時的常規引數
- 配置靜態監聽為了能遠端登入資料庫,在DG中是為了RMAN能連線。
- 配置網路連線名是為了給主備庫取別名並且方便登入
- 配置DG時的重要引數
- 對主庫的引數檔案修改:
*.db_name='orcl' |
資料庫的例項名 |
*.db_unique_name='orcl_p' |
Primary端資料庫的唯一名字 |
*.log_archive_config='dg_config=(orcl_p,orcl_s)' |
該引數用來控制從遠端資料庫接收或傳送REDO資料,通過DG_CONFIG屬性羅列同一個Data Guard中所有DB_UNIQUE_NAME(含Primary資料庫和Standby資料庫),以逗號分隔,SEND/NOSEND屬性控制是否可以傳送,RECEIVE/NORECEIVE屬性控制是否能夠接收 |
*.log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl_p' |
在主庫起作用,本地歸檔日誌存放路徑,所有角色,所有日誌 |
*.log_archive_dest_2='service=orcl_s valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_s' |
遠端使用者是orcl_s,目的地可用的當前資料庫是主庫,當前線上日誌正在歸檔 |
*.log_archive_dest_state_1=enable |
對log_archive_dest_1宣告:允許傳送 |
*.log_archive_dest_state_2=enable |
對log_archive_dest_2宣告:允許傳送 |
*.standby_file_management='auto' |
如果Primary資料庫資料檔案發生修改(如新建、重新命名等)則按照本引數的設定在Standby資料庫中作相應修改。設為AUTO表示自動管理。設為MANUAL表示需要手工管理 |
*.fal_server='orcl_s' |
當日志沒有同步是,從orcl_s抓取檔案 |
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' |
主備庫日誌檔案存放路徑 |
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' |
Standby資料庫的資料檔案路徑與Primary資料庫資料檔案路徑不一致時,可以通過設定DB_FILE_NAME_CONVERT引數的方式讓其自動轉換。該引數值應該成對出現,前面的值表示轉換前的形式,後面的值表示轉換後的形式 |
- 對備庫的引數檔案修改
*.db_name='orcl' |
資料庫的例項名 |
*.db_unique_name='orcl_s' |
standby端的唯一名字 |
*.log_archive_config='dg_config=(orcl_p,orcl_s)' |
該引數用來控制從遠端資料庫接收或傳送REDO資料,通過DG_CONFIG屬性羅列同一個Data Guard中所有DB_UNIQUE_NAME(含Primary資料庫和Standby資料庫),以逗號分隔,SEND/NOSEND屬性控制是否可以傳送,RECEIVE/NORECEIVE屬性控制是否能夠接收 |
*.log_archive_dest_1='location=/u01/arch valid_for= (all_logfiles,all_roles) db_unique_name=orcl_s' |
在主庫起作用,本地歸檔日誌存放路徑,所有角色,所有日誌 |
*.log_archive_dest_2='service=orcl_p valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_p' |
遠端使用者是orcl_p,目的地可用的當前資料庫是主庫,當前線上日誌正在歸檔 |
*.log_archive_dest_state_1=enable |
對log_archive_dest_1宣告:允許傳送 |
*.log_archive_dest_state_2=enable |
對log_archive_dest_2宣告:允許傳送 |
*.standby_file_management='auto' |
如果Primary資料庫資料檔案發生修改(如新建、重新命名等)則按照本引數的設定在Standby資料庫中作相應修改。設為AUTO表示自動管理。設為MANUAL表示需要手工管理 |
*.fal_server='orcl_p' |
當日志沒有同步是,從orcl_p抓取檔案 |
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' |
主備庫日誌檔案存放路徑 |
* .db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' |
Standby資料庫的資料檔案路徑與Primary資料庫資料檔案路徑不一致時,可以通過設定DB_FILE_NAME_CONVERT引數的方式讓其自動轉換。該引數值應該成對出現,前面的值表示轉換前的形式,後面的值表示轉換後的形式 |
備註:主庫和備庫不同的引數用紅字標記出
主要講一下log_archive_dest_2引數的配置
該引數僅當資料庫角色為primary時生效,指定primary歸檔redo log到該引數定義的standby database上
該引數是dataguard上最重要的引數之一,它定義了redo log的傳輸方式(sync or async)以及傳輸目標,直接決定了dataguard的資料保護級別
它的格式如下:*.log_archive_dest_2='service=orcl_p valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_p'
- service/location 遠端/本地
- Valid_for
其中:redo_log_type有三種
Online_logfile 目的地可用當前線上日誌正在歸檔
Standby_logfile 目的地可用當前備庫線上日誌正在歸檔
All_logfile
其中:database_role有三種:
Primary_role 目的地可用的當前資料庫是主庫
Standby_role 目的地可用的當前資料庫是備庫
All_role
- sync/async 同步/非同步
- Net_timeout LGWR程序等待遠端傳輸日誌成功到確認的時間,數值1-1200,預設30秒,oracle建議配置
- AFFIRM/NOAFFIRM AFFIRM:指定直到接收從原庫傳來的日誌並寫到備庫日誌中才確定。 NOAFFIRM:指定不用等待接收到從原庫傳來的日誌並寫到備庫日誌才確定
- Reopen:try to reopen a failed destination的秒數2,預設300秒
- DG的三種保護模式
- 最大效能模式(maximum performance)
- 這種模式是預設模式,可以保證資料庫的最大效能
- 保證主庫不受備庫影響,主庫事務正常提交
- 優點:避免了備庫對主庫的效能和可用性影響
- 缺點:如果主庫提交的事務沒有傳送到備庫,則這些事務會丟失
- 最高可用模式(maximum availability)
- 這種模式下,只有在備庫收到重做日誌以後,主庫的事務才能夠提交
- 主庫找不到合適的備庫寫入時,主庫不會關閉,臨時到最大效能模式,直到問題解決
- 優點:該模式下載沒有問題出現的情況下,保證資料不會丟失
- 缺點:主庫的效能會受到諸多因素的影響
- 最大保護模式(maximum protection)
- 這種模式提供了最高級別的資料保護能力
- 只有在備庫收到重做日誌以後,主庫的事務才能夠提交
- 主庫找不到合適的備庫寫入時,主庫會自動關閉
- 優點:該模式可以確保資料不丟失
- 缺點:主庫會自動關閉,對主庫的效能有很大的影響