12c DG新特性 - Active Data Guard Far Sync (Doc ID 2179719.1)

lhrbest發表於2020-03-19


 一.1  建立 Far sync
建立Far Sync例項類似於建立物理備庫,但資料檔案在Far Sync例項中不存在。因此不需要拷貝資料檔案並還原資料檔案。一旦Far Sync例項建立了,那麼就預設執行在Maximum Availability模式,那麼REDO是實時同步傳輸的。
 
一.1.1  原DG環境
主庫:lhr122
Far Sync:lhr122fs
備庫:lhr122dg
 
DGMGRL> show configuration
 
Configuration - lhr122
 
  Protection Mode: MaxPerformance
  Members:
  lhr122   - Primary database
    lhr122dg - Physical standby database 
 
Fast-Start Failover: DISABLED
 
Configuration Status:
SUCCESS   (status updated 4 seconds ago)
 
 
SYS@lhr122> select * from V$DATAGUARD_CONFIG;
 
DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
lhr122                         NONE                           PRIMARY DATABASE      3086907          0
lhr122dg                       lhr122                         PHYSICAL STANDBY      3086973          0
 
SYS@lhr122> col name format a25
SYS@lhr122> col VALUE format a100
SYS@lhr122> SELECT a.NAME,
  2         a.VALUE
  3  FROM   v$parameter a
  4  WHERE  (a.NAME LIKE '%file_name_convert' OR a.NAME LIKE 'fal%' OR
  5         a.NAME LIKE 'standby_file%' OR a.NAME = 'log_archive_config' OR
  6         A.NAME LIKE 'log_archive_dest_%')
  7  AND    A.VALUE IS NOT NULL
  8  and a.VALUE!='enable';
 
NAME                      VALUE
------------------------- ----------------------------------------------------------------------------------------------------
db_file_name_convert      /u04/oradata/lhr122dg/, /u04/oradata/lhr122/
log_file_name_convert     /u04/oradata/lhr122dg/, /u04/oradata/lhr122/
log_archive_dest_1        LOCATION=/u04/oradata/lhr122/  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lhr122
log_archive_dest_2        service="lhr122dg", ASYNC NOAFFIRM delay=0 optional compression=disable max_failure=0 max_connection
                          s=1 reopen=300 db_unique_name="lhr122dg" net_timeout=30, valid_for=(online_logfile,all_roles)
 
log_archive_dest_state_2  ENABLE
fal_client                lhr122
log_archive_config        dg_config=(lhr122,lhr122dg)
standby_file_management   AUTO
 
一.1.2  主庫配置和操作
一.1.2.1  建立Far sync例項控制檔案
ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/control01.ctl';
 
一.1.2.2  建立Far sync例項引數檔案
create pfile='/tmp/initlhr122fs.ora' from spfile;
 
一.1.2.3  傳遞相關檔案到Far Sync例項主機
將生成的控制檔案、引數檔案、主庫密碼檔案、tnsnames.ora、listener.ora傳遞到Far Sync例項主機。
我這裡是在本機搭建的:
cp /tmp/control01.ctl  /u04/oradata/lhr122fs/
cp /tmp/initlhr122fs.ora  /u04/oradata/lhr122fs/
cp $ORACLE_HOME/dbs/orapwlhr122 $ORACLE_HOME/dbs/orapwlhr122fs
 
 
 
一.1.3  Far Sync例項配置
 
一.1.3.1  修改PFILE
audit_file_dest='/u07/app/oracle/admin/lhr122fs/adump'
control_files='/u04/oradata/lhr122fs/control01.ctl'
db_name='lhr122'
db_unique_name='lhr122fs'
dg_broker_start=TRUE
diagnostic_dest='/u07/app/oracle'
fal_client='lhr122fs'
fal_server='lhr122','lhr122dg'
log_archive_config='dg_config=(lhr122,lhr122fs,lhr122dg)'
log_archive_dest_1='LOCATION=/u04/oradata/lhr122fs/  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lhr122fs'
log_archive_dest_2='SERVICE=lhr122dg ASYNC NOAFFIRM VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=lhr122dg'
log_archive_dest_state_2='ENABLE'
log_file_name_convert='/u04/oradata/lhr122/','/u04/oradata/lhr122fs/','/u04/oradata/lhr122dg/','/u04/oradata/lhr122fs/'
db_file_name_convert='/u04/oradata/lhr122/','/u04/oradata/lhr122fs/','/u04/oradata/lhr122dg/','/u04/oradata/lhr122fs/'
standby_file_management='AUTO'
pga_aggregate_target=158m
sga_target=419430400
 
一.1.3.2  建立路徑
 
mkdir -p /u07/app/oracle/admin/lhr122fs/adump
mkdir -p /u04/oradata/lhr122fs
 
 
 
 
一.1.3.3  將Far Sync例項啟動到mount
ORACLE_SID=lhr122fs
sqlplus / as sysdba
create spfile from pfile='/u04/oradata/lhr122fs/initlhr122fs.ora';
startup mount;
 
SYS@lhr122fs> select protection_mode,database_role,protection_level,open_mode from v$database;
 
PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL     OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  FAR SYNC         MAXIMUM PERFORMANCE  MOUNTED
 
 
一.1.4  主備庫和Far Sync新增TNSNAME
lhr122fs =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.130)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lhr122fs)
    )
  )
 
一.1.5  Far Sync新增監聽
 
    (SID_DESC =
      (GLOBAL_DBNAME = lhr122fs)
      (ORACLE_HOME = /u07/app/oracle/product/12.2.0/dbhome_1)
      (SID_NAME = lhr122fs)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = lhr122fs_DGMGRL)
      (ORACLE_HOME = /u07/app/oracle/product/12.2.0/dbhome_1)
      (SID_NAME = lhr122fs)
    )
 
