搭建乙個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...