Oracle 11gR2 Active DataGuard配置Step By Step

來源:互聯網
上載者:User

Oracle作為目前最流行的商務資料庫,除了單獨資料庫DBMS之外,還針對實際營運系統需求,提供了一系列高可用HA解決方案。這其中,RAC+Dataguard是我們最常見的HA策略方案,也是普遍認為成熟的策略。
 
Data Guard在11G中有了很大的發展,最典型的兩個特性就是Active Data Guard和Advanced Compression引入。傳統Data Guard的Physical Standby結點在進行Redo Apply過程中,是不能開啟資料庫讀取資料的。如果需要進行讀取,則必須先將其終止Apply過程,才能支援Redo Apply。Active Data Guard特性就是支援Standby結點在Apply的同時支援唯讀資料庫。這也就是為什麼11G之後,很多企業選擇DG作為讀寫分離策略的技術手段。
 
Advanced Compression是一個綜合技術,在Data Guard中也有AC的過程。遠程災備使用Data Guard的一種重要瓶頸就是傳輸頻寬節流設定。所有的Redo Log資料都要通過Primary與Standby之間的串連進行傳遞,過量Redo Log會限制災備資料同步程度。Advanced Compression可以將Redo Log進行一定程度壓縮,提高同步率。
 
本篇主要介紹在11gR2版本中,使用RMAN的duplicate from active database的新方法進行搭建。注意:從10g開始,有其他手段搭建DG。
 
 

相關參考:

Oracle Data Guard 重要配置參數

基於同一主機配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 歸檔刪除策略及指令碼

Oracle Data Guard 的角色轉換

Oracle Data Guard的日誌FAL gap問題

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 處理方法

1、環境介紹

 

我們選擇作業系統為Red Hat 6.5版本,磁碟空間充足。

 

[root@SimpleLinux ~]# cat /etc/RedHat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

[root@SimpleLinux ~]# uname -r

2.6.32-431.el6.i686

 