lsnrctl reload
 
一.1.6  修改引數啟用Far Sync配置
一.1.6.1  修改主庫引數
修改配置,指向Far Sync例項
alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(lhr122,lhr122fs,lhr122dg)' scope=both;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=lhr122fs SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lhr122fs' scope=both;
 
一.1.6.2  備庫修改配置
 
alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(lhr122,lhr122fs,lhr122dg)' scope=both;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=lhr122 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lhr122';
alter system set db_file_name_convert='/u04/oradata/lhr122/','/u04/oradata/lhr122dg/' scope=spfile;
alter system set log_file_name_convert='/u04/oradata/lhr122/','/u04/oradata/lhr122dg/' scope=spfile;
alter system set standby_file_management='AUTO' sid='*';
alter system set fal_server='lhr122fs','lhr122' sid='*';
alter system set fal_client='lhr122dg' sid='*';
 
 
一.1.7  主庫查詢
SYS@lhr122> SELECT * FROM V$DATAGUARD_CONFIG;
 
DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
lhr122                         NONE                           PRIMARY DATABASE      3106169          0
lhr122fs                       lhr122                         FAR SYNC INSTANCE     3105997          0
lhr122dg                       lhr122fs                       PHYSICAL STANDBY      3106050          0
 
 
一.2  配置dgmgrl
一.2.1  刪除所有配置
remove configuration;
 
一.2.2  去除DG redo log同步引數設定
alter system set log_archive_dest_2='';
 
注:在12cR1以前版本中,配置dg broker是不需要去除。但是在12cR1以上版本中,如果不去除已配置了dg redo log同步引數,那麼在建立dg broker的時候會出現如下錯誤:
DGMGRL> add far_sync lhr122fs as connect identifier is lhr122fs;
Error: ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set
 
oerr ora 16649
16649, 0000, "possible failover to another database prevents this database from being opened"
// *Cause: An attempt to open the primary database was made either after
// a failover occurred, or when it was likely to have occurred as
// the result of the primary being isolated from the fast-start
// failover target standby database and from the fast-start failover
// observer.
// *Action: Check if a failover did occur. If fast-start failover is enabled,
// and a failover did not occur, ensure that connectivity exists
// between the primary database and either the observer or the
// target standby database. Then, try opening the database again.
 
 
一.2.3  新增
remove configuration;
create configuration dgmgrl_lhr122 as primary database is lhr122 connect identifier is lhr122;
 
add far_sync lhr122fs as connect identifier is lhr122fs;
 
# alter system set log_archive_dest_2='';
add database lhr122dg as connect identifier is lhr122dg maintained as physical;
 
 
--這裡非常重要
edit database lhr122 set property  RedoRoutes = '(lhr122:lhr122fs SYNC)';
edit far_sync lhr122fs set property  RedoRoutes = '(lhr122:lhr122dg ASYNC)';
 
show database lhr122  RedoRoutes
show far_sync lhr122fs  RedoRoutes
show database lhr122dg  RedoRoutes
 
 
edit database lhr122 set property 'FastStartFailoverTarget'='lhr122dg';
edit database lhr122dg set property 'FastStartFailoverTarget'='lhr122';
 
 
 
show database lhr122  StaticConnectIdentifier
show far_sync lhr122fs  StaticConnectIdentifier
show database lhr122dg  StaticConnectIdentifier
 
edit database lhr122 set property StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=lhr122)(INSTANCE_NAME=lhr122)(SERVER=DEDICATED)))';
edit far_sync lhr122fs set property StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=lhr122fs)(INSTANCE_NAME=lhr122fs)(SERVER=DEDICATED)))';
edit database lhr122dg set property StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=lhr122dg)(INSTANCE_NAME=lhr122dg)(SERVER=DEDICATED)))';
 
 
enable configuration
 
 
DGMGRL> show configuration
 
Configuration - dgmgrl_lhr122
 
  Protection Mode: MaxPerformance
  Members:
  lhr122   - Primary database
    lhr122fs - Far sync instance 
      lhr122dg - Physical standby database 
 
Fast-Start Failover: DISABLED
 
Configuration Status:
SUCCESS   (status updated 15 seconds ago)
 
 
 
一.2.4  switchover和failover
---- switchover 
dgmgrl sys/lhr@lhr122
switchover to lhr122dg;
 
 
-----切換完成後需要重新配置RedoRoutes
--若執行卡住,則重啟一下備庫即可
edit database lhr122dg set property  RedoRoutes = '(lhr122dg:lhr122fs SYNC)';
edit far_sync lhr122fs set property  RedoRoutes = '(lhr122dg:lhr122 ASYNC)';
 
---- failover 
dgmgrl sys/lhr@lhr122dg
failover to lhr122dg
 
 
edit database lhr122dg set property  RedoRoutes = '(lhr122dg:lhr122fs SYNC)';
edit far_sync lhr122fs set property  RedoRoutes = '(lhr122dg:lhr122 ASYNC)';
 
 
reinstate database  lhr122







Data Guard 12C 新特性:Far Sync Standby (Doc ID 2179719.1)


文件內容

目標
解決方案
建立一個遠端同步備用例項 
Data Guard Broker 和遠端同步備用資料庫 
White paper
參考

適用於:

Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Backup Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
本文件所含資訊適用於所有平臺
***Checked for relevance on 13-Jul-2015***

目標

本文的目的是介紹新的備庫型別 Far Sync Standby。

解決方案

