Oracle 12c DG新特性Far Sync
Oracle的Data Guard技術再11g中有了Active Data Guard,就產生了很多的技術解決方案,比如讀寫分離,多活的技術支撐等。
12c 中又有了一些改進,那就當屬Far Sync。以下是來自官網提供的一張圖,看起來很威武霸氣。
這個Far Sync到底是個什麼東東,主要就是為了解決遠距離的資料傳輸延遲,而在中間節點建立的一個虛例項,這個例項很特別,只有引數檔案,密碼問價和控制檔案,而且需要特別強調的是沒有資料檔案。
當然這個特性是一個補充,你如果使用原本的Active Data Guard也全然沒有問題。而這個特性可以透過中間節點來過渡,達到了官方所宣稱的0資料丟失。
這個特性是不是非常牛叉呢,其實如果大家瞭解Data Guard的一些知識,會發現其實這個Far Sync就是cascade standby的一個改進,所以我沒有說是一個技術上很大的一個創新。
如果已經有了Active Data Guard的環境,啟用Far Sync那就很簡單了。
下面是一個典型的DG配置情況,使用了DG Broker來統一配置管理。主庫是testdb,備庫是testdb2
DGMGRL> show configuration Configuration - dgb_testdb Protection Mode: MaxPerformance Members: testdb - Primary database testdb2 - Physical standby database Fast-Start Failover: DISABLED Configuration Status: DISABLED
需要特別強調的是,Far Sync的新增一個關鍵就是控制檔案,這個和備庫控制檔案有所區別。如果你使用的是備庫控制檔案,那很可能新增的時候得到下面的錯誤。
DGMGRL> add far_sync testdbf as connect identifier is testdbf; Error: ORA-16831: operation not allowed on this member 檢視錯誤資訊,也是一頭霧水,日誌中也沒有什麼明顯的資訊。 [oracle@teststd ~]$ oerr ora 16831 16831, 00000, "operation not allowed on this member" // *Cause: The Oracle Data Guard broker operation was not allowed for the // specified member of the Oracle Data Guard broker configuration. // *Action: Check the documentation for the Oracle Data Guard broker command // and then reissue the command with the correct member.
我剛開始玩的時候大意了,結果因為這個問題給折騰了不少時間。需引以為戒。
正確的姿勢是在主庫生成Far Sync的控制檔案:
SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/controlfs01.ctl1'; Database altered. 然後複製到備庫還原即可。 備庫執行: RMAN> restore controlfile from '/tmp/controlfs01.ctl1'; RMAN> alter database mount;
很重要的一個檢查項就是檢查v$database,輸出全然不同
SQL> select database_role,name,db_unique_name from v$database DATABASE_ROLE NAME DB_UNIQUE_NAME ------------------------------ --------------------------- ----------- FAR SYNC TESTDB testdbf
這樣就對了,我們再次在主庫新增:
新增Far Sync節點: DGMGRL> add far_sync TESTDBF as connect identifier is TESTDBF; far sync instance "testdbf" added 啟用配置 DGMGRL> enable far_sync TESTDBF; Enabled. 檢視配置情況: DGMGRL> DGMGRL> show configuration; Configuration - dgb_testdb Protection Mode: MaxPerformance Members: testdb - Primary database testdb2 - Physical standby database testdbf - Far sync instance Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 5 seconds ago)
Far Sync的節點就這樣搞定了。其實就是中間走了一層轉接,而對於Far Sync而言,使用DG Broker搭建就是兩條簡單的命令即可。其實在後臺日志中是設定歸檔路徑引數:
Sat Oct 29 23:21:23 2016 ALTER SYSTEM SET log_archive_dest_3='service="testdbf"','ASYNC NOAFFIRM delay=0 optional compression=disable max_failure=0 max_connections=1 reopen=300 db_unique_name="testdbf" net_timeout=30','valid_for=(online_logfile,all_roles)' SCOPE=BOTH; Sat Oct 29 23:21:23 2016 ALTER SYSTEM SET log_archive_dest_state_3='ENABLE' SCOPE=BOTH;
所以核心的部分就在於這兒,還有一個地方是Far Sync節點,Fal_server的設定
FAR SYNC節點: SQL> show parameter fal NAME TYPE VALUE ------------------------------------ ---------- ----------- fal_client string fal_server string testdb, testdb2
我們可以簡單測試一下Far Sync的影響範圍:
直接shutdown abort Far Sync節點,主庫會馬上收到一條錯誤資訊:
Sat Oct 29 23:29:18 2016 Errors in file /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_tt02_8451.trc: ORA-03135: connection lost contact
這個時候測試節點的日誌傳輸還是可以的,當然遠距離還是會把影響放大。
而在Far Sync節點恢復之後,主庫日誌會發生變化:
ERROR: Shared memory area is accessible to instance startup process prior to instance startup operation. Sat Oct 29 23:32:17 2016 ALTER SYSTEM SET log_archive_dest_state_3='ENABLE' SCOPE=MEMORY SID='*';
再次檢視DG Broker的配置就沒有問題了。
DGMGRL> show configuration; Configuration - dgb_testdb Protection Mode: MaxPerformance Members: testdb - Primary database testdb2 - Physical standby database testdbf - Far sync instance Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 41 seconds ago)
這個測試的過程還是比較流暢的,還有更多的細節,後續繼續分享。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2127324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 12c DG新特性 - Active Data Guard Far Sync (Doc ID 2179719.1)
- 【DATAGUARD】Data Guard 12C 新特性:Far Sync Standby (Doc ID 2179719.1)
- Oracle Far Sync例項Oracle
- 5 Using Far Sync Instances 使用Far Sync遠端同步例項
- Oracle 12C新特性-History命令Oracle
- Oracle 12C新特性In-MemoryOracle
- Oracle 12c 兩個新特性Oracle
- Oracle 12c新特性--ASMFD(ASM Filter Driver)特性OracleASMFilter
- Oracle 11g DG新特性--Automatic block repairOracleBloCAI
- Oracle 12c的DG自動同步密碼檔案--ASM 新特性:共享密碼檔案Oracle密碼ASM
- Oracle 12C新特性-RMAN恢復表Oracle
- Oracle 12c新特性---Rapid Home Provisioning (RHP)OracleAPI
- Oracle 12C新特性-資料泵新引數(LOGTIME)Oracle
- Oracle 12C新特性-資料泵新引數(VIEWS_AS_TABLES)OracleView
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- Oracle linux 7.5安裝oracle 12c dg一直提示ORA-01017OracleLinux
- Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)Oracle模式
- ORACLE 12C 優化器的一些新特性總結(二)Oracle優化
- ORACLE 12C 優化器的一些新特性總結(一)Oracle優化
- Oracle 12c DG管理-分離SYS特權使用者Oracle
- 12c RMAN新特性之Recover Table
- Oracle 12C TDE問題引發DG不同步案例分析Oracle
- Oracle 12c DG備庫啟動報錯standby database requires recoveryOracleDatabaseUI
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- Oracle 12c新特性--LREG程式專門負責註冊例項服務Oracle
- 【12.2】Oracle 12C R2新特性-外部表支援分割槽了(Partitioning External Tables)Oracle
- [20190718]12c rman新特性 表恢復.txt
- 【12c】12c RMAN新特性之recover table(表級別恢復)
- oracle dg報錯Oracle
- Oracle:DG 的 switchoverOracle
- 12c新特性,線上move資料檔案
- Oracle merge 與 PG新特性 UPSERTOracle
- 嚐鮮Oracle Database 12c的十二大新特性VKOracleDatabase
- [20190107]12c以上版本配置dg注意.txt
- DG備庫未啟動SCN 新特性引起ORA-600 2252
- Oracle DG 日常點檢Oracle
- Oracle DG管理Broker配置Oracle
- Oracle RAC+DG搭建Oracle
- 12C新特性___In-Memory列式儲存的總結