Oracle broker 詳解
1,簡介
01,介紹
Data Guard broker是建立在Data Guard基礎上的一個對Data Guard配置,集中管理操作的一個平臺.我們再上次DG主備切換的時候會發現特別麻煩,為此broker出來了。
02,DGbroker的三種保護模式
– Maximum protection
在Maximum protection下, 可以保證從庫和主庫資料完全一樣,做到zero data loss.事務同時在主從兩邊提交完成,才算事務完成。如果從庫宕機或者網路出現問題,主從庫不能通訊,主庫也立即宕機。在這種方式下,具有最高的保護等級。但是這種模式對主庫效能影響很大,要求高速的網路連線。
– Maximum availability
在Maximum availability模式下,如果和從庫的連線正常,執行方式等同Maximum protection模式,事務也是主從庫同時提交。如果從庫和主庫失去聯絡,則主庫自動切換到Maximum performance模式下執行,保證主庫具有最大的可用性。
– Maximum performance
在Maximum performance,主庫把歸檔的 archived log通過arch程序傳遞給從庫,在這種方式下,主庫執行效能最高,但是不能保證資料不丟失,且丟失的資料受redo log的大小影響。在redo log過大的情況下,可能一天都沒有歸檔一個日誌,可以通過手工切換日誌的方式來減小資料的丟失。
03,檢視DGbroker的模式
show configuration verbose;
二,配置
01,配置監聽,主庫新增
(SID_DESC =
(GLOBAL_DBNAME=Oracle01_DGMGRL)
(ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
(SID_NAME =oracle01)
)
lsnrctl reload
02,備庫配置監聽
(SID_DESC =
(GLOBAL_DBNAME=standby_DGMGRL)
(ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)
(SID_NAME =standby)
)
lsnrctl reload
03,主備配置操作
show parameter dg_broker_config_file
可以修改dg_broker_config_file引數。這裡就用預設的路徑,也可以自己指定。如果是在RAC環境中,這個把這個檔案把到共享的儲存上面,如果有ASM可以放到ASM中。
啟動broker
alter system set dg_broker_start=true;
04,主庫操作
執行:
dgmgrl
連線資料庫
DGMGRL> connect sys/123456@oracle01
幫助命令
DGMGRL>help create
建立
DGMGRL>create configuration dg as primary database is oracle01 connect identifier is oracle01;
如果發現創建出錯,或者其他原因
可以執行
DGMGRL> remove configuration;
Removed configuration
啟用配置檔案
enable configuration
----------------------------------------------------------------------------------------------
如果是12G 出現 ORA-16698錯誤那可以通過在Primary 和 Standby上取消log_archive_dest_n引數來解決,
實際這一塊的引數應當是交給DG broker 來管理了,不再需要人為介入設定。
即執行: alter system set log_archive_dest_2='';
然後繼續執行:create configuration dg as primarydatabase is oracle01 connect identifier is oracle01
----------------------------------------------------------------------------------------------
05,備庫操作
DGMGRL> add database standby as connect identifier is standby;
Database "standby" added
DGMGRL>show configuration ----檢視

06,檢視詳細配置
DGMGRL>show database verbose oracle01
DGMGRL>show database verbose standby
07,配置錯誤
DGMGRL> show database standby;
Database - standby
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 81 seconds ago)
Apply Lag: (unknown)
Apply Rate: (unknown)
Real Time Query: OFF
Instance(s):
standby
Error: ORA-16797: database is not using a server parameter file
Database Status:
ERROR
是因為需要設定spfile的
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
SQL> create spfile from pfile;
File created.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 2505338880 bytes
Fixed Size 2255832 bytes
Variable Size 603980840 bytes
Database Buffers 1879048192 bytes
Redo Buffers 20054016 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/db_1/dbs/spfilestandby.ora
SQL>
08,錯誤2
DGMGRL> show configuration
Configuration - dg
Protection Mode: MaxPerformance
Databases:
oracle01 - Primary database
standby - Physical standby database
Error: ORA-16766: Redo Apply is stopped
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
很清楚了,程序停
嘗試啟動:
DGMGRL> edit database 'standby' set state='apply-on';
Succeeded.
更多Oracle相關資訊見 Oracle 專題頁面 https://www.linuxidc.com/topicnews.aspx?tid=12
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2019-03/157583.htm