遠端同步備用資料庫是一個級聯備用資料庫充當一個重做日誌庫的終端資料庫。它不包含任何資料檔案。遠端同步備用資料庫上只有日誌傳輸服務。遠端同步備用資料庫的好處是,它可以在本地伺服器執行,並且以最大可用模式執行,物理或邏輯備庫就可以執行在遠端站點。  

建立一個遠端同步備用例項 

配置 Far Sync Standby 時,準備環境與物理備庫的環境相同,請參閱:

Note 1475344.1 Creating a Physical Standby Database on Oracle 11.2.0.x

-> 準備環境和備用例項

例如:

在主資料庫建立一個 Far Sync Standby 控制檔案,並使用該控制檔案掛載遠端同步例項:

SQL> alter database create far sync instance controlfile as ‘<File Specification>’;

 然後,您可以設定日誌運輸服務的級聯備庫,方法與普通的級聯備用資料庫相同。

Data Guard Broker 和遠端同步備用資料庫 

Data Guard Broker 支援 Far Sync Standby 和級聯備用資料,您可以通過新增遠端同步備用到您的 Data Guard Broker 的配置中:

DGMGRL> add far_sync <Name> as connect identifier is <Connect Identifier>;

然後相應的設定 Data Guard Broker 屬性“RedoRoutes”。您可以在下面的文件中找到關於“RedoRoutes”的說明:

Note 1542969.1 Cascaded Standby Databases in Oracle 12c

White paper

Oracle Active Data Guard Far Sync 資料零丟失
https://www.oracle.com/technetwork/database/availability/farsync-2267608.pdf



References

參考

NOTE:1475344.1  - Creating a Physical Standby Database
NOTE:1578787.1  - 12c Data guard Switchover Best Practices using SQLPLUS
NOTE:1582837.1  - 12c Dataguard Switchover Best Practices using DGMGRL(Dataguard Broker Command Prompt)



在 12c 上配置 Create Dataguard Broker - DGMGRL (Doc ID 2102854.1)

文件內容

目標
解決方案
Dataguard Broker Supports Far/Fast SYNC Standby
參考

適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 到 12.1.0.1 [發行版 12.1]
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
本文件所含資訊適用於所有平臺

目標

Goal 

本文件提供了逐步建立代理配置的方法。

注意:在下面的影像和/或文件內容中,所使用的使用者資訊和環境資料表示來自Oracle示例模式,隨Oracle資料庫產品一起提供的公共文件或其他培訓材料的虛擬資料。 與實際環境的任何相似之處,純屬巧合,絕不以任何方式提供。

為了本文件的目的,以下虛擬環境用作描述此過程的示例:

Dg configuration : 12c
Primary db_unique_name : boston
Standby db_unique_name : chicago

Solution

解決方案

1.先決條件,

啟動Dataguard broker DMON流程.

在Primary 和 Standby,


SQL> alter system set dg_broker_start=true sid='*'; 

 2. 連線到 DGMGRL

Primary,

$dgmgrl 
DGMGRL>連線 sysdg
password: *****

3. 建立配置,

DGMGRL> create configuration '<configuration name>' AS PRIMARY DATABASE IS '<primary db_unique_name>' CONNECT IDENTIFIER IS <primary connect string>;

ex,

DGMGRL> create configuration '12c' AS PRIMARY DATABASE IS 'boston' as connect identifier is boston;

 


NOTE : 如果建立配置失敗並顯示ORA-16698 請參考
Note 1582179.1: Create Configuration Failing with ORA-16698

校驗配置,

DGMGRL> show configuration;

Configuration - 12c

  保護模式: MaxPerformance
  Databases:

  Databases:
  boston - Primary database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED


4. 新增 Standby,

DGMGRL>  add database <standby db_unique_name> as connect identifier is <standby connect string>;

舉例:
DGMGRL>  add database chicago as connect identifier is chicago;

 

DGMGRL> show configuration;

Configuration - 12c

  Protection Mode: MaxPerformance
  Databases:
  boston  - Primary database

  Databases:
  boston  - Primary database
    chicago - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

5. 啟動配置,

DGMGRL> enable configuration;


6. 校驗配置,

DGMGRL> show configuration;

Configuration - 12c

  Protection Mode: MaxPerformance
  Databases:
  boston  - Primary database
    chicago - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

 

DGMGRL> show database boston;

Database - boston

  Role:              PRIMARY

  Intended State:    TRANSPORT-ON
  Instance(s):
    boston

Database Status:
Database Status:

SUCCESS


DGMGRL>  show database chicago;

Database - chicago

  Role:              PHYSICAL STANDBY

  Intended State:    APPLY-ON

  Transport Lag:     0 seconds (computed 1 second ago)

  Apply Lag:         0 seconds (computed 1 second ago)

  Apply Rate:        2.54 MByte/s
  Real Time Query:   ON
  Instance(s):
    chicago
Database Status:
SUCCESS

 記錄在二進位制檔案中的Data Guard配置詳細資訊,

 

SQL> show parameter config

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

dg_broker_config_file1               string      /u01/app/oracle/product/12.1.0

                                                 /dbhome_1/dbs/dr1boston.dat

dg_broker_config_file2               string      /u01/app/oracle/product/12.1.0

                                                 /dbhome_1/dbs/dr2boston.dat

span>

Dataguard Broker Supports Far/Fast SYNC Standby

FSFO supports Far sync standby.   

DGMGRL>add far_sync <db_unique_name> as connect identifier is <connect string>;
DGMGRL>enable far_sync <db_unique_name>;

編輯ar sync instance 屬性,

DGMGRL>EDIT FAR_SYNC far_sync_instance_name SET/RESET PROPERTY property-name;

Fast SYNC Standby    

