Data Guard 學習之引數設定
網上有一篇介紹dataguard涉及到引數的文章《配置Data Guard涉及到的引數詳解》,工作時也從中學到很多。自己總結,格式因為喜好問題難免雷同特提前宣告。
搭建一個10g版本DataGuard環境,難點之一是配置資料庫名、角色、歸檔以及diskgroup等相關的引數。以如下環境為例:
HostName | Role | instance_name | tnsnames.ora |
db1 | Primary node1 | db1 | db1,db2,DR1,DR2 |
db2 | primary node2 | db2 | db1,db2,DR1,DR2 |
dr1 | Standby Apply node1 | db1 | db1,db2,DR1,DR2 |
dr2 | Standby node2 | db2 | db1,db2,DR1,DR2 |
總結一些需要根據主機和資料庫環境進行自定義的引數。dataguard涉及到的其他引數,類似"log_archive_format”等有固定寫法的這裡不做解釋。
1.DB_NAME
只需注意DataGuard的主備各節點instance使用相同的db_name即可。推薦與service_name一致。
Primary Site | Standby Site |
*.DB_NAME='DB' | *.DB_NAME='DB' |
2.DB_UNIQUE_NAME
Primary與Standby端資料庫的唯一名字,設定後不可再更改。
注意:
如果主備db_unique_name不一樣,需要與LOG_ARCHIVE_CONFIG配合使用
db_unique_name並未規定需要與資料庫service_name一致,可以自定義任意名稱。
Primary Site | Standby Site |
*.db_unique_name='Primary’ | *.db_unique_name='Standby’ |
3.LOG_ARCHIVE_CONFIG
列出主備庫上的DB_UNIQUE_NAME 引數。預設情況下,定義該引數保證資料庫能夠傳送或接收redo log。
1>Primary與Standby端的db_unique_name不一致時
Primary Site | Standby Site |
*.db_unique_name=Primary | *.db_unique_name=Standby |
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)' | *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)' |
2>Primary與Standby端的db_unique_name一致時
Primary Site | Standby Site |
*.db_unique_name=test | *.db_unique_name=test |
*.LOG_ARCHIVE_CONFIG='' | *.LOG_ARCHIVE_CONFIG='' |
4.LOG_ARCHIVE_DEST_1
本地歸檔路徑。Primary與Standby需要定義各自的online redo log的歸檔地址,以系統實際的存放路徑為準。格式如下:
Primary Site: *.LOG_ARCHIVE_DEST_1='LOCATION=/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) ' Standby Site: *.LOG_ARCHIVE_DEST_1='LOCATION=/stdby/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) ' |
注意:
1> 當主備兩端定義的db_unique_name不一致時,會在LOG_ARCHIVE_DEST_1設定DB_UNIQUE_NAME的值,設定為本地的db_unique_name。以priamry端為例,格式如下:
*.LOG_ARCHIVE_DEST_1='LOCATION=/archivelog/ VALID_FOR=(ALL_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=Primary' |
5.LOG_ARCHIVE_DEST_2
該引數僅當資料庫角色為primary時生效,指定primary傳輸redo log到該引數定義的standby database上。
log_archive_dest_2可以說是dataguard上最重要的引數之一,它定義了redo log的傳輸方式(sync or async)以及傳輸目標(即standby apply node),直接決定了dataguard的資料保護級別。
格式如下:
Primary Site: *.LOG_ARCHIVE_DEST_2='SERVICE=DR1 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) ' Standby Site: (switch over後生效) *.LOG_ARCHIVE_DEST_2='SERVICE=db1 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) ' |
注意:
1> LOG_ARCHIVE_DEST_2引數裡定義的service值,比如DR1,是tnsnames.ora檔案裡定義的Oracle Net名稱。
2> 有時會在LOG_ARCHIVE_DEST_2定義DB_UNIQUE_NAME的值,當前節點設定的均為另一端資料庫的db_unique_name。以primary端為例,格式如下:
*.LOG_ARCHIVE_DEST_2='SERVICE=DR1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=Standby' |
6.LOG_ARCHIVE_DEST_3
該引數僅當資料庫角色為standby時生效,定義standby database歸檔從primary database傳過來的redo log的路徑。
oracle10g官方文件只是在create logical standby時解釋了log_archive_dest_3這個引數,搭建physical standby時並沒有做任何介紹。
Primary Site: *.LOG_ARCHIVE_DEST_3='LOCATION=/archivelog/standbylog/ VALID_FOR= (STANDBY_LOGFILES,STANDBY_ROLE) ' Standby Site: *.LOG_ARCHIVE_DEST_3='LOCATION=/arch/arch3/ VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) ' |
注意:
LOCATION定義的路徑以本節點能讀寫的實際路徑為準。
7.LOG_ARCHIVE_DEST_STATE_n
設定為ENABLE,啟用log_archive_dest_n定義的屬性。
8.FAL_SERVER and FAL_CLIENT
FAL是Fetch Archive Log的簡寫,它是dataguard主備之間GAP的處理機制。
Primary上不會有GAP,所以fal_server和fal_client也是隻在standby上生效的引數,當然為了switch over的需要同樣會在primary端進行預設定。
FAL引數定義的資料庫名同樣取自本地tnsnames.ora裡配置的Oracle Net Service Name.
Primary Site | Standby Site |
*.fal_server='DR1',’DR2’ | *.fal_server='db1',’db2’ |
*.fal_client='db1' | *.fal_client='DR1' |
9.DB_FILE_NAME_CONVERT
primary與standby上diskgroup的名稱或是資料檔案的存放路徑不一致的時候,需要定義該引數進行轉換,否則standby apply後無法建立與primary一致的資料檔案並報錯。
格式如下:
Primary Site: *.db_file_name_convert='+DATAGRP/db/datafile/','+DG1/db/datafile/' Standby Site: *.db_file_name_convert='+DG1/db/datafile/','+DATAGRP/db/datafile/' |
1> +DG1/db/datafile/是primary dastabase上存放datafile的路徑
2> +DATAGRP/db/datafile/是standby上存放datafile的路徑
注意:
1>primary上的該引數僅在主備switch over後生效
2>注意格式應保持一致,比如"*.db_file_name_convert='+DG1/db/datafile','+DATAGRP/db/datafile/' ”,路徑少了一個"/”,將導致standby apply失敗。
3>primary上執行create tablespace等add datafile操作時,無須自定義datafile的全路徑名稱,由資料庫自動建立datafile即可。
10.LOG_FILE_NAME_CONVERT
同DB_FILE_NAME_CONVERT類似,定義主備log檔案的存放路徑轉換。
--最後總結
整理的過程中,發現一些引數涉及到很多細節問題。特別是LOG_ARCHIVE_DEST_2引數直接關係到redo log的傳輸機制,而其中類似"LGWR ASYNC”和"VALID_FOR”的屬性都是容易習慣性忽略的地方。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-675706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jmeter學習指南之引數化CSV Data Set ConfigJMeter
- 引數匹配模型——Python學習之引數(二)模型Python
- Python學習之引數(一)Python
- 引數匹配順序——Python學習之引數(三)Python
- 機器學習之超引數機器學習
- OceanBase學習之路53|多租戶管理引數如何設定?
- 深度學習煉丹-超引數設定和網路訓練深度學習
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- 單機搭建Data Guard
- tomcat vm 引數設定Tomcat
- SpringBoot基礎學習(三) 自定義配置、隨機數設定及引數間引用Spring Boot隨機
- 【DG】Data Guard搭建(physical standby)
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle
- 1 Oracle Data Guard Broker 概念Oracle
- bd_ticket_guard_client_dataclient
- Oracle Data Guard和Broker概述Oracle
- 使用Data Guard Broker進行Data Guard物理備用庫配置(Oracle 19c)Oracle
- ES6語法學習筆記之函式預設引數筆記函式
- golang學習之路之函式可變引數Golang函式
- mysql innodb_data_file_path引數忘記設定或者重新調整辦法MySql
- R語言data manipulation學習筆記之subset dataR語言筆記
- JVM常見引數設定JVM
- pandas引數設定小技巧
- Metasploit設定VERBOSE引數技巧
- Metasploit設定HttpTrace引數技巧HTTP
- Metasploit設定LHOST引數技巧
- JVM引數設定大氣JVM
- 8 Oracle Data Guard Broker 屬性Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- Bd-Ticket-Guard-Client-Data逆向client
- 【Data Pump】Data Pump的並行引數原理並行
- 深入學習js之——引數按值傳遞#9JS
- Oracle設定日誌引數-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;OracleDatabase
- 機器學習(3),opencv4.0中SVM各個引數的意義,設定機器學習OpenCV
- 2.6.10 設定許可證引數
- [20200220]windows設定keepalive引數.txtWindows
- 系統學習機器學習之半引數方法(二)--基於密度機器學習