[root@SimpleLinux ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        48G  13G  33G  28% /

tmpfs          947M    0  947M  0% /dev/shm

 

當前資料庫名稱ora11g,環境變數如下:

 

[oracle@SimpleLinux ~]$ env | grep ORA

ORACLE_SID=ora11g

ORACLE_BASE=/u01/app

ORACLE_HOME=/u01/app/oracle

 

由於是實驗環境,筆者在同一台機器上搭建Data Guard。不同伺服器上操作方法相同。資料庫版本為最新的11.2.0.4。

 

SQL> select * from v$version;

 

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

 

資料庫三大檔案:控制檔案、記錄檔(Online)和資料檔案遵守OMF(Oracle Managed File)策略。

 

SQL> select name from v$controlfile;

 

NAME

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

/u01/app/oradata/ORA11G/controlfile/o1_mf_9mnjwpko_.ctl

/u01/app/fast_recovery_area/ORA11G/controlfile/o1_mf_9mnjwpw2_.ctl

 

 

SQL> select group#, member from v$logfile;

 

    GROUP# MEMBER

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

        3 /u01/app/oradata/ORA11G/onlinelog/o1_mf_3_9mnjx4n0_.log

        3 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_3_9mnjx54c_.log

        2 /u01/app/oradata/ORA11G/onlinelog/o1_mf_2_9mnjwzpq_.log

        2 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_2_9mnjx15f_.log

        1 /u01/app/oradata/ORA11G/onlinelog/o1_mf_1_9mnjwtj9_.log

        1 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_1_9mnjwvdm_.log

 

6 rows selected

 

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

/u01/app/oradata/ORA11G/datafile/o1_mf_users_9mnjs074_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_9mnjs068_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_9mnjs04h_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_system_9mnjrzty_.dbf

 

當前資料庫位於非歸檔模式。

 

SQL> archive log list;

Database log mode              No Archive Mode

Automatic archival            Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    4

Current log sequence          6

 

注意:OMF是Oracle推薦的一種檔案管理策略。傳統的檔案管理是管理員直接指定檔案目錄和名稱,而OMF下是不需要指定檔案的。而且,如果配置了Recovery Area目錄,Oracle OMF會將兩大鏡像檔案,online redo log和control file鏡像存放在Recovery Area中。
 
當前配置了Recovery Area支援。

 

SQL> show parameter recover

 

NAME                                TYPE        VALUE

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

db_recovery_file_dest                string      /u01/app/fast_recovery_area

db_recovery_file_dest_size          big integer 10000M

db_unrecoverable_scn_tracking        boolean    TRUE

recovery_parallelism                integer    0

 

實驗目標是建立ora11g的physical standby資料庫,執行個體名稱ora11gsy。

 

2、資料庫Primary Database配置

 

Data Guard是要求在Primary Database端進行配置要求的。具體包括如下:

 

ü  歸檔模式切換。Data Guard啟動並執行基礎是Redo Log傳輸,Primary Database要求進行歸檔模式配置;

ü  Force Logging配置,確保Redo Log產生完整性;

ü  Standby Log建立;

ü  主庫參數配置;

 

修改歸檔模式,切換到歸檔日誌方式。預設情況下,如果開啟recovery area,歸檔日誌是會放在recovery area中的。

 

SQL> alter database archivelog;

Database altered.

 

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival            Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    4

Next log sequence to archive  6

Current log sequence          6

 

Force logging是針對Oracle一些nologging操作而言的。Redo Log的責任是記錄所有資料區塊的變化,還原重做redo log意味著資料同步。如果有nologging操作,產生redo log是不完全的,傳遞到physical standby中還原的也就不完全,難以做到同步。所以,Dataguard一定是將force logging進行配置。
 
 

SQL> alter database force logging;

Database altered

 

SQL> select force_logging from v$database;

FORCE_LOGGING

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

YES

 

下面構建standby log file在主庫中。一些文獻沒有這個步驟,而只關注physical standby端的standby log建立。Standby log file是作為Redo Transfer過程的一個中轉。通常而言,當日誌被傳遞到Standby端,就應該立即應用Apply。如果此時沒有開啟應用過程,是會把日誌暫存在這個地方的。對每一個standby,都需要建立一個或者多組standby log group。對於Primary Database,由於可能有role transition的情況,所以也需要進行配置。
 
注意:Primary Database中使用了OMF,我們可以很方便的進行建立standby log group。

 

SQL> alter database add standby logfile size 100m;

Database altered

 

SQL> alter database add standby logfile size 100m;

Database altered

 

SQL> alter database add standby logfile size 100m;

Database altered

 

也形成了配置鏡像結構。

 

SQL> select group#, member from v$logfile where type='STANDBY';

 

    GROUP# MEMBER

---------- --------------------------------------------------------------------------------
 
        4 /u01/app/oradata/ORA11G/onlinelog/o1_mf_4_9nn5ntsv_.log

        4 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_4_9nn5o0jw_.log

        5 /u01/app/oradata/ORA11G/onlinelog/o1_mf_5_9nn5oq6d_.log

        5 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_5_9nn5owlv_.log

        6 /u01/app/oradata/ORA11G/onlinelog/o1_mf_6_9nn5p82m_.log

        6 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_6_9nn5pc70_.log

 

6 rows selected

 

視圖v$standby_log,可以查看日誌使用方式。

 

SQL> select group#, dbid, bytes from v$standby_log;

 

    GROUP# DBID                                          BYTES

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

        4 UNASSIGNED                                104857600

        5 UNASSIGNED                                104857600

        6 UNASSIGNED                                104857600

 

最後進行主庫參數修改,具體來說需要修改六個參數。

 

參數log_archive_config用於指定環境中DG範圍。

 

SQL> show parameter log_archive_config

 

NAME                                TYPE        VALUE

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

log_archive_config                  string     

 

SQL> alter system set log_archive_config='DG_CONFIG=(ora11g,ora11gsy)' scope=spfile;
 
 

System altered

 

要添加歸檔日誌傳輸位置,archive_dest參數包括兩種類型位置,location和service。Location參數表示本地目錄歸檔日誌存放,而service表示通過Oracle NET服務傳輸過去。要實現Dataguard組件,需要將日誌指定到service裡面。
 
 

SQL> alter system set log_archive_dest_2='SERVICE=ora11gsy valid_for=(online_logfiles,primary_role) db_unique_name=ora11gsy' scope=spfile;
 
System altered

 

SQL> alter system set log_archive_dest_state_2=enable;

System altered

 

注意:valid_for參數表示這個傳遞通道在什麼時候發揮作用。Online_logfiles和Primary_role表示當前執行個體為Primary角色的時候,才傳遞日誌。這樣的配置是最常用的方式。
 
Name convert參數配置,對記錄檔和資料庫檔案而言,目錄是一個重要標識項目。Primary和Standby在轉換過程中,要確立變換替換規則,這個過程需要進行實際的研究。
 
 

SQL> alter system set db_file_name_convert='ORA11G','ORA11GSY' scope=spfile;

System altered

 

SQL> alter system set log_file_name_convert='ORA11G','ORA11GSY' scope=spfile;

System altered

 

注意:在一些資料中,介紹11g裡如果採用了OMF策略,這個參數是可以不設定的。

最後參數是standby_file_management策略,預設是manual。該參數用於控制Primary與Standby之間檔案建立的方式。標準的DG環境下,在Primary DB下添加資料檔案,會自動在Standby中增加檔案。
 
 

 

SQL> show parameter standby_file_management

 

NAME                                TYPE        VALUE

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

standby_file_management              string      MANUAL

 

SQL> alter system set standby_file_management=auto;

 

System altered

 

SQL> show parameter standby_file_management

 

NAME                                TYPE        VALUE

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

standby_file_management              string      AUTO

 

下面需要配置的就是網路Oracle Net內容。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.