DGMGRL>edit database <name> set property Logxptmode = ‘FastSync’;

使用SYNC NOAFFIRM配置REDO傳輸

 



References

Document : :1582179.1 - Create Configuration Failing with ORA-16698

參考

NOTE:1582179.1  - Create Configuration Failing with ORA-16698



12c 的 Cascaded Standby 資料庫 (Doc ID 2179701.1)

文件內容

用途
詳細資訊
實時 Cascading:
先決條件:
設定:
Far Sync Standby 資料庫:
Data Guard Broker 和 Cascaded Standby 資料庫:
參考

適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
本文件所含資訊適用於所有平臺
***Checked for relevance on 13-Jul-2015***

用途

 這篇文件解釋了 Cascaded Standby 在 oracle 12c 上的增強特性。

詳細資訊

 

Oracle 12c 的 cascading standby 資料庫為使用者增加了更多的選項。12c 的版本對比以前的版本增加了以下的新選項:

 

  1. 實時 Cascading
  2. Far Sync Standby 資料庫
  3. Data Guard Broker 提供對 cascading standby 資料庫的支援

 

但是,你還只能從配置 physical standby 資料庫去 cascade 另一個 standby 資料庫。 目前 logical standby 資料庫還不支援 cascade 另一個 standby 資料庫。

 

實時 Cascading:

 

新版本現在支援以實時的模式將 redo 從第一個 standby 資料庫傳遞到 cascaded standby 資料庫。因此在第一個 standby 資料庫,Redo 的資訊會在被寫到 Standby Redolog 後立即傳遞到 cascaded standby 資料庫。

而非實時 Cascading 意味著:只有主庫的 log Switch 之後,整個 log sequence 才會被傳遞到最終的 Standby 資料庫上。

 

先決條件:

 

  • 第一個(Cascading)standby 資料庫必須是物理的或者是 Far Sync Standby 資料庫
  • 必須保證至少在 Cascading standby 資料庫上使用 Standby Redolog
  • Active Data guard 的選項必須是有 license 的
  • Primary,Cascading,Cascaded standby 資料庫的 db_unique_name 必須體現在所有資料庫 log_archive_config 的 dg_config 中

 

設定:

 

首先 ,建立一個通常的 Dataguard 環境到 cascading standby 資料庫。Log 的傳輸模式應該為 SYNC,同時在 cascading standby 配置 Standby Redolog。在建立完 cascaded standby 資料庫以後就可以設定 cascading log 的傳輸服務了,下面是一些注意事項:

 

  • Primary,Cascading,Cascaded standby 資料庫的 db_unique_name 必須體現在所有資料庫 log_archive_config 的 dg_config 中。
  • 在 Cascading standby 資料庫的 log_archive_dest_n 裡面設定 ‘valid_for=(STANDBY_LOGFILES,STANDBY_ROLE)’ 的屬性來傳輸給 cascaded(最終)standby 資料庫。
  • 你可以通過設定 Log Transport 的模式來切換實時以及非實時的 cascading 模式:

ASYNC = Real-Time Cascading

SYNC = Non Real-Time Cascading

  • 你只可以設定從 log_archive_dest_1 到 log_archive_dest_10 作為非實時模式的目的地,而你可以在 cascading standby 資料庫上設定所有的 log_archive_dest_n 作為實時 cascading 的目的地。
  • Cascading Standby 資料庫可以執行在任何保護模式下。
  • Cascading Standby 資料庫可以傳輸給一個或者多的 terminal standby 資料庫。
  • Cascading Standby 資料庫的 FAL_SERVER 應該設定為 primary 庫或者是其他的 primary 直接連線的 standby 資料庫。
  • Terminal Standby 資料庫的 FAL_SERVER應該設定 cascading Standby 資料庫或者 Primary 資料庫。

 

Far Sync Standby 資料庫:

 

Far Sync Standby 資料庫對於 Terminal standby 資料庫來說是作為一個 RedoLog repository 資料庫的作用。他不含有任何的資料檔案。Far Sync Standby 資料庫只是啟動了 Log 傳輸服務。Far Sync Standby 資料庫的優點是它可以作為 Primary 資料庫的一個在最大保護模式下的本地的 ArchiveLog Repository,而 Physical 和 logical standby 資料庫可以執行在遠端,請參考文件:

Note 1565071.1: Data Guard 12c New Feature: Far Sync Standby

來了解具體的關於 Far Sync Standby 資料庫內容以及設定的步驟。

 

 

Data Guard Broker 和 Cascaded Standby 資料庫:

 

Data Guard Broker 有一個新的‘RedoRoutes’的屬性可以用來構建和部署 cascaded Data Guard Broker 的配置。 以下是它的格式:

 

RedoRoutes = ‘(<Redo Source> : <Redo Destination>)’

 

Redo Source: Redo 的來源,他可以是 db_unique_name 或者是一個本地資料庫名別名的 ‘LOCAL’-Keyword(不能被 Far Sync Standby 資料庫使用)

Redo Destination: Redo 從這個資料庫傳輸到的目的地。他可以是一個或者多個(用逗號分開)db_unique_name 或者是代表所有在 Data Guard Broker 配置中可能目的地的別名的‘ALL’-Keyword。 你可以設定到目的地的傳輸的模式。包括以下:

  • SYNC:                 等同於 log_archive_dest_n 中的屬性 ‘SYNC AFFIRM’ 或者是非實時 Cascade
  • ASYNC:               等同於 log_archive_dest_n 中的屬性 ‘ASYNC’ 或者是 實時 Cascade
  • FASTSYNC :         等同於 log_archive_dest_n 中的屬性 ‘SYNC NOAFFIRM’

 

 

