DataGuard學習之部分引數配置

2021-09-05 22:40:03 字數 4630 閱讀 9156

搭建乙個10g版本dataguard環境,難點之一是配置資料庫名、角色、歸檔以及diskgroup等相關的引數。以如下環境為例:

hostname

role

instance_name

tnsnames.ora

db1primary node1

db1db1,db2,dr1,dr2

db2primary node2

db2db1,db2,dr1,dr2

dr1db1

db1,db2,dr1,dr2

dr2standby node2

db2db1,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上。

格式如下:

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 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的路徑

10.log_file_name_convert

同db_file_name_convert類似,定義主備log檔案的存放路徑轉換。

--最後總結

整理的過程中,發現一些引數涉及到很多細節問題。特別是log_archive_dest_2引數直接關係到redo log的傳輸機制,而其中類似"

lgwr async」和"valid_for

」的屬性都是容易習慣性忽略的地方。

Dataguard之redo傳輸服務

整個data guard體系就是圍繞三個關鍵點展開 日誌傳送 redo send 日誌接收 redo receive primary database產生的redo日誌需要傳送到standby database。傳送動作由primary database的lgwr或者arch程序完成。不同的歸檔目的...

dataguard建立物理備庫幾個關鍵引數詳解

oracle的dataguard建立其實並不難,尤其是在11g中可以用 rman active duplicate建立standby 後,dataguard的建立變得非常的簡單便捷,如果熟悉dataguard的各項引數的意義和用法後,基本上乙個指令碼就能完成。下面是我總結的一些dataguard的要...

sprite, animation部分打包引數備忘

icon 使用assetdatabase.getassetpath 獲取該asset相對於project floder的路徑。assetdatabase.loadallassetsatpath sprite路徑 會獲得1個sprite 1個texture2d assetdatabase.loadal...