例子:

 

Primary Database:                               prim

Cascading Standby Database:               local_stdby

Cascaded (terminal) Standby Database: remote_stdby

如果想實現’SYNC NOAFFIRM’的本地 standby 資料庫和在實時 cascade 模式下的遠端 standby 資料庫,設定如下:

 

Primary Database (prim)

RedoRoutes = ‘(LOCAL : local_stdby FASTSYNC)’

 -> Primary 資料庫只傳送 Redo 到 local Standby 資料庫,但是有到遠端 standby 資料庫的 Archive 目的地。

 

Local Standby Database (local_stdby)

RedoRoutes = ‘(prim : remote_stdby ASYNC)’

 -> 這裡需要配置來源於 ‘prim’的 REDO 是以實時 cascade(ASYNC)的方式轉發到遠端的 Standby 資料庫。

 

 

參考

NOTE:1565071.1  - Data Guard 12c New Feature: Far Sync Standby



Orcle 12c DG 新特性---Far Sync

  說明

An Oracle Data Guard far sync instance is a remote Oracle Data Guard destination that accepts redo from the primary database and then ships that redo to other members of the Oracle Data Guard configuration.  A far sync instance manages a control file, receives redo into standby redo logs (SRLs), and archives those SRLs to local archived redo logs,  but that is where the similarity with standbys ends.  A far sync instance does not have user data files, cannot be opened for access, cannot run redo apply, and can never function in the primary role or be converted to any type of standby database.

Active Data Guard Far Sync Oracle 12c 的新特性(也稱為 Far Sync Standby ), Far Sync 功能的實現是通過在距離主庫 (Primary Database) 相對較近的地點配置 Far Sync 例項,主庫 (Primary Database)  同步 (synchronous) 傳輸 redo Far Sync 例項,然後 Far Sync 例項再將 redo 非同步 (asynchronous) 傳輸到終端備庫 (Standby Database) 。這樣既可以保證零資料丟失又可以降低主庫壓力。 Far Sync 例項只有密碼檔案, init 引數檔案和控制檔案,而沒有資料檔案。所以無法開啟用於訪問。

Far Sync 配置對於 Data Guard  角色轉換 (role transitions) 是透明的,即 switchover/failover 命令方式與 12c 之前相同。

  實驗-Far Sync 安裝配置

建立Far Sync 例項類似於建立物理備庫,但資料檔案在 Far Sync 例項中不存在。因此不需要拷貝資料檔案並還原資料檔案。一旦 Far Sync 例項建立了,那麼就預設執行在 Maximum Availability 模式,那麼 REDO 是實時同步傳輸的。

2.1    主庫配置和操作

2.1.1   建立Far Sync 例項的控制檔案

SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/control01.ctl';
Database altered.

將上面生成的Far Sync 的控制檔案拷貝到 Far Sync 所在的主機上。

SQL> !scp /tmp/control01.ctl 192.168.1.173://u01/app/oracle/oradata/cndba_far/
[Expect-le@ www.cndba.cn]$ pwd
/u01/app/oracle/oradata/cndba_far

2.1.2   修改配置,指向Far Sync 例項

SQL> alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)' scope=both;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=cndba_far_sync ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cndba_far_sync' scope=both;
System altered.

2.2    備庫修改配置

SQL> alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)' scope=both;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=cndba_p ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cndba_p' scope=both;
System altered.

2.3    Far Sync 例項配置

2.3.1   修改PFILE

cndba_s 是物理備庫, cndba_far_sync Far Sync 例項的 DB_UNIQUE_NAME 。如果日誌檔案路徑需要修改,也要修改 DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT

DB_UNIQUE_NAME=cndba_far_sync
CONTROL_FILES='/u01/app/oracle/oradata/cndba_far/control01.ctl'
FAL_SERVER=cndba_p
LOG_ARCHIVE_CONFIG='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=cndba_far_sync'
LOG_ARCHIVE_DEST_2='SERVICE=cndba_s ASYNC
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=cndba_s’

2.3.2   Far Sync 例項啟動到 mount

SQL> create spfile from pfile='/u01/app/oracle/product/12.1.0.2/db_1/dbs/initcndba_far.ora';
File created.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 2348810240 bytes
Fixed Size	    2927048 bytes
Variable Size	 1409287736 bytes
Database Buffers	  922746880 bytes
Redo Buffers	   13848576 bytes
Database mounted.

2.3.3   檢視Far Sync 例項狀態

SQL> select protection_mode,database_role,protection_level,open_mode from v$database;
PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL	   OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  FAR SYNC	      MAXIMUM PERFORMANCE  MOUNTED

2.3.4   建立standby redo log( 可選,最好建立 )

語法:

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4('/u01/app/oracle/oradata/cndba_far/standbyredo11.log') SIZE 52428800;

2.4    主備庫和Far Sync 新增 TNSNAME

CNDBA_FAR_SYNC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.173)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = cndba)
    )
  )

2.5    檢查配置

SQL> select * from V$DATAGUARD_CONFIG;
DB_UNIQUE_NAME	       PARENT_DBUN	      DEST_ROLE CURRENT_SCN	CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
cndba_p        NONE	      PRIMARY DATABASE	    2154617	     0
cndba_far_sync	       cndba_p	      FAR SYNC INSTANCE     2151372	     0
cndba_s        cndba_far_sync	      PHYSICAL STANDBY	    2151372	     0

從上面可以看出,配置沒有問題。

Cndba_p -> cndba_far_sync -> cndba_s

2.6    測試日誌是否正常傳輸

-- 檢視當前日誌序列號

主庫:

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

Far Sync 例項 :

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

備庫:

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

-- 手動切換日誌

SQL> alter system switch logfile;
System altered.

-- 再次檢視備庫和 Far Sync 例項的日誌序列號

SQL> select max(sequence#) from v$archived_log;                                          
MAX(SEQUENCE#)
--------------
    57

至此搭建Far Sync 結束了。

  總結

1.   由於Far Sync 存在單點故障,所以建議搭建兩個及以上的 Far Sync 例項。預設只啟用其中一個,只有當一個掛掉了,才會自動啟用另一個。

2.   主庫建議配置一個備用的LOG_ARCHIVE_DEST_3 ,直接指向備庫。在 LOG_ARCHIVE_DEST_2 不可用時,會啟用 LOG_ARCHIVE_DEST_3 直接傳輸 redo 到備庫。

3.   Far Sync 可大大減少主庫的壓力,特別是在一主多備的情況下。

4.   switchover/failover 對於 Far Sync 是透明的,不需要特殊配置,按正常切換即可。

更多詳細資訊,請參考: http://docs.oracle.com/database/121/SBYDB/create_fs.htm#SBYDB5437




概述
================
Active Data Guard Far Sync是Oracle 12c的新功能(也稱為Far Sync Standby),Far Sync功能的實現是通過在距離主庫(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database) 同步(synchronous)傳輸redo到Far Sync例項,然後Far Sync例項再將redo非同步(asynchronous)傳輸到終端備庫(Standby Database)。這樣既可以保證零資料丟失又可以降低主庫壓力。Far Sync例項只有密碼檔案,init引數檔案和控制檔案,而沒有資料檔案。
如果redo 傳輸採用Maximum Availability模式,我們可以在距離生產中心(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database)同步(synchronous)傳輸redo到Far Sync例項,保證零資料丟失(zero data loss),同時主庫和Far Sync距離較近,網路延時很小,因此對主庫效能影響很小。然後Far Sync例項再將redo非同步(asynchronous)傳送到終端備庫(Standby Database)。
如果redo 傳輸採用Maximum Performance模式,我們可以在距離生產中心(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database) 非同步傳輸redo到Far Sync例項,然後Far Sync例項再負責傳輸redo到其他多個終端備庫(Standby Database)。這樣可以減少主庫向多個終端備庫(Standby Database)傳輸redo的壓力(offload)。
Far Sync配置對於Data Guard 角色轉換(role transitions)是透明的,即switchover/failover命令方式與12c之前相同。
考慮到可能發生Data Guard 角色轉換,即switchover/failover,可以在距離備庫較近的地方也配置Far Sync例項,這個Far Sync例項只有在當前的備庫切換為主庫後才啟用。
考慮到Far Sync例項的單點故障,可以在距離主庫交近的地點配置2個Far Sync例項,起到備用的作用。
本文重點是測試Far Sync安裝配置。
Far Sync示意圖
================ 12c DG新特性 - Active Data Guard Far Sync (Doc ID 2179719.1)


Oracle 12c Active Data Guard Far Sync 詳細搭建過程

1.Oracle 12c Active Data Guard Far Sync 概述

Active  Data Guard Far Sync是 oracle 12c的新功能(也稱為Far Sync Standby),Far Sync功能的實現是通過在距離主庫(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database) 同步(synchronous)傳輸redo到Far Sync例項,然後Far Sync例項再將redo非同步(asynchronous)傳輸到終端備庫(Standby Database)。這樣既可以保證零資料丟失又可以降低主庫壓力。Far Sync例項只有密碼檔案,init引數檔案和控制檔案,而沒有資料檔案。

如果redo 傳輸採用Maximum Availability模式,我們可以在距離生產中心(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database)同步(synchronous)傳輸redo到Far Sync例項,保證零資料丟失(zero data loss),同時主庫和Far Sync距離較近,網路延時很小,因此對主庫效能影響很小。然後Far Sync例項再將redo非同步(asynchronous)傳送到終端備庫(Standby Database)。

如果redo 傳輸採用Maximum Perfo RMANce模式,我們可以在距離生產中心(Primary Database)相對較近的地點配置Far Sync例項,主庫(Primary Database) 非同步傳輸redo到Far Sync例項,然後Far Sync例項再負責傳輸redo到其他多個終端備庫(Standby Database)。這樣可以減少主庫向多個終端備庫(Standby Database)傳輸redo的壓力(offload)。

Far Sync配置對於Data Guard 角色轉換(role transitions)是透明的,即switchover/failover命令方式與12c之前相同。

考慮到可能發生Data Guard 角色轉換,即switchover/failover,可以在距離備庫較近的地方也配置Far Sync例項,這個Far Sync例項只有在當前的備庫切換為主庫後才啟用。

考慮到Far Sync例項的單點故障,可以在距離主庫交近的地點配置2個Far Sync例項,起到備用的作用。

本文重點是測試Far Sync安裝配置。

2.Far Sync示意圖

Far Sync 例項1 Far Sync 例項2 位於距離主庫(Primary Database) 相對較近的地點,主庫(PrimaryDatabase) 同步傳輸redo Far Sync 例項 1 ,實現零資料丟失。 Far  Sync 例項2 是備用例項,當 Far Sync 1 不可用時, Far  Sync2 繼續提供服務,達到高可用性。 Far Sync 例項非同步傳輸redo 到遠端的多個終端備庫(Standby Database) Far  Sync  例項分擔了主庫傳輸  redo  的壓力。

注:可以在距離終端備庫 (Standby  Database) 較近的地點配置  Far  Sync  例項, 這個  Far  Sync  例項只有在當前的備庫切換為主庫後才啟用,本圖中沒有描述

 

圖片.png

3.建立配置Active Data Guard(primary+standby)

建立active data guard方式與11.2相同,詳細過程請參考 《oracle12c的data guard 詳細搭建過程》

或者你可以直接訪問:  https://www.yuhuashi.info/post/8.html

下面只列出系統概述:

 

角色

主庫(Primary   Database)

Far Sync例項

備庫(Standby Database)

地點

生成中心

距離生成中心較勁的災備中心

距離生成中心較遠的災備中心

IP地址

192.168.0.30

192.168.0.202

192.168.0.98

DB_UNIQUE_NAME

orcl

orclfs

orcls

資料庫版本

12.2.0.1.0

12.2.0.1.0

12.2.0.1.0

 

備註:下面所有操作都是基於 《o RACle12c 的data guard  詳細搭建過程》 中的環境。

4.建立配置Far Sync例項

4.1建立密碼/init 引數/控制檔案

Ø   建立Far Sync例項的控制檔案,在主庫上執行:

 

SQL> alter database create far sync instance controlfile as '/tmp/controlfs01.ctl';

 

Database altered.

 

Ø   建立Far Sync例項的pfile檔案,在主庫上執行:

 

SQL> create pfile='/tmp/initorclfs. ORA' from spfile;

 

File created.

 

Ø   將上面的控制檔案和引數檔案以及密碼檔案複製到Far Sync例項所在的伺服器上:

 

orcl:/tmp@primary>scp initorclfs.ora controlfs01.ctl 192.168.0.98:/tmp

 

orcl: /u01/app/oracle/product/12.2.0/db_1/dbs>scp orapworcl 192.168.0.98:$ORACLE_HOME/dbs

 

Ø   在Far Sync伺服器上將剛才傳過來的密碼檔案重新命名

 

orclfs:/u01/app/oracle/product/12.2.0/db_1/dbs@farsync>mv orapworcl orapworclfs

4.2監聽和TNS配置

Ø   由於監聽在上面搭建Data Guard的時候已經在主庫上配置好,這裡就不需要再配置,只需配置TNS。

主庫TNS:

orcl =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

 

orcls =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcls)

    )

  )

 

orclfs =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orclfs)

    )

  )

備庫TNS:

orcl =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

 

orcls =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcls)

    )

  )

 

orclfs =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orclfs)

    )

  )

Ø   這裡重點是要配置Far Sync伺服器上的監聽和TNS,配置如下:

Far Sync 監聽:

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = farsync)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

 

SID_LIST_LISTENER =

 (SID_LIST =

   (SID_DESC =

     (GLOBAL_DBNAME = orclfs)

     (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)

     (SID_NAME = orclfs)

    )

  )

Far Sync TNS:

orcl =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

 

orcls =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcls)

    )

  )

 

orclfs =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orclfs)

    )

  )

 

4.3重新調整init初始化引數檔案

主庫(orcl)

db_unique_name

orcl

control_files

/data/oradata/orcl/control01.ctl,   /data/oradata/orcl/control02.ctl

fal_server

'orcls ',  'orclfs '

log_arc hive_config

DG_CONFIG=(orcl,orclfs,orcls)

log_archive_dest_1

'location=/data/oradata/orcl/archivelog   valid_for=(all_logfiles,all_roles) db_unique_name=orcl'

log_archive_dest_2

'service=orclfs sync affirm max_failure=1   alternate=log_archive_dest_3 valid_for=(online_logfiles,primary_role)   db_unique_name=orclfs '

備註:設定redo同步傳輸到Far Sync例項orclfs,並且dest_3為備用DEST

log_archive_dest_state_3

alternate

log_archive_dest_3

'service=orcls async   alternate=log_archive_dest_2 valid_for=(online_logfiles,primary_role)   db_unique_name=orcls'

備註:設定dest_3為備用DEST,當DEST_2不可用,redo通過非同步傳輸的方式直接到備庫

Far Sync例項(orclfs)

db_unique_name

orclfs

control_files

/data/oradata/orclfs/controlfs01.ctl,   /data/oradata/orcl/controlfs02.ctl

fal_server

orcl

log_archive_config

dg_config=(orcl,orclfs,orcls)

log_archive_dest_1

'location=/data/oradata/orclfs/archivelog   valid_for=(all_logfiles,all_roles) db_unique_name=orclfs'

log_archive_dest_2

'service=orcls async   valid_for=(standby_logfiles,standby_role) db_unique_name=orcls'

備註:設定Far Sync例項非同步傳輸redo到備庫

log_file_name_convert

'/data/oradata/orcl','/data/oradata/orclfs'

備庫(orcls)

db_unique_name

orcls

control_files

/data/oradata/orcls/control01.ctl,   /data/oradata/orcls/control02.ctl

fal_server

'orcl','orclfs'

log_archive_config

dg_config=(orcl,orclfs,orcls)

log_archive_dest_1

'location=/data/oradata/orcls/archivelog   valid_for=(all_logfiles,all_roles) db_unique_name=orcls'

log_archive_dest_2

''service=orcl valid_for=(online_logfiles,primary_role)   db_unique_name=orcl'

 

備註:尤其注意紅色標記部分的配置,有些引數沒在這裡列出來則表示不需要修改。

4.4重啟主備庫資料庫

根據上面的引數檔案修改,我們需要把之前配置好的主備庫重啟使上面修改的引數生效。

別忘了在備庫上開啟實時同步:

 

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

 

備註:注意pdb也要啟動起來

 

4.5建立例項相應的檔案目錄

根據上面的Far Sync例項的pfile引數檔案裡的設定,在Far Sync伺服器上建立相應的檔案目錄:

 

orclfs:/home/oracle@farsync>mkdir -p /u01/app/oracle/admin/orclfs/adump

 

orclfs:/home/oracle@farsync>mkdir -p /data/oradata/orclfs

4.6建立Far Sync例項

Ø   先通過pfile建立spfile

 

SQL> create spfile from pfile='/tmp/initorclfs.ora';

File created.

 

Ø   通過spfile將Far Sync例項啟動到nomount狀態

 

SQL> startup nomount

ORACLE instance started.

 

Total System Global Area  419430400 bytes

Fixed Size                  8793496 bytes

Variable Size           297796200 bytes

Database Buffers     109051904 bytes

Redo Buffers             3788800 bytes

 

Ø   恢復控制檔案

 

orclfs:/home/oracle@farsync>rman target /

 

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Apr 12 09:03:00 2018

 

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

 

connected to target database: ORCL (not mounted)

 

RMAN> restore controlfile from '/tmp/controlfs01.ctl';

 

Starting restore at 2018/04/12 09:03:17

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=34 device type=DISK

 

channel ORA_DISK_1: copied control file copy

output file name=/data/oradata/orclfs/controlfs01.ctl

output file name=/data/oradata/orclfs/controlfs02.ctl

Finished restore at 2018/04/12 09:03:18

 

備註:這裡也可以直接將之前從主庫傳過來的控制檔案拷貝到Far Sync例項對應控制檔案位置下,然後直接啟動到mount狀態。

 

Ø   啟動到mount狀態

 

SQL> alter database mount;

Database altered.

 

Ø   建立standby redo log

 

這裡我們不需要再建立standby redo log,因為在 《oracle12c的data guard 詳細搭建過程》 中我們在主庫上面已經早早的把standby redo log 建立好了。

如果之前沒有建立過standby redo log,那麼這裡就需要新增,具體命令如下:

 

SQL> alter database add standby logfile thread 1  GROUP 10 '/data/oradata/orclfs/stb_redo10.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1  GROUP 11 '/data/oradata/orclfs/stb_redo11.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1  GROUP 12 '/data/oradata/orclfs/stb_redo12.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1  GROUP 13 '/data/oradata/orclfs/stb_redo13.log' size 200M;

Database altered.

 

Ø   確認配置

SQL> set line 160

SQL> select * from v$dataguard_config;

 

DB_UNIQUE_NAME  PARENT_DBUN            DEST_ROLE            CURRENT_SCN     CON_ID

------------------------------ ------------------------------ ----------------- ----------- ----------

orcl                             NONE                         PRIMARY DATABASE         3597419           0

orclfs                          orcl                             FAR SYNC INSTANCE       3597433         0

orcls                           orclfs                           PHYSICAL STANDBY       3597433           0

 

此時Far Sync的例項存放路徑

orclfs:/home/oracle@farsync>cd /data/oradata/orclfs/

orclfs:/data/oradata/orclfs@farsync>ll

total 1273264

-rw-r----- 1 oracle dba   5033472 Apr 12 09:05 archivelog1_40_972553740.dbf

-rw-r----- 1 oracle dba   1475584 Apr 12 09:05 archivelog1_41_972553740.dbf

-rw-r----- 1 oracle dba  18825216 Apr 12 12:51 controlfs01.ctl

-rw-r----- 1 oracle dba  18825216 Apr 12 12:51 controlfs02.ctl

-rw-r----- 1 oracle dba 209715712 Apr 12 12:44 stb_redo10.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:51 stb_redo11.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:50 stb_redo12.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:43 stb_redo13.log

4.7調整保護級別

從MAXIMUM PERFORMANCE調整到MAXIMUN AVAILABILITY

 

主庫:

SQL> alter database set standby database to maximize availability;

 

Database altered

 

SQL> select protection_mode,protection_level from v$database;

 

PROTECTION_MODE      PROTECTION_LEVEL

-------------------- --------------------

MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

5.案例測試

5.1測試#1Redo傳輸

Ø   主庫switch log

圖片.png

Ø   主庫alert log記錄redo傳輸到Far Sync例項

圖片.png

Ø   Fat Sync例項alter log記錄FarSync例項接收到redo,並傳輸redo到備庫

圖片.png

Ø   備庫alert log記錄接收到redo並recovery

圖片.png

5.2測試#2Far Sync例項不可用

如果只配置了一個Far sync例項,並且LOG_ARCHIVE_DEST_2引數指定了ALERTNATE選項,那麼在Far Sync例項不可用的情況下,primary庫自動將redo資訊傳送到LOG_ARCHIVE_DEST_3。即當Far Sync例項不可用,primary庫繞過Far Sync例項(orclfs)直接傳送redo到備庫(orcls),保證傳輸的連續性,但是primary庫保護模式從最大可用模式(MAXIMUM PERFORMANCE)降為最大效能模式(MAXIMUM PERFORMANCE)。

 

Ø   檢視保護模式

圖片.png

 

Ø   中斷Far Sync例項:

圖片.png

Far Sync alter log:

圖片.png

Ø   Primary庫redo切換

圖片.png

 

Primary庫alter log:

圖片.png

以上日誌說明primary發現LOG_ARCHIVE_DEST_2不可使用後,自動使用LOG_ARCHIVE_DEST_3,保證了redo繼續傳輸到standby database。

Ø   Far Sync例項啟動後,primary自動使用Far Sync例項

圖片.png

Primary庫alert log

圖片.png










About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號: 230161599 、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2020-03-01 06:00 ~ 2020-03-31 24:00 在西安完成

● 最新修改時間:2020-03-01 06:00 ~ 2020-03-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2681489/,如需轉載,請註明出處,否則將追究法律責任。

相關文章