OGG12.1(LINUX) for 11G R2 RAC classical install 經典抽取模式單項同步配置OGG12.1

博文結構圖以下:算法

 

 

1、環境描述以及注意事項

1.1 環境簡介

 

IPsql

系統數據庫

Oracle版本數組

OGG版本緩存

源端安全

172.16.10.16/36服務器

RHEL6.5網絡

oracle11204session

12.1架構

目標端

172.16.10.154

RHEL6.5

oracle11204

12.1

同步用戶爲:hr。

 

1.2 OGG網絡帶寬規劃

GoldenGate數據同步所需的網絡帶寬是目前各類技術中最低的,複製全庫數據時,一般GoldenGate隊列文件大小與數據庫日誌大小的比例爲1:4,GoldenGate網絡傳輸壓縮比例爲1:8,TCP/IP網絡傳輸效率最高爲0.7;

–根據以上數據估算,以業務高峯期每小時產生50GB數據庫日誌爲例,GoldenGate維持秒級數據

同步延遲的帶寬要求爲:

50 * 1024 (MB/小時) * 8 (每字節8位) / 3600 (秒/小時) / 4 (隊列/日誌比例)

/ 8 (傳輸壓縮比例) / 0.7 (網絡傳輸效率) = 5.08 Mbps

 

1.3 OGG安裝注意事項

一、儘可能避免OGG 雙向同步,ogg雙活安裝須要業務避免更改同一行記錄。

二、配置Extract,爲了不數據丟失,在啓動extract 以前,必須確保全部open 的事務都已經完成。(或者在配置時,中止全部中間件以及監聽業務)

三、特別大的表,或者操做太頻繁的表,建議單獨拆成多組抽取,還原進程。

四、TRAIL是否壓縮,以及到期時間,字符集設置,ogg管理密碼是否加密。

五、自動過濾重複時段的數據衝突,用於不能停機執行初始化,打開該參數後不會將數據錯誤報到discard文件中。

六、rac ogg 須要安裝到共享目錄上。

七、源庫和目標庫設置參數ENABLE_GOLDENGATE_REPLICATION 爲true

(In Oracle 11.2.0.4 you will need to set ENABLE_GOLDENGATE_REPLICATION to TRUE in the init.ora parameter file for any source or target database)。

8、安裝的全部主機儘可能時間保持一直。

九、使用TRANLOGOPTIONS參數與DBLOGREADER選項參數文件若是RDBMS是Oracle 11.1.0.7或Oracle 11.2.0.2或更高版本11g R2版本。

十、DDL 數據庫版本高於10G,不須要關閉回收站。

 

1.4 關於經典抽取模式

在經典捕獲模式下,Oracle GoldenGate Extract進程從源庫上的Oracle重作或歸檔日誌文件或備庫上的歸檔日誌中捕獲數據更改。

 

 

經典捕捉徹底支持大多數Oracle數據類型,對複雜數據類型提供有限的支持。經典捕獲是最初的Oracle GoldenGate捕獲方法。對於Oracle GoldenGate支持的任何源Oracle RDBMS,您可使用經典捕獲,但多租戶容器數據庫除外。

經典捕獲來支持如下內容:

  • UDT,NOLOGGINGVARRAY,源數據庫兼容性設置在11.2.0.0.0如下的LOB。
  • 透明數據加密支持,源數據庫兼容性設置在11.0.0.0.0如下。
  • SECUREFILE 源數據庫兼容性設置爲低於11.2.0.0.0的LOB支持。
  • NOLOGGING 源數據庫兼容性設置爲低於11.2.0.0.0的LOB支持。

 

1.5 關於集成抽取模式

在集成捕獲模式下,Oracle GoldenGate Extract進程直接與數據庫登陸服務器進行交互,以邏輯更改記錄(LCR)的形式接收數據更改。圖顯示了集成捕獲模式下的提取配置。

 

 

與經典捕捉相比,集成捕捉支持更多的數據和存儲類型,支持更加透明。

如下是集成捕獲的一些額外好處:

  • 因爲集成捕獲與數據庫徹底集成,所以不須要其餘設置便可與Oracle RAC,ASM和TDE配合使用。
  • 集成捕獲使用數據庫登陸服務器來訪問Oracle重作流,其優勢是可以自動在歸檔日誌的不一樣副本或在線日誌的不一樣鏡像版本之間切換。所以,集成捕獲能夠透明地處理因爲磁盤損壞,硬件故障或操做員錯誤致使的日誌文件的缺失(假設存檔和在線日誌的附加副本可用
  • 集成捕捉能夠更快地過濾表格。
  • 集成的捕獲可以更有效地處理時間點恢復和RAC集成。
  • 集成的捕捉功能集成日誌管理。Oracle Recovery Manager(RMAN)會自動保留「抽取」所需的歸檔日誌。
  • 集成捕獲是支持從多租戶容器數據庫捕獲的惟一模式。One Extract能夠挖掘多租戶容器數據庫中的多個可插拔數據庫。
  • 對於版本11.2.0.4源數據庫及更高版本(源兼容性設置爲11.2.0.4或更高版本),DDL的捕獲由登陸服務器異步執行,不須要安裝特殊的觸發器,表或其餘數據庫對象。能夠在不中止用戶應用程序的狀況下執行Oracle GoldenGate升級。當Extract處於集成模式下時,須要使用DDL觸發器和支持對象,而Oracle 11g源數據庫早於版本11.2.0.4。
  • 因爲集成捕獲和集成應用程序都是數據庫對象,所以對象的命名遵循與其餘Oracle數據庫對象相同的規則。

 

集成捕獲支持的數據庫版本

 

徹底支持:爲了支持全部Oracle數據和存儲類型,源數據庫的兼容性設置必須至少爲11.2.0.3集成解壓縮11.2.x(My Oracle Support文檔ID 1557031.1Opens a new window)的11.2.0.3數據庫特定捆綁軟件修補程序。

 

要在不安裝DDL支持對象的狀況下支持DDL捕獲,源數據庫必須至少爲Oracle 11.2.0.4或更高版本。對於較早的數據庫版本,須要DDL支持對象。

有限的支持:能夠在11.2.0.3下挖掘數據庫上對兼容性小於11.2.0.3的源數據庫使用集成捕獲,但在此模式下,SECUREFILELOB,XML列,透明數據加密和UDT基於數據庫版本和兼容性。數據庫必須具備適用於集成提取11.2.x(Doc ID 1557031.1Opens a new window)的11.2.0.3數據庫特定捆綁軟件修補程序。數據庫必須與源數據庫版本相同(或更高)的數據庫版本(最低爲11.2.0.3)。

 

Integrated Replicat異步應用事務。不具備相互依賴性的事務能夠安全地執行並按順序執行,以實現快速吞吐量。具備依賴關係的事務保證以與源上相同的順序應用。

入站服務器中的讀取器進程根據目標數據庫中定義的約束(主鍵,惟一外鍵)計算工做負載中事務之間的依賴關係。障礙事務和DDL操做也是自動管理的。協調員進程協調多個事務並在應用服務器之間維護訂單。

若是入站服務器不支持配置的功能或列類型,則Replicat與入站服務器分離,等待入站服務器在其隊列中完成事務,而後經過OCI 以直接應用模式將事務應用於數據庫。應用直接事務後,複製器在集成模式下恢復處理。

Replicat在直接模式下應用如下功能:

  • DDL操做
  • 序列操做
  • SQLEXEC參數TABLEMAP參數
  • EVENTACTIONS 處理
  • UDT請注意,若是提取用於USENATIVEOBJSUPPORT捕獲UDT,則集成的Replicat將將其應用於入站服務器,不然將由Replicat直接處理。

 

集成複製要求

要使用集成的Replicat:

  • 目標Oracle數據庫必須是Oracle 11.2.0.4或更高版本。
  • 必須在源數據庫上啓用補充日誌記錄以支持計算表之間的依賴關係以及在目標上同時執行事務調度。有關啓用所需日誌記錄的說明。此日誌記錄能夠在任什麼時候候啓用Oracle GoldenGate進程,但在此以前啓用。
  • 徹底支持:爲了支持全部Oracle數據和存儲類型,源數據庫的兼容性設置必須至少爲11.2.0.3集成解壓縮11.2.x(My Oracle Support文檔ID 1557031.1Opens a new window)的11.2.0.3數據庫特定捆綁軟件修補程序。要在不安裝DDL支持對象的狀況下支持DDL捕獲,源數據庫必須至少爲Oracle 11.2.0.4或更高版本。對於較早的數據庫版本,須要DDL支持對象。
  • 有限的支持:能夠在11.2.0.3下挖掘數據庫上對兼容性小於11.2.0.3的源數據庫使用集成捕獲,但在此模式下,SECUREFILELOB,XML列,透明數據加密和UDT基於數據庫版本和兼容性。數據庫必須具備適用於集成提取11.2.x(Doc ID 1557031.1Opens a new window)的11.2.0.3數據庫特定捆綁軟件修補程序。數據庫必須與源數據庫版本相同(或更高)的數據庫版本(最低爲11.2.0.3)。
  • 集成捕獲是支持從多租戶容器數據庫捕獲的惟一模式。One Extract能夠挖掘多租戶容器數據庫中的多個可插拔數據庫。

 

 

 

1.6 關於非整合複製

在非集成模式下,Replicat進程使用標準SQL將數據直接應用到目標表。在這種模式下,Replicat的操做以下:

 

閱讀Oracle GoldenGate跟蹤。

執行數據過濾,映射和轉換。

構造表明源數據庫DML或DDL事務的SQL語句(按提交順序)。

經過Oracle調用接口(OCI)將SQL應用於目標。

 

1.7 決定使用哪一種應用方法

使用不一樣的捕獲和應用模式,能夠一塊兒使用如下捕捉和應用模式:

 

經典捕獲(Oracle或非Oracle源)和非集成的Replicat

經典捕捉(Oracle或非Oracle源)和集成的Replicat

集成捕獲和非集成複製

集成捕獲和集成Replicat

 

您能夠在同一個源Oracle GoldenGate實例內同時使用集成的捕獲和經典捕獲,而且能夠在同一個目標Oracle GoldenGate實例內同時使用集成的Replicat和非集成的Replicat。此配置須要仔細將對象放置在相應的進程組中,由於在經典和集成捕捉模式之間以及在非集成和集成的Replicat模式之間沒有DDL或DML的協調。每一個提取組必須根據表數據類型和屬性處理適合處理模式的對象。一個Extract中沒有對象能夠對另外一個Extract中的對象具備DML或DDL依賴性。Replicat配置必須應用相同類型的隔離。

 

Oracle版本支持的推薦Oracle GoldenGate配置是在Oracle源上使用一個集成捕獲,在Oracle目標上使用每一個源數據庫上的一個集成Replicat。集成捕獲比傳統捕獲更全面地支持某些數據類型。一個集成的Replicat配置經過入站服務器支持全部Oracle數據類型,或者在必要時經過切換直接應用來支持全部Oracle數據類型,並保持源事務完整性。您能夠根據須要將並行度設置調整到所需的應用性能級別。

 

 

2、OGG安裝要求

2.1環境環境要求

磁盤空間要求:Linux 12c 須要至少 521M 磁盤空間 OUI安裝;rac OCFS 官方建議支持自動faliover。

 

內存要求:oracle官方建議在大多數狀況下,用戶不須要更改默認的內存管理配置Oracle GoldenGate。(In most cases, users need not change the default Oracle GoldenGate memory management configuration.)

 

網絡要求:帶寬多大參考1.2;Oracle GoldenGate須要一些毫無保留的和不受限制的TCP / IP端口的,它的數量取決於OGG的進程的數量和類型。

 

操做系統用戶權限要求:安裝在Unix操做系統下,安裝Oracle GoldenGate的用戶必須

在Oracle GoldenGate安裝目錄的寫權限。Oracle GoldenGate提取,複製,和經理必須操做過程有權限讀取、寫入和刪除文件的操做系統用戶。

 

數據庫要求:ORACLE 數據庫必須爲歸檔模式。

 

RAC環境要求:

 

一、將Oracle GoldenGate Manager流程(和惟一的管理器)註冊爲集羣管理的資源, Manager必須惟一的Oracle GoldenGate進程,即集羣管理軟件啓動中止,由於它是管理全部其餘進程的父進程,將Oracle GoldenGate集成到集羣中

二、若是集羣使用一個虛擬IP地址(如Oracle Clusterware),您可能須要爲管理程序獲取可用的固定IP地址。VIP必須公共子網上的一個可用的IP地址,不能肯定經過DHCP。在提取數據泵的參數文件中,指定其中的VIP遠程管理器做爲RMTHOST參數的輸入值。其餘的

訪問Manager的GoldenGate產品也應該使用VIP。

三、確保集羣中的全部節點具備相同的兼容參數

設置。

四、當您配置管理器時,添加AUTOSTART和AUTORESTART參數該管理器將自動啓動複製過程。在須要的時候,能夠控制提取、複製和其餘Oracle GoldenGate進程GoldenGate用戶界面。

五、只在一個節點上安裝共享驅動器。這阻止了進程的存在開始另外一個節點。在全部節點上使用相同的掛載點。

 

六、能夠專門爲OGG 添加一個服務。

 

2.2 OGG支持的數據類型

OGG 12.1支持的類型:

2.2.1 ANYDATA 類型

■ BINARY_DOUBLE

■ BINARY_FLOAT

■ CHAR

■ DATEINTERVAL DAY TO SECOND

■ INTERVAL YEAR TO MONTH

■ NCHAR

■ NUMBER

■ NVARCHAR2

■ RAW

■ TIMESTAMP

■ TIMESTAMP WITH TIME ZONE

■ TIMESTAMP WITH LOCAL TIMEZONE

■ UDTs

■ VARCHAR/VARCHAR2

 

 

2.2.2 Numeric 類型

■ NUMBER up to the maximum size permitted by Oracle

■ BINARY FLOAT

■ BINARY DOUBLE

 

2.2.3 Character類型

■ CHAR

■ VARCHAR2

■ LONG

■ NCHAR

■ NVARCHAR2

 

2.2.4 Multi-byte 類型

■ NCHAR and  NVARCHAR2 multi-byte character data types

■ Multi-byte data stored in  CHAR and  VARCHAR2 columns

 

2.2.5 Binary 類型

■ RAW

■ LONG RAW

 

2.2.6 Date and Timestamp 類型

■ DATE

■ TIMESTAMP

注意:

Oracle GoldenGate不支持負的日期。

■間隔一天,間隔年只是若是目標大小的支持列等於或大於源的列。

■Oracle GoldenGate支持捕獲和時間戳和時間複製帶爲UTC偏移(timestamp 2011-01-01 8:00:00 - 8」)。

■時間戳和時區的TZR(區域ID)是複製支持數據的變化,而不是初始荷載,爲返回,或操做的地方必須從數據庫中提取列。在這些狀況下,區域id是當選定列時,由數據庫轉換爲時間偏移量。複製將時間戳複製爲具備時間偏移值的日期和時間數據。

2.2.7 Large Object 類型

■ CLOB

■ NCLOB

■ BLOB

■ SECUREFILE and  BASICFILE

 

Oracle GoldenGate不支持過濾、列映射,或操縱大於4K的大對象。

 

2.2.8 XML Data Types

支持如下XML類型:

■集成捕獲模式,Oracle GoldenGate支持XMLType列XMLType表存儲爲XML CLOB,XML和XML二進制對象關係。

■經典的捕獲模式,Oracle GoldenGate支持XMLType列存儲XML和XML二進制字符

 

2.2.9用戶定義或抽象類型

用戶定義或抽象類型

Oracle GoldenGate支持用戶定義類型(UDT)或抽象數據類型(ADT)

源和目標對象具備相同的結構。 模式名稱能夠是

不一樣。

支持的通常限制 - 集成和經典捕獲模式

■基於重作的支持大多數屬性類型,但能夠從源代碼提取

當UDT包含表時:

– Nested Table

– SDO_TOPO_GEOMETRY

– SDO_GEORASTER

■ Fetch-based does not support UDT that contains:

– ANYDATA

– TIMESTAMP WITH TIMEZONE

– TIMESTAMP WITH LOCAL TIMEZONE

– INTERVAL YEAR TO MONTH

– INTERVAL DAY TO SECOND

– BINARY FLOAT

– BINARY DOUBLE

■ Oracle GoldenGate GG does not support UDTs that contain:

Details of Support for Oracle Data Types

System Requirements and Preinstallation Instructions 1-17

– CFILE

– BFILE

– REF

– OPAQUE (with exception of  XMLType and  ANYDATA

 

2.3 DML支持的對象和操做

2.3.1 Tables, Views, Materialized Views

Oracle GoldenGate支持對常規表進行的如下DML操做,

索引組織表,彙集表和實例化視圖。

■插入

■更新

■刪除

■關聯交易控制操做

提示:您可使用DBA_GOLDENGATE_SUPPORT_MODE數據字典

查看以顯示有關Oracle GoldenGate級別的信息捕獲數據庫中的表的進程支持。

Oracle GoldenGate支持包含任意數量行的表。

■一行長度最多可達4 MB。若是Oracle GoldenGate配置爲包含

在其處理範圍內的列的先後圖像,爲4 MB最大長度適用於完整的圖像加長度的總長度

的後圖像。例如,若是列上有UPDATE操做被用做行標識符,處理先後圖像

總共不能超過4 MB。列以前和以後的圖像也是必需的這不是行標識符,而是用做衝突的比較列檢測和分辨率(CDR)。容許超過4 KB數據的列,例如LOB和LONG,只有前4 KB的數據存儲在行和有助於最大行長4MB。

■Oracle GoldenGate支持每一個表的最大列數由數據庫支持。

 

2.3.2 GoldenGate支持分區屬性的表

– Range partitioning

– Hash Partitioning

– Interval Partitioning

– System Partitioning

– Composite Partitioning

– Virtual Column-Based Partitioning

– Reference Partitioning

– List Partitioning

 

2.3.3 Oracle GoldenGate支持僅包含一列的表

不包括如下類型的表(Oracle GoldenGate supports tables that contain only one column, except when the column contains one of the following data types)

– LOB

– LONG

– Nested table

– UDT

– VARRAY

– XMLType

 

2.4 DDL支持的對象和操做

當源數據庫是Oracle 11.2.0.4或更高版本的時候,提取操做是集成的模式,DDL捕獲支持集成到數據庫日誌挖掘服務器中不須要使用DDL觸發器。必須設置數據庫參數11.2.0.4.0兼容性。在集成捕獲模式中,提取支持DDL包括基於密碼的列加密。

--注意: Password-based column encryption in DDL is not supported in classic capture mode.

2.4.1 支持的DML對象

– clusters

– directories

– functions

– indexes

– packages

– procedure

– tables

– tablespaces

– roles

– sequences

– synonyms

– triggers

– types

– views

– materialized views

– users

 

Oracle editionbased Redefinition(EBR)數據庫複製的Oracle DDL是

支持如下Oracle數據庫對象的集成提取:

– functions

– library

– packages (specification and body)

– procedure

– synonyms

– types (specification and body)

– views

EBR不支持使用DDL觸發器。

 

2.4.2 支持的DML操做

■GoldenGate支持DDL操做4 MB的大小。GoldenGate用字節來度量DDL語句的大小,而不是字符。這大小限制包括包、過程和函數。實際的大小限制DDL的支持是近似的,由於大小不只包括語句文本,但也包括Oracle GoldenGate的維護開銷對象名稱的長度、DDL類型和其餘特徵在內部保存DDL記錄。

■GoldenGate支持全局臨時表(GTT)DDL操做要清晰可見,這樣它們就能夠被複制。您必須設置DDLOPTIONS容許這個操做的參數,由於它不是默認設置的

 

2.5 OGG不支持的數據類型和對象

集成和經典的捕獲模式

 

2.5.1 不支持的Oracle數據類型

Oracle GoldenGate不支持如下數據類型。

■對於不具備VARRAYS的數據類型,基於ANYDATA fetch的列支持

包括嵌入在這些數據類型中的命名集合和VARRAYS

■ANYDATASET

■ANYTYPE

■BFILE

■MLSLABEL

■ORDDICOM

■TIMEZONE_ABBR

■URITYPE

■包含不受支持的Oracle數據類型的UDT

■Oracle GoldenGate不支持標識列數據的複製或有效時間時間列數據。

以及calssical不支持的capture 類型,如:LONG VARCHAR,XML columns stored as

Object-Relational,Basic Compression, OLTP-Compression, Exadata Hybrid Columnar

Compression,Invisible(隱形)columns。

 

2.5.2 不支持索引組織表

索引組織表的不支持限制,這些適用於經典拍攝模式。

■啓用密鑰壓縮的IOT(由COMPRESS關鍵字指示key_compression子句)在經典捕獲模式下不受支持,可是支持集成捕獲模式。

 

2.5.3 不支持的視圖

不支持的視圖,這些限制適用於集成和經典的捕獲模式。

■GoldenGate支持捕獲從一個視圖提取初始載荷模式(直接從源視圖獲取,而不是重作日誌)。

■GoldenGate不捕獲變動數據從一個視圖,可是它支持從視圖的底層表中捕獲。

■GoldenGate能夠複製到一個視圖可更新,只要視圖是固有的。源表的結構和目標視圖必須是相同的

 

2.5.4 不支持物化視圖

在經典的和集成的模式中獲得了物化視圖

如下的侷限性。

■物化視圖不支持建立ROWID。

對Oracle DML中對象和操做的支持細節爲Oracle數據庫安裝和配置Oracle GoldenGate

■能夠建立物化視圖日誌與ROWID。

■源表必須有一個主鍵。

■截斷的物化視圖不支持。您可使用DELETE FROM聲明。

■DML(但不是DDL)從一個完整的刷新物化視圖的支持。若是DDL

須要支持此特性,打開Oracle GoldenGate支持案例。

■爲Replicat Create MV命令必須包括更新條款

■物化視圖能夠被複制或底層基表(s),但不是二者都有

 

2.5.5 不支持集羣表

不支持的集羣表:

在集成和經典的捕獲模式中支持索引集羣,在兩種模式中都不支持散列集羣。在經典的捕獲模式下:

■加密和壓縮羣集表不支持在經典的捕捉。

■提取在經典的捕獲模式捕獲DML更改索引集羣表,若是集羣因子大小保持不變。任何致使集羣大小的DDL增長或減小可能致使提取到該表上的後續DML不正確。

 

2.5.6 不支持的序列

不支持的序列,這些適用於集成和經典的捕獲模式。

■GoldenGate不支持複製的序列值active - active雙向配置。

■緩存大小和源和目標序列的增量區間必須的是相同的。緩存能夠是任何大小,包括0(NOCACHE)。

■序列能夠設置爲循環週期,但源和目標數據庫必須以一樣的方式設置。

 

2.6 DML不支持的對象和操做

2.6.1 DML不支持的對象和操做

以下DML在經典或集成捕獲模式中都不支持:

■REF

■序列值在一個active - active雙向配置

■Database Replay

■建立外部表

■無形的列不支持經過經典或綜合提取。

2.6.2 經典模式不支持對象和操做

如下是經典捕獲模式中不支持:

■Exadata混合柱狀壓縮

■捕獲與OLTP表壓縮表

■捕獲與壓縮的表空間和表建立或修改

■捕獲從加密和壓縮羣集表

■無形的列

■分佈式事務。在Oracle版本11.1.0.6和更高版本中,能夠捕獲這些事務若是您經過如下方式使它們不分佈命令,要求從新啓動數據庫。

改變系統設置_CLUSTERWIDE_GLOBAL_TRANSACTIONS = FALSE;

■RAC分佈式XA和PDML分佈式事務

■enabled-tables版本

■標識列

 

2.7 DDL不支持的對象和操做

2.7.1 DDL不支持的對象和操做(經典和集成模式)

"ANONYMOUS", // HTTP access to XDB

"APPQOSSYS", // QOS system user

"AUDSYS", // audit super user

"BI", // Business Intelligence

"CTXSYS", // Text

"DBSNMP", // SNMP agent for OEM

"DIP", // Directory Integration Platform

"DMSYS", // Data Mining

"DVF", // Database Vault

"DVSYS", // Database Vault

"EXDSYS", // External OGGI System User

"EXFSYS", // Expression Filter

"GSMADMIN_INTERNAL", // Global Service Manager

"GSMCATUSER", // Global Service Manager

"GSMUSER", // Global Service Manager

"LBACSYS", // Label Security

"MDSYS", // Spatial

"MGMT_VIEW", // OEM Database Control

"MTSSYS", // MS Transaction Server

"ODM", // Data Mining

"ODM_MTR", // Data Mining Repository

"OJVMSYS", // Java Policy SRO Schema

"OLAPSYS", // OLAP catalogs

"ORACLE_OCM", // Oracle Configuration Manager User

"ORDDATA", // Intermedia

"ORDPLUGINS", // Intermedia

"ORDSYS", // Intermedia

"OUTLN", // Outlines (Plan Stability)

"SI_INFORMTN_SCHEMA", // SQL/MM Still Image

"SPATIAL_CSW_ADMIN", // Spatial Catalog Services for Web

"SPATIAL_CSW_ADMIN_USR",

"SPATIAL_WFS_ADMIN", // Spatial Web Feature Service

"SPATIAL_WFS_ADMIN_USR",

"SYS",

"SYSBACKUP",

"SYSDG",

"SYSKM",

"SYSMAN", // Adminstrator OEM

"SYSTEM",

"TSMSYS", // Transparent Session Migration

"WKPROXY", // Ultrasearch

"WKSYS", // Ultrasearch

"WK_TEST",

"WMSYS", // Workspace Manager

"XDB", // XML DB

"XS$NULL",

"XTISYS", // Time Index

 

Special schemas:

 

"*.AQ$*", // advanced queues

"*.DR$*$*", // oracle text

"*.M*_*$$", // Spatial index

"*.MLOG$*", // materialized views

"*.OGGQT$*",

"*.RUPD$*", // materialized views

"*.SYS_C*", // constraints

"*.MDR*_*$", // Spatial Sequence and Table

"*.SYS_IMPORT_TABLE*",

"*.CMP*$*", // space management, rdbms >= 12.1

"*.DBMS_TABCOMP_TEMP_*", // space management, rdbms < 12.1

"*.MDXT_*$*" // Spatial extended statistics tables

 

2.7.2 DDL不支持的對象和操做(其它類)

■ DDL on nested tables.

■ DDL on invisible columns.

■ DDL on identity columns

更改數據庫和更改系統(這些不被認爲是DDL)使用集成字典,您能夠複製ALTER DATABASE默認版本更改可插入數據庫的默認版本。全部其餘的改變(PLUGABLE)數據庫命令將被忽略。

■備用數據庫的DDL。

■數據庫連接DDL。

■DDL建立表的閃回存檔條款和DDL建立,alters,或者刪除flashback數據歸檔自己。DML在表中閃回支持檔案。

■經典捕獲模式不支持DDL,包括密碼列加密。

 

Oracle對象名稱在默認狀況下是不敏感的,可是能夠區分大小寫,使用雙引號。(GoldenGate)支持大小寫敏感性。

 

2.8 查看OGG不支持的模式

2.8.1 查延遲約束的類型和對象

col CONSTRAINT_NAME for a30

select owner,table_name,CONSTRAINT_TYPE,DEFERRED from dba_constraints where DEFERRED='DEFERRED';

 

按照用戶同步可以使用以下語句:

col CONSTRAINT_NAME for a30

select owner,table_name,CONSTRAINT_TYPE,DEFERRED from user_constraints where DEFERRED='DEFERRED';

 

2.8.2 沒有主鍵和惟一鍵的表

col TABLE_NAME for a50

SELECT owner, TABLE_NAME,CONSTRAINT_TYPE FROM dba_constraints t WHERE NOT EXISTS(SELECT table_name FROM dba_constraints c WHERE constraint_type in('P','U') AND t.table_name=c.table_name);

 

按照用戶同步可以使用以下語句:

col TABLE_NAME for a50

SELECT owner, TABLE_NAME,CONSTRAINT_TYPE FROM user_constraints t WHERE NOT EXISTS(SELECT table_name FROM User_constraints c WHERE constraint_type in('P','U') AND t.table_name=c.table_name);

 

2.8.3 不支持的字段,類型

set lin 150          

set pages 100

col table_name for a30

col owner for a10

col column_name for a30

select owner,table_name,column_name,data_type from dba_tab_columns where owner in ('XXX') and data_type in ('ANYDATA','ANYDATASET','ANYTYPE','BFILE','MLSLABEL','ORDDICOM','REFs','TIMEZONE_ABBR','URITYPE','UDT');

 

或者:

select owner,table_name,column_name,data_type from dba_tab_columns where data_type in ('ANYDATA','ANYDATASET','ANYTYPE','BFILE','MLSLABEL','ORDDICOM','REFs','TIMEZONE_ABBR','URITYPE','UDT');

 

2.8.4 不支持壓縮表

select owner,table_name from dba_tables where compression='ENABLED';

或者按用戶查找:

 

select owner,table_name from dba_tables where owner in ('HR') and compression='ENABLED';

 

2.8.5 不支持物化視圖

COL OBJECT_NAME FOR A30

select object_name,owner from dba_objects where object_type='MATERIALIZED VIEW';

 

或者按照用戶查找:

 

COL OBJECT_NAME FOR A30

select object_name,owner from dba_objects where owner in('hr') and object_type='MATERIALIZED VIEW';

 

3、OGG12.1的OUI的安裝

註釋:源庫和目標庫都安裝。

相關目錄,並把安裝軟件上傳上去:

官方建議軟件安裝到Oracle Cluster File System (OCFS)卷,而不是安裝到本地直接目錄。

[root@ogg1 ~]# cd /ogg/

[root@ogg1 ogg]# mkdir home

[root@ogg1 ogg]# mkdir ogginstall

[root@ogg1 ogg]# chown -R oracle:oinstall /ogg/

 注意:ogg安裝目錄要爲空。

LINUX 環境下運行runInstaller

3.1 OGG安裝步驟(源,目標庫)

 

 

 

3.2 OGG目錄的說明

 

以上所建立的目錄的做用:

Name

purpose

 

dirchk

Checkpoint files

用來存放檢查點(checkpoint)文件,次檢查點是ogg本身的檢查點與實例不一樣

dirdat

GoldenGate trails

用來存放TRAIL文件

dirdef

Data definition files

用來存放經過DEFGEN工具生成的源或目標端數據定義文件

dirprm

Parameter files

用來存放配置參數文件

dirpcs

Process status files

用來存放進程狀態文件

dirrpt

Report files

用來存放進程報告文件

dirsql

SQL script files

用來存放SQL腳本文件

dirtmp

Temporary files

當事物所須要的內存超過已分配內存時,默認存儲在這個目錄

 

 4、OGG 數據庫準備工做

4.1 數據庫級別最下附加日誌

查看以及修改語句以下(12.1 ogg官方安裝文檔54頁):

SELECT supplemental_log_data_min, force_logging FROM v$database;

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

ALTER DATABASE FORCE LOGGING;

SELECT supplemental_log_data_min, force_logging FROM v$database;

ALTER SYSTEM SWITCH LOGFILE;

 

SQL> select supplemental_log_data_min from v$database;

 

SUPPLEME

--------

YES                       -------------若不是YES,須要打開

 

打開語句:

SQL> alter database add supplemental log data;

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> select force_logging from v$database;

 

FOR

---

YES

 

SQL> ALTER DATABASE FORCE LOGGING;

 

4.2 確認表級附加日誌添加

一、確認全部表的狀態是否logging,把nologing變成logging。

 

select owner,table_name from dba_tables where owner in ('HR') and logging='NO';

OWNER                          TABLE_NAME

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

HR                             DEPARTMENTS

HR                             REGIONS

HR                             JOBS

HR                             EMPLOYEES

HR                             JOB_HISTORY

HR                             LOCATIONS

 

6 rows selected.

 

二、打開表級附加日誌

select 'alter table '||owner||'.'||table_name||' logging;' from dba_tables where owner in ('HR') and logging='NO';

 

'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'LOGGING;'

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

alter table HR.DEPARTMENTS logging;

alter table HR.REGIONS logging;

alter table HR.JOBS logging;

alter table HR.EMPLOYEES logging;

alter table HR.JOB_HISTORY logging;

alter table HR.LOCATIONS logging;

 

三、確認已經打開標記附加日誌。

select owner,table_name from dba_tables where owner in ('HR') and logging='NO';

 

4.3 數據庫啓用goldengate

 

注意:

Oracle 11.2.0.4 以及以後版本數據庫,源庫以及目標庫必須開啓參數。

ENABLE_GOLDENGATE_REPLICATION

一、啓用參數 ENABLE_GOLDENGATE_REPLICATION

alter system set enable_goldengate_replication=true;

 

SQL> show parameter gold

 

NAME                                 TYPE        VALUE

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

enable_goldengate_replication        boolean     FALSE

SQL> alter system set enable_goldengate_replication=true;

 

二、設置閃回查詢

若是源庫須要開啓閃回查詢,建議增大undo 表空間的大小以及保留時間。

SQL> show parameter undo

 

NAME                                 TYPE        VALUE

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

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS1

例如:

alter system set undo_retention=1800 scope=both;

alter tablespace UNDOTBS1 add datafile '+datadg' size 2048m;

GRANT FLASHBACK ANY TABLE TO db_user

GRANT FLASHBACK ON schema.table TO db_user;

 

三、須要注意的參數

STREAMS_POOL_SIZE,MAX_SGA_SIZE,PARALLELISM

 

GoldenGate默認狀況下,一個完整的採集提取請求的服務器運行日誌挖掘max_sga_size 1GB和平行度2。所以,若是您運行三個提取在同一數據庫實例中的集成捕獲模式中,至少須要3 GB的分配給流池的內存。做爲最佳實踐,保留25%的流

池。例如,若是在集成捕獲模式中有三個提取,則設置

streams_pool_size如下:

3 GB +(3 GB×0.25)= 3.75 GB

 

4.4 建立管理用戶

4.4.1建立管理用戶ogg

注意:要按照實際狀況分配大小(目標庫、源庫執行如下操做)。

建立表空間是爲了DDL同步,以及OGG查詢。

create tablespace ogg datafile '+DATADG' size 2048M autoextend on next 200m;

create user ogg identified by ogg default tablespace ogg;

SQL> create tablespace ogg datafile '+DATADG' size 2048M autoextend on next 200m;

 

SQL> create user ogg identified by ogg default tablespace ogg;

 

--受權,DBA權限在安裝成功後能夠收回:

11.2.0.3 以後的受權(參照OGG12.1安裝文檔63頁):

 

GRANT CONNECT TO ogg;

GRANT ALTER ANY TABLE TO ogg;

GRANT ALTER SESSION TO ogg;

GRANT CREATE SESSION TO ogg;

GRANT FLASHBACK ANY TABLE TO ogg;

GRANT SELECT ANY DICTIONARY TO ogg;

GRANT SELECT ANY TABLE TO ogg;

GRANT LOCK ANY TABLE TO ogg;

GRANT RESOURCE TO ogg;

GRANT DBA TO ogg;

GRANT SELECT ANY TRANSACTION TO ogg;

exec dbms_goldengate_auth.grant_admin_privilege('ogg');

GRANT UNLIMITED TABLESPACE TO ogg;

 

GRANT CONNECT TO ogg;

GRANT ALTER ANY TABLE TO ogg;

GRANT ALTER SESSION TO ogg;

GRANT CREATE SESSION TO ogg;

GRANT FLASHBACK ANY TABLE TO ogg;

GRANT SELECT ANY DICTIONARY TO ogg;

GRANT SELECT ANY TABLE TO ogg;

GRANT LOCK ANY TABLE TO ogg;

GRANT RESOURCE TO ogg;

GRANT DBA TO ogg;

GRANT SELECT ANY TRANSACTION TO ogg;

exec dbms_goldengate_auth.grant_admin_privilege('ogg');

--Capture from Data Vault,Capture from Virtual Private

Database, Capture redacted data

sys.dbms_internal_clkm 複製Oracle Transparent Data Encryption (TDE)時須要.

--安裝成功後能夠收回dba權限,可是要授予UNLIMITED TABLESPACE權限。

GRANT UNLIMITED TABLESPACE TO ogg;

或者alter user ogg quota unlimited on users;

 

--在ddl_setup時報錯,經過授予如下權限解決。

grant create any table to ogg;

grant create any view to ogg;

grant create any procedure to ogg;

grant create any sequence to ogg;

grant create any index to ogg;

grant create any trigger to ogg;

grant create any view to ogg;

 

4.5  OGG DDL 的配置                  

來自(OGG 12.1 官方文檔131頁13.7)

 

啓用 ddl 支持

默認狀況下, ddl 複製支持的狀態以下:

源庫中:默認狀況下禁用oracle GoldenGate ddl 支持。必須使用 ddl 參數配置提取以捕獲 ddl。

目標庫上,:默認狀況下啓用 ddl 支持, 以維護複製的事務性數據。默認狀況下, Replicat 將處理全部 ddl跟蹤所包含的操做。若是須要, 可使用 ddl 參數來配置 Replicat 以忽略或篩選 ddl 操做。

 

■ just DDL changes

■ just DML changes

■ both DDL and DML

 

什麼時候使用基於 ddl 捕獲,必須使用基於 ddl 捕獲時, 提取將在如下操做配置:

提取操做的經典捕獲模式對任何版本的 oracle 數據庫。提取操做以集成模式對 oracle 數據庫版本11.2.0.3 或早.若是提取將在集成模式下運行11.2.0.4 或更高版本的 oracle數據庫, 則不須要 ddl 觸發器。默認狀況下, 將處理 ddl 捕獲透明地經過數據庫 logmining 服務器。若是提取將從多容器數據庫捕獲, 集成捕獲模式必須與本機 ddl 捕獲方法一塊兒使用。

 

4.5.1 基於DDL觸發器的捕獲(源庫執行)

classcial 模式安裝DDL對象(OGG 安裝文檔222,223頁):

 

 

註釋:從OGG 安裝目錄下執行以下腳本。

 

1.肯定DDL SCHEMA

須要配置在GLOBALS中:GGSCHEMA ogg

 

2.授予ogg讀寫操做系統上的文本文件權限

GRANT EXECUTE ON UTL_FILE TO ogg;

 

3.準備表空間

爲ogg_DDL_HIST、 ogg_MARKER等表準備表空間,若是空間不足,會致使數據庫沒法進行DDL,從而影響業務。

SQL> alter user ogg default tablespace ogg;

 

4.退出全部ORACLE會話,不容許新會話產生。退出全部Oracle會話,包括那些SQL * Plus,那些業務應用程序,Oracle GoldenGate進程的應用程序,以及任何其餘應用程序使用Oracle的軟件。 防止任何新會話的開始。

 

5.sqlplus "/as sysdba"  ----必須sysdba連入 ,運行SQL * Plus並以具備SYSDBA權限的用戶身份登陸。 這個特權是須要在SYS模式中安裝DDL觸發器,這是Oracle須要的。

 

6.@marker_setup

  --該腳本安裝marker系統,這部分爲啓用DLL支持所必備,執行該腳本時會提示輸入GoldenGate管理賬戶schema名。

 

7. @ddl_setup

  執行該腳本要確認關閉掉全部ORACLE會話,以及提交相應問提交的事物。

注意:若是ddl_setup.sql將失敗此模式的表空間由任何其餘用戶共享,可是,若是不行,那不會失敗默認表空間沒有將AUTOEXTEND設置爲ON,建議使用設置。

 

8. @role_setup

--該操做會重建DDL同步所需的權限,授予GoldenGate中的DDL對象以DML權限。

提示你執行一條GRANT語句,執行便可!

 

GRANT GGS_GGSUSER_ROLE TO ogg;

 

9. @ddl_enable.sql

  --啓用DDL觸發器,以捕獲DDL操做。

 

10. @ddl_pin.sql ogg

先執行@?/rdbms/admin/dbmspool.sql (DDL 性能工具)

 

要提升DDL觸發器的性能,能夠經過ddl_pin腳本,該腳本會將觸發器使用的包加載到內存,以此提升效率。該腳本執行時須要引用dbms_shared_pool系統包,所以在使用ddl_pin腳本前須要確保dbms_shared_pool可用。執行ddl_pin腳本須要指定GoldenGate管理員schema名稱.

 

 

11. @ddl_status.sql

 

驗證是否由該對象建立的每一個對象Oracle GoldenGate DDL支持特性的存在和存在正常運做。(Oracle安裝).

 

4.5.2 重置DDL環境

1. Run GGSCI.

2. STOP EXTRACT <group>

3. STOP REPLICAT <group>

4. Run SQL*Plus and log in as a user that has SYSDBA privileges.

5. Run the ddl_disable script.

6. Run the ddl_remove script,

7. Run the marker_remove script.

8. Run the marker_setup script.

9. Run the ddl_setup script.

10. Run the role_setup script.

11. Grant the role to all Oracle GoldenGate users

12. Run the ddl_enable.sql script.

 

4.5.4 刪除DDL環境:

1. Run GGSCI.

2. STOP EXTRACT <group>

3. STOP REPLICAT <group>

4. Run SQL*Plus and log in as a user that has SYSDBA privileges.

5. Run the ddl_disable script .

6. Run the ddl_remove script

7. Run the marker_remove script.

 

4.5.4 支持sequence

 

查看OGG 12.1.2 官方安裝文檔102-103頁。

在 Source 和 target 都得執行,

grant dba to ogg;

ggsci

EDIT PARAMS ./GLOBALS  --後面參數配置

GGSCHEMA ogg

SQL> @sequence.sql

在 source 系統裏

GRANT EXECUTE on DDLuser.updateSequence TO DBLOGINuser;

 

GRANT EXECUTE on ogg.updateSequence TO ogg;

在 target 系統裏

GRANT EXECUTE on DDLuser.replicateSequence TO Replicatuser;

GRANT EXECUTE on ogg.replicateSequence TO ogg;

 

源庫執行以下:

 

ALTER TABLE sys.seq$ ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

DDL 支持配置完畢,就能夠支持 sequences (CREATE, ALTER, DROP, RENAME)

操做的複製的,但若是隻是單純的想複製 sequence 的話,能夠不配置 DDL 支持,

只須要 sequence 參數就 行。

GGSCI> dblogin userid ogg@source,password ogg

FLUSH SEQUENCE <owner.sequence> 或者 wildcard

在 initial synchronization 以後,必須執行的就是在 target 上對沒一個

sequence 至少取一次 nextval

 

參照OGG安裝文檔154頁。

注意:在容許新的DDL或者DML將發行的同一對象(S)做爲原始DDL,讓原來的DDL時間要複製到遠程系統,而後再由提取該系統。這將確保操做到達正確的複製對原系統,防止DML元數據不一致形成的錯誤。

 

在一個級聯配置傳播DDL EXT進程配置。

 

DDLOPTIONS GETREPLICATES, IGNOREAPPLOPS

 

序列複製中的問題:

 

Cycle的影響

達到maxvalue後,會切換成minvalue值,可是有序列源和目標端算法限制,目標端進程必須在一直執行nextval,直到maxvalue,因此表象就是replicat一直hang的狀態,checkpoint不向前移動。

此時建議:

 複製排除recycle的序列或者臨時忽略sequence的複製。

 或者加參數DBOPTIONS _MAXSEQUENCEDISTANCE <n> n – 源端和目標端seq的值相差多少能夠ignore;

現有的目標上(已經配置了序列複製)同時又配置了extract(配置了ddl setup),extract會很

慢,建議修改seq的cache大小,或者配置DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH來

減小ALTER SEQUENCE CYCLE|NOCYCLE的產生。

5、OGG classical 模式源庫的配置(cdc和initload配合)

5.1 添加supplement log

 

 

查看OGG 12.1.2 官方安裝文檔52-53頁

  

登錄選項

GGSCI命令

做用

用例

模式級補充無條件登陸全部支持的日誌記錄列

ADD SCHEMATRANDATA with ALLCOLS option

無條件啓用補充記錄全部的表中的列,

對於全部的表在一個模式(用戶)。

用於集成複製當並行性>1,

源和目標有不一樣調度列。

模式級補充記錄,最小設置

ADD SCHEMATRANDATA with

NOSCHEDULINGCOLS option

無條件啓用補充記錄主鍵和全部有效的惟一索引模式中的表。

僅用於非集成Replicat。

這是最低要求模式級日誌記錄。

表級補充內置日誌記錄支持綜合Replicat

ADD TRANDATA

無條件啓用補充記錄主鍵和有條件補充記錄惟一鍵和外鍵表。全部這些鍵一塊兒被稱爲調度列。

全部Oracle都須要GoldenGate

用例除非模式級別補充記錄是用過的。

表級補充無條件登陸全部支持的日誌記錄列

ADD TRANDATA with

ALLCOLS option

無條件啓用補充記錄全部的表的列。

用於集成複製當並行性更大時比1和源和

目標有所不一樣調度列。

表級補充記錄,最小設置

ADD TRANDATA with

NOSCHEDULINGCOLS option

無條件啓用補充記錄主鍵和全部表的有效惟一索引。

僅用於非集成Replicat。

這是最低要求表級日誌記錄。

ADD SCHEMATRANDATA schema [ALLCOLS | NOSCHEDULINGCOLS]

schema

要爲其添加補充鍵信息的架構。不要使用通配符。要在多租戶容器數據庫的多個可插拔數據庫中爲模式發出ADD SCHEMATRANDATA,請使用DBLOGIN單獨登陸到每一個可插入數據庫,而後發出ADD SCHEMATRANDATA。有關詳細信息,請參閱DBLOGIN。

■ALLCOLS

可用於啓用無條件的所有日誌記錄的表的列,並適用於全部當前和將來的表給定模式。用於在源和目標時支持集成的Replicat表有不一樣的調度列。 (計劃列是主要的鍵,惟一鍵和外鍵。)

■NOSCHEDULINGCOL

僅記錄主鍵的值而且所有有效稍後添加的模式和新表中的現有表的惟一索引。這是架構級日誌記錄的最低要求級別,僅適用於

以非整合模式複製。

 

在如下示例中,該命令啓用默認的補充日誌記錄

finance模式。

ADD SCHEMATRANDATA finance

在如下示例中,該命令僅啓用補充日誌記錄

hr模式的主鍵和有效的惟一索引。

ADD SCHEMATRANDATA hr NOSCHEDULINGCOLS

 

ADD TRANDATA command.

 

ADD TRANDATA [container.]schema.table [, COLS (columns)] [, NOKEY] [, ALLCOLS |

NOSCHEDULINGCOLS]

 

■ALLCOLS

能夠對全部列進行無條件的補充記錄的表。用於在源和目標時支持集成的Replicat表有不一樣的調度列(計劃列是主要的鍵,惟一鍵和外鍵)。

■NOSCHEDULINGCOLS

僅在非集成模式下對Replicat有效。它問題具備ADD補充日誌數據的ALTER TABLE命令

子句適用於爲其定義的惟一約束類型沒有惟一約束的表或全部列。這個命令知足Oracle GoldenGate的基本表級日誌記錄要求不會使用模式級日誌記錄。

■COLS

列記錄KEYCOLS子句所需的非鍵列用於過濾和操縱。括號是必需的。這些列除了主鍵以外,還將被記錄,除非NOKEY選項也是當下。

■NOKEY

防止記錄主鍵或惟一鍵。須要一個TABLE和MAP參數中的KEYCOLS子句和ADD中的COLS子句TRANDATA命令記錄備用KEYCOLS列。

4.若是將ADD TRANDATA與COLS選項一塊兒使用,則爲其建立惟一索引

目標上的列以優化行檢索。若是您正在記錄這些列

做爲KEYCOLS子句的替代鍵,請注意將KEYCOLS子句添加到

配置Oracle GoldenGate時的TABLE和MAP語句流程。

 

 

ggsci>dblogin userid ogg,password ogg(或者dblogin userid ogg@ogg1,password ogg)

ggsci>add SCHEMATRANDATA HR    (按照用戶添加)

ggsci>info trandata HR.*

ggsci>info schematrandata HR

 

add trandata:不會自動更新trandata信息(create table,update附加日誌列信息等操做時)

add schematrandata 命令格式:add schematrandata <schemaname>(不要用schemaname.*)

 

5.2 MGR進程配置

使用語法,說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 202-203頁

 

Syntax for Windows, UNIX, and Linux

mgr paramfile parameter_file

[cd directory]

[pauseatend | nopauseatend]

[port portnum]

[reportfile report_file]

[usesubdirs | nousesubdirs]

 

參數說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 208-209頁

 

參數

使用說明

CHARSET

在讀取參數文件時,指定要使用的進程的多字節字符集,而不是操做系統默認值。

COMMENT 或者 --

容許在參數文件中插入註釋。

SOURCEDB

指定數據源名稱做爲登陸信息的一部分。

USERIDALIAS

爲Manager須要訪問數據庫時提供登陸信息。

SYSLOG

過濾寫入系統的Oracle GoldenGate消息的類型在Windows或UNIX系統上記錄或IBM上的SYSOPR消息隊列個人系統。

DYNAMICPORTLIST

指定Collector能夠動態分配的端口。

PORT

創建管理員偵聽請求的TCP / IP端口號。

AUTORESTART

指定管理器在失敗後從新啓動的進程。

AUTOSTART

指定啓動Manager時啓動的進程。

BOOTDELAYMINUTES

肯定系統重啓時間後MGR延遲多長時間進行主要進程活動。 此參數支持視窗。

UPREPORT

肯定過程心跳消息的報告頻率。

DOWNCRITICAL

報告正常或異常中止的進程。

DOWNREPORT

控制報告中止進程的頻率。

LAGCRITICAL

指定一個被認爲是關鍵的滯後閾值併產生一個警告到錯誤日誌。

LAGINFO

指定信息性消息報告給錯誤日誌的滯後(LAG)閾值。

LAGREPORT

設置報告延遲時間到錯誤日誌的間隔。

CHECKMINUTES

肯定MGR週期進行維護活動的頻率。

PURGEDDLHISTORY 或者

PURGEDDLHISTORYALT

清除從Oracle DDL歷史記錄表中行他們再也不須要的。

PURGEMARKERHISTORY

清除再也不是Oracle標記錶行須要。

PURGEOLDEXTRACTS for Extract and Replicat

按期清理抽取出的過時文件,能夠被設置在Manager, Extract, and Replicat參數文件中,oracle建議設置在Manager中.

PURGEOLDTASKS

清除指定時間後Extract 和 Replicat任務的時間。

STARTUPVALIDATIONDELAY[CSECS]

設置一個延遲時間,以後Manager會檢查它進程啓動後仍在運行。

 

port 7809

 

DYNAMICPORTLIST 7800-7810

AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 30

LAGREPORTHOURS 1

LAGREPORTMINUTES 10

LAGCRITICALMINUTES 10

PURGEOLDEXTRACTS /ogg/ogginstall/dirdat/*, USECHECKPOINTS, MINKEEPHOURS 12

userid ogg@ogg1,password ogg

PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 30

PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 30

 

註釋:

具體保留時間時間建議根據評價天天歸檔量大小/4,計算須要的空間。

如下參數相關說明:

在如下示例中,Manager會嘗試三次啓動全部Extract進程在一小時內發生故障,並在每次嘗試前等待五分鐘。

AUTORESTART EXTRACT *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60

 

要指定一個端口範圍加個別端口,請在該端口之間加一個逗號範圍和我的端口號。 例:

DYNAMICPORTLIST 7820-7830, 7833, 7835

 

狀態:TRAIL文件存在AA000000,AA000001和AA000002。 複製已中止四個小時,沒有完成處理任何文件。 MGR參數包括:

PURGEOLDEXTRACTS / ggs / dirdat / AA *,USECHECKPOINTS,MINKEEPHOURS 2

結果:超過文件必須保留的時間,但不會有文件被清除,由於檢查點代表Replicat沒有完成處理。

 

使用LAGINFOSECONDS,LAGINFOMINUTES或LAGINFOHOURS參數指定一個基本滯後閾值 若是LAG超過指定值,Oracle GoldenGate報告lag信息到錯誤日誌。 若是lag超過了指定的值LAGCRITICAL參數,MGR報告LAG相當重要; 不然報告

LAG做爲信息消息。 零(0)的值強制在頻率處的消息用LAGREPORTMINUTES或LAGREPORTHOURS參數指定。

 

LAGINFOSECONDS seconds | LAGINFOMINUTES minutes | LAGINFOHOURS hours

LAGINFOSECONDS秒

設置基本滯後閾值(秒)。

LAGINFOMINUTES分鐘

設置基本滯後閾值(以分鐘爲單位)。

LAGINFOHOURS小時

設置基本滯後閾值(小時)。

 

使用LAGCRITICALSECONDS,LAGCRITICALMINUTES或LAGCRITICALHOURS參數指定被認爲是關鍵的lag閾值,並強制發出警告消息達到閾值時的錯誤日誌。 此參數影響提取和在本地系統上覆制進程。

LAGCRITICALSECONDS秒

以秒爲單位設置臨界滯後閾值。

LAGCRITICALMINUTES分鐘

以分鐘爲單位設置臨界滯後閾值。

LAGCRITICALHOURS小時

以小時爲單位設置臨界滯後閾值。

 

如下示例保留在過去三天內還沒有修改的全部行,並在至少五天內未修改時將其刪除。該

清除頻率爲30分鐘。(清除從Oracle DDL歷史記錄表中行他們再也不須要的。)

PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

 

如下示例保留在過去三天內還沒有修改的全部行,並在至少五天內未修改時將其刪除。該

清除頻率爲30分鐘。(清除再也不是Oracle標記錶行須要。)

PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

 

 

具體設置以下:

ggsci> edit param mgr

輸入:

 

port 7809

DYNAMICPORTLIST 7800-7810

AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 30

LAGREPORTHOURS 1

LAGREPORTMINUTES 10

LAGCRITICALMINUTES 10

PURGEOLDEXTRACTS /ogg/ogginstall/dirdat/*, USECHECKPOINTS, MINKEEPHOURS 12

userid ogg@ogg1,password ogg

PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 24

PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 24

 

設置好後,重啓MGR

ggsci>start mgr

 

5.3 全局參數的設置

參數說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 207-208頁

 

參數

使用說明

TRAILBYTEORDER

指定使用EXTFILE,RMTFILE,EXTTRAIL或RMTTRAIL參數建立的文件的字節順序(字節順序)。

CHARMAP

指定字符映射文件覆蓋字符代碼點映射。

CHARSET

在讀取參數文件時,指定要使用的進程的多字節字符集,而不是操做系統默認值。

CHECKPOINTTABLE

指定一個默認檢查點表。

CREDENTIALSTORELOCATION

指定存儲登陸憑據的Oracle GoldenGate憑據存儲的位置。

DDLTABLE

指定支持的DDL歷史表的非默認名稱Oracle的DDL同步。

ENABLECATALOGNAMES

支持SQL / MX數據庫的三部分名稱。

ENABLEMONITORING

使Oracle GoldenGate Monitor能夠查看和監視Oracle GoldenGate實例。

EXCLUDEWILDCARDOBJECTSONLY

當TABLEEXCLUDE,SCHEMAEXCLUDE或CATALOGEXCLUDE參數包含通配符時,包含非通配符源表

GGSCHEMA

指定包含數據庫對象的模式的名稱支持Oracle的DDL同步。

MARKERTABLE

指定支持的DDL標記表的非默認名稱Oracle的DDL同步。

MAXGROUPS

指定能夠在其中運行的最大進程組數Oracle GoldenGate實例。(默認25,協調的MAXTHREADS選項的值ADD REPLICAT命令(默認值爲25),加上其餘Replicat的數量在Oracle GoldenGate實例中提取組不能超過MAXGROUPS值,或ADD REPLICAT返回錯誤)。

MGRSERVNAME

指定Manager做爲窗口服務安裝時的名稱。

NAMECCSID

若是SQL目錄中的對象名稱爲DB2,則指定DB2 CCSID

與系統不一樣的CCSID。

NODUPMSGSUPPRESSION

防止重複信息的自動抑制警告消息。

OUTPUTFILEUMASK

指定Oracle GoldenGate進程可使用的umask來建立跟蹤文件和丟棄文件。

USEANSISQLQUOTES 或

NOUSEANSISQLQUOTES

爲引用的對象名稱和文字啓用SQL-92規則。

SYSLOG

過濾寫入到的GoldenGate消息的類型系統日誌。

TRAILCHARSET

當路徑是不存儲源字符集的舊版本時,指定源數據的字符集,或者覆蓋存儲在路徑中的字符集。

UPREPORT

指定Manager報告「提取」的頻率複製正在運行的進程。每次進程之一開始或中止,生成事件。

USEIPV4

強制Oracle GoldenGate使用IPv4進行TCP / IP鏈接。

USEIPV6

強制Oracle GoldenGate使用Ipv6進行TCP / IP鏈接。

WALLETLOCATION

指定主鑰匙錢包的位置。

 

具體操做:

 

GGSCI (ogg1 as ogg@ogg1) 6> dblogin userid ogg@ogg1,password ogg

Successfully logged into database.

 

GGSCI (ogg1 as ogg@ogg1) 7> EDIT PARAMS ./GLOBALS

GGSCHEMA ogg

CHECKPOINTTABLE OGG.ggschkpt

 

配置GLOBAL文件後,須要經過推出並從新登陸ggsci,使得配置生效。

 

5.4 建立檢查點

參數說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 261頁。

 

在GLOBALS參數文件中使用CHECKPOINTTABLE參數來指定名稱全部Replicat組能夠在一個或多箇中使用的默認檢查點表Oracle GoldenGate實例。全部使用ADD REPLICAT建立的Replicat組命令將默認爲此表,除非它被覆蓋該命令的CHECKPOINTTABLE選項。

要建立檢查點表,請使用GGSCI中的ADD CHECKPOINTTABLE命令。作不針對以集成模式配置的Replicat使用檢查點表一個Oracle目標數據庫。在該模式下不須要它,將被忽略。

有關更多信息,請參閱管理適用於Windows和UNIX的Oracle GoldenGate建立一個檢查點表。

 

使用語法:

 

Syntax

CHECKPOINTTABLE [container. | catalog.] owner.table

[container. | catalog.]owner.table

The owner and name of the checkpoint table. Additionally, for an Oracle container

database, specify the correct pluggable database (container). For a SQL/MX database,

specify the correct catalog.

 Example

CHECKPOINTTABLE finance.ggs.chkpt

 

或者直接GGSCI中的ADD CHECKPOINTTABLE命令。

 

GGSCI (ogg1) >  dblogin userid ogg@ogg1,password ogg

Successfully logged into database.

 

GGSCI (ogg1 as ogg@ogg1) 4> ADD CHECKPOINTTABLE

 

No checkpoint table specified. Using GLOBALS specification (OGG.ggschkpt)

 

Successfully created checkpoint table OGG.ggschkpt。

 

Oracle GoldenGate檢查點表在生產庫配置完成。

 

5.5 其餘一些參數說明

5.5.1 通配符排除參數

參數

說明

EXCLUDEWILDCARDOBJECTSONLY

強制包含指定的非通配符的源對象在表或映射參數中,當一個排除參數包含一個通配符,不然將排除該對象。

MAPEXCLUDE

從映射語句中排除源對象。

TABLEEXCLUDE

從表語句中排除源對象。

CATALOGEXCLUDE

將源對象排除在指定的源容器中來自Oracle GoldenGate配置的目錄容器或目錄名使用通配符來指定表或映射語句。

SCHEMAEXCLUDE

不包括由指定源擁有的源對象全部者(如模式)來自Oracle GoldenGate配置當通配符用於指定表或映射表中的全部者。

 

5.5.2 DEFGEN參數

DEFGEN爲源表或目標表建立具備數據定義的文件。數據定義當源表和目標表有不一樣的定義時,是否須要數據庫有不一樣的類型。

 

參數

說明

CATALOGEXCLUDE

從通配符中排除指定的源容器或目錄規範。

CHARSET

指定進程使用的多字節字符集,而不是讀取參數文件時操做系統默認。

DEFSFILE

標識出DEFGEN寫定義的文件的名稱。

NAMECCSID

爲i CCSID指定一個DB2,若是SQL目錄中的對象名稱是與系統不一樣的CCSID。

NOCATALOG

防止容器或目錄名被包含在其中元數據

SCHEMAEXCLUDE

從通配符規範中排除指定的源模式。

SOURCEDB

將數據源指定爲登陸信息的一部分

TABLE for DEFGEN

標識要捕獲定義的表

USERIDALIAS

指定數據庫鏈接信息。

 

5.5.3 DDL參數

這些參數控制Oracle GoldenGate DDL支持。其餘參數能夠須要使用DDL支持,可是這裏的這些是專門處理DDL特性的。

 

參數

說明

DDL

啓用DDL支持和過濾DDL。

DDLERROR

處理DDL複製期間發生的錯誤。

DDLOPTIONS

除了過濾和過濾以外,還配置DDL複製的各個方面字符串替換。

DDLSUBST

容許在DDL操做中替換字符串。

DDLTABLE

指定DDL歷史表的替代名稱。

GGSCHEMA

指定包含對象的模式的名稱支持DDL複製

PURGEDDLHISTORY 或

PURGEDDLHISTORYALT

控制DDL歷史表的大小。

PURGEMARKERHISTORY

控制DDL mark的大小

 

5.6 建立抽取進程

 

使用語法,說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 197頁(能夠配置多組抽取進程)

 

Syntax for Windows, UNIX, and Linux

extract paramfile parameter_file

[atcsn CSN | aftercsn CSN]

[initialdataload]

[pauseatend | nopauseatend]

[processid PID]

[reportfile report_file]

[usesubdirs | nousesubdirs]

 

參數說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 213-215頁。

 

參數

操做說明

RECOVERYOPTIONS

控制提取的恢復進程處理。

SOURCEDB

指定數據源做爲登陸的一部分信息。

TCPSOURCETIMER或 NOTCPSOURCETIMER

當這些系統反映不一樣時間時,調整傳輸到其餘系統的記錄的時間戳。

UPDATERECORDFORMAT

控制圖像以前和以後是否存儲在一個軌跡記錄或兩個記錄中。

DSOPTIONS

當使用Teradata訪問模塊(TAM)時,指定提取處理選項。

 

EXTRACT

將抽取組定義爲在線進程

GETAPPLOPS或 IGNOREAPPLOPS

控制來自除Replicat以外的全部進程的操做是否寫入跟蹤或文件。

GETREPLICATES或

IGNOREREPLICATES

控制是否經過同一系統上的「提取」捕獲複製操做。

PASSTHRU 或NOPASSTHRU

控制表是否由數據泵處理是以直通模式提取仍是須要數​​據定義。

PASSTHRUMESSAGES或

NOPASSTHRUMESSAGES

控制是否將正在以直通模式處理的表寫入消息提取到「提取」報告文件。

RMTTASK

在遠程系統上建立一個處理任務。

SOURCEISTABLE

從源表中提取整個記錄。

VAM

表示正在使用Teradata訪問模塊(TAM)向事務處理提供事務數據。

COMPRESSDELETES 或 NOCOMPRESSDELETES

控制Oracle GoldenGate是否僅將關鍵字或所有列寫入跟蹤以進行刪除操做。

COMPRESSUPDATES 或 NOCOMPRESSUPDATES

僅致使主鍵列和更改了要更新的列

EXCLUDETAG

將Replicat或數據泵更改指定爲從路徑文件中排除。

FETCHOPTIONS

控制Oracle GoldenGate獲取數據的方式的某些方面

LOGALLSUPCOLS 或NOLOGALLSUPCOLS

記錄所需的列支持衝突檢測和解決和集成複製。

SEQUENCE

指定同步序列。

TABLE | MAP

指定提取和控件的表列映射和轉換。

TABLEEXCLUDE

從提取中排除源表處理。

TARGETDEFS

指定包含目標表的文件位於NonStop平臺上的目標數據庫的定義。

TRAILCHARSETASCII

指定數據的ASCII字符集在z / OS上從DB2捕獲,當二者兼容時存在ASCII和EBCDIC表。

TRAILCHARSETEBCDIC

指定數據的EBCDIC字符集在z / OS上從DB2捕獲,當二者兼容時存在ASCII和EBCDIC表。

EXTFILE

指定提取數據寫入本地系統的提取文件

EXTTRAIL

指定提取的數據寫入遠程系統的TRAIL文件。指定TRAIL的數據寫入本地系統的路徑。

RMTFILE

指定提取的數據寫入遠程系統的提取文件。

RMTHOST

指定目標系統和管理端口號。

RMTTRAIL

指定提取的數據寫入遠程系統的路徑。

FORMATASCII

之外部ASCII格式格式提取數據。

FORMATSQL

將數據提取到等效的SQL語句中。

FORMATXML

將提取的數據格式化爲等效的XML語法。

NOHEADERS

防止記錄標題被寫入小徑。

BR

控制提取的有界恢復功能。

CACHEMGR

控制虛擬內存緩存管理器。

FLUSHSECS 或 FLUSHCSECS

肯定記錄數據保留的時間量緩衝後被寫入小徑。

LOBMEMORY

控制內存量和臨時磁盤空間可用於緩存包含LOB的事務。

RMTHOSTOPTIONS

指定被動提取組使用的TCP / IP鏈接的主機信息之外的鏈接屬性。

THREADOPTIONS

控制Extract在Oracle RAC中運行的方式。

TRANLOGOPTIONS

支持捕獲進程選項。指定在解析數據庫日誌時所須要的特殊參數

TRANSMEMORY

控制內存量和臨時磁盤空間可用於緩存未提交的交易數據。

WARNLONGTRANS

定義一個長時間運行的事務並控制其頻率檢查並報告。

ROLLOVER

指定跟蹤文件的老化方式。

DECRYPTTRAIL

當Extract用做數據時,須要解密數據泵而且必須對數據進行處理。

ENCRYPTTRAIL或

NOENCRYPTTRAIL

控制跟蹤或提取文件中數據的加密。

 

參照OGG 12.1 官方安裝文檔41頁

注意:建議多組抽取進程,爲緩解OGG日誌抽取壓力。

Group 1:

EXTRACT ora9a

SETENV (ORACLE_HOME = "/home/oracle/ora/product")

SETENV (ORACLE_SID = "oraa")

USERIDALIAS tiger1

RMTHOST sysb

RMTTRAIL /home/ggs/dirdat/rt

TABLE hr.emp;

TABLE hr.salary;

 

 

注意:

使用TRANLOGOPTIONS參數與DBLOGREADER選項參數文件若是RDBMS是Oracle 11.1.0.7或Oracle 11.2.0.2或更高版本11g R2版本。

使用HANDLECOLLISIONS(該參數依賴於表的主鍵進行邏輯判斷,無主鍵表使用該參數會致使重複記錄出現)

 

具體參數設置以下(可按照實際狀況添加,能夠大表拆分等,僅供參考):

ggsci> dblogin userid ogg@ogg1,password ogg

ggsci> add extract sa_ext tranlog threads 2 begin now  (RAC)

add extract sa_ext tranlog threads 2 scn 4072415 –按照SCN加

單機: add extract sa_ext tranlog begin now

ggsci>add extract sb_ext tranlog threads 2 begin now

ggsci>add exttrail /ogg/install/dirdat/sa extract sa_ext, megabytes 100

ggsci>add exttrail /ogg/ogginstall/dirdat/sb extract sb_ext, megabytes 100

 

注:

tranlog:表示數據抓取的來源是數據庫的redo數據。

threads 2:表示咱們數據庫有多少個threads,單實例基本上是1或者不設,rac就本身設置了。

begin now:表示咱們在啓動這個抓取進程的就去抓取數據。

./dirdat:表示trail文件的目錄

sm:trail文件的前綴

extract sm_ext:值指定給那個進程用的(sm_ext)。

 

ggsci>edit param sa_ext

 

參數:

 

extract sa_ext

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")

--SETENV (ORACLE_SID = "ogg1")

userid ogg@ogg1,password ogg

TRANLOGOPTIONS DBLOGREADER

exttrail /ogg/ogginstall/dirdat/sa

TRANLOGOPTIONS LOGRETENTION DISABLED

DBOPTIONS ALLOWUNUSEDCOLUMN

TRANLOGOPTIONS ALTARCHIVELOGDEST +ARCHDG/ORCL/ARCHIVELOG

 --歸檔路徑能夠不用設置,OGG可以識別

TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT "arch_%t_%s_%r.arc"

--歸檔路徑能夠不用設置,OGG可以識別

DISCARDFILE /ogg/ogginstall/dirdat/sa_ext.dsc, APPEND, MEGABYTES 100

DISCARDROLLOVER AT 6:00

REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS, RATE

FETCHOPTIONS MISSINGROW ABEND

STATOPTIONS REPORTFETCH

WARNLONGTRANS 1H, CHECKINTERVAL 10m

DYNAMICRESOLUTION

FETCHOPTIONS FETCHPKUPDATECOLS

--DDLSUBST '/ora10g/oradata/src/' with '/ora11g/oradata/trg/' -- Create tablespace是能夠複製的,能夠支持複製到不一樣文件目錄;

ddl include objname HR.* include objtype 'TRIGGER'

table HR.*;

 

ggsci>edit param sb_exti:

 

參數:

 

extract sb_ext

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")

--SETENV (ORACLE_SID = "ogg1")

userid ogg@ogg1,password ogg

TRANLOGOPTIONS DBLOGREADER

exttrail /ogg/ogginstall/dirdat/sb

TRANLOGOPTIONS LOGRETENTION DISABLED

DBOPTIONS ALLOWUNUSEDCOLUMN

TRANLOGOPTIONS ALTARCHIVELOGDEST +ARCHDG/ORCL/ARCHIVELOG

--歸檔路徑能夠不用設置,OGG可以識別

TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT "arch_%t_%s_%r.arc"

--歸檔路徑能夠不用設置,OGG可以識別

DISCARDFILE /ogg/ogginstall/dirdat/sb_ext.dsc, APPEND, MEGABYTES 100

DISCARDROLLOVER AT 6:00

REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS, RATE

FETCHOPTIONS MISSINGROW ABEND

STATOPTIONS REPORTFETCH

WARNLONGTRANS 1H, CHECKINTERVAL 10m

DYNAMICRESOLUTION

FETCHOPTIONS FETCHPKUPDATECOLS

ddl include objname HR.* include objtype 'TRIGGER'

table HR.*;

 

ggsci>start sa_ext

 

ggsci>start sb_ext

 

重要參數說明:

TRANLOGOPTIONS:使用TRANLOGOPTIONS參數來控制抽取與之交互的方式事務日誌或使用傳遞事務數據的API,具體取決於數據庫或捕獲模式。您可使用多個TRANLOGOPTIONS語句一樣的參數文件,也能夠在相同的範圍內指定多個選項若是容許的話,可使用TRANLOGOPTIONS語句。只對數據庫或數據庫使用給定的TRANLOGOPTIONS選項的意圖。

 

LOGRETENTION [ENABLED [DAYS n] | SR | DISABLED]:指定Oracle恢復管理器(RMAN)是否保留日誌文件提取需求恢復。當您使用寄存器提取命令時,日誌根據當前數據庫,是否保留了發出命令的時間視交叉上核。保留日誌直到手動刪除。此參數不啓用或在數據庫內部禁用RMAN。

 

ALLOWUNUSEDCOLUMN |  NOALLOWUNUSEDCOLUMN: 對Oracle的提取有效。控制在遇到未使用的列的表時提取異常。

DBOPTIONS 默認值是ALLOWUNUSEDCOLUMN。提取時遇到未使用的表列,它繼續處理並生成一個警告。使用這個參數時,在目標或源定義文件中必須有相同的未使用的列該表必須指定爲複製,以便正確的元數據映射能夠執行。NOALLOWUNUSEDCOLUMN致使提取到未使用的列上。

 

DISCARDFILE | NODISCARDFILE:

若是一個進程從GGSCI中的START命令開始,則生成一個丟棄文件

默認以下:

■文件命名建立它的過程當中,與一個。dsc擴展。若是進程是一個協調的副本,每一個線程生成一個文件。每一個文件的名字是附加了相應線程的線程ID。

■dirrpt子目錄中的文件建立的Oracle GoldenGate安裝目錄。

■最大文件大小是50 mb。

■在啓動時,若是丟棄文件存在,它是寫新數據以前清除。若是一個進程是從操做系統的命令行開始的,不要生成默認的丟棄文件。

 

DISCARDROLLOVER:使用丟棄drollover參數爲老化丟棄文件設置一個時間表。長時間或者連續運行,設置一個老化的時間表,防止丟棄文件被填滿而且使這個過程結束,它提供了一個能夠預見的檔案集

在你的存檔程序中加入。

 

REPORTROLLOVER: 使用REPORTROLLOVER參數強制報告文件按正常的時間進行,

而不是在一個過程開始的時候。對於長時間或連續的運行,設置一個老化進度控制活動報告文件的大小,並提供一個更可預測的集合能夠包含在您的存檔程序中的存檔。

 

查看抽取進程運行報告,以及隊列文件,正常,繼續後面的操做

 

若是有長事物,能夠設置一下參數:

BR:默認4小時。 BR BRINTERVAL 20M, BRDIR BR (20M表示檢查間隔是20分鐘)

場景:長事務還未結束,日誌文件被刪除;無需還原日誌文件,收到commit後,直接從BR目錄下的文件寫入trial

文件。

 

Create tablespace是能夠複製的,能夠支持複製到不一樣文件目錄;

樣例: DDLSUBST '/ora10g/oradata/src/' with '/ora11g/oradata/trg/'

5.七、增加pump進程

傳輸進程要配置的參數:

 

ggsci>add extract sa_dmp EXTTRAILSOURCE /ogg/ogginstall/dirdat/sa

ggsci>add extract sb_dmp EXTTRAILSOURCE /ogg/ogginstall/dirdat/sb

ggsci>ADD RMTTRAIL /ogg/ogginstall/dirdat/sa, EXTRACT sa_dmp

ggsci>ADD RMTTRAIL /ogg/ogginstall/dirdat/sb, EXTRACT sb_dmp

 

注:

EXTTRAILSOURCE:指定提取文件做爲數據源

ADD RMTTRAIL:在目標數據庫上建立一個trail

 

ggsci>edit param sa_dmp

 

參數:(注意IP 建議是rac vip

 

EXTRACT sa_dmp

PASSTHRU

DYNAMICRESOLUTION

RMTHOST 172.16.0.111, MGRPORT 7809

--RMTHOST 172.16.0.111, MGRPORT 7809, COMPRESS, compressthreshold 750

rmttrail /ogg/ogginstall/dirdat/sa

DISCARDFILE /ogg/ogginstall/dirdat/sa_ext.dsc, APPEND, MEGABYTES 100

DISCARDROLLOVER AT 6:00

REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS, RATE

TABLE HR.*;

 

ggsci>edit param sb_dmp

 

參數:

 

EXTRACT sb_dmp

PASSTHRU

DYNAMICRESOLUTION

RMTHOST 172.16.0.111, MGRPORT 7809

rmttrail /ogg/ogginstall/dirdat/sb

DISCARDFILE /ogg/ogginstall/dirdat/sb_ext.dsc, APPEND, MEGABYTES 100

DISCARDROLLOVER AT 6:00

REPORTROLLOVER AT 6:00

REPORTCOUNT EVERY 1 HOURS, RATE

TABLE HR.*;

 

ggsci>start sa_dmp

 

ggsci>start sb_dmp

 

 

 

6、目標庫配置

6.1 MGR進程配置

具體設置以下:

ggsci>edit param mgr

輸入:

 

port 7809

DYNAMICPORTLIST 7800-7810

AUTORESTART replicat *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 30

LAGREPORTHOURS 1

LAGREPORTMINUTES 10

LAGCRITICALMINUTES 10

PURGEOLDEXTRACTS /ogg/ogginstall/dirdat/*, USECHECKPOINTS, MINKEEPHOURS 12

userid ogg@ogg,password ogg

PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 24

PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 24

 

設置好後,重啓MGR

ggsci>start mgr

 

 

6.2 全局參數的設置

具體操做:

 

GGSCI (ogg1 as ogg@ogg2) 6> dblogin userid ogg@ogg2,password ogg

Successfully logged into database.

 

GGSCI (ogg1 as ogg@ogg2) 7> EDIT PARAMS ./GLOBALS

GGSCHEMA ogg

CHECKPOINTTABLE OGG.ggschkpt

 

配置GLOBAL文件後,須要經過推出並從新登陸ggsci,使得配置生效。

 

 

6.3 建立檢查點

或者直接GGSCI中的ADD CHECKPOINTTABLE命令。

 

GGSCI (ogg1) > dblogin userid ogg@ogg2,password ogg

Successfully logged into database.

 

GGSCI (ogg1 as ogg@ogg1) 4> ADD CHECKPOINTTABLE

 

No checkpoint table specified. Using GLOBALS specification (OGG.ggschkpt)

 

Successfully created checkpoint table OGG.ggschkpt。

 

Oracle GoldenGate檢查點表在目標庫配置完成。

 

 

6.四、初始化同步

6.4.1 生產端查詢相關信息

--生產端查詢表格所在表空間

select distinct tablespace_name from dba_tables where owner='HR';

select distinct tablespace_name from dba_tab_partitions where table_owner='HR';

 

--備份端查詢是否存在以上表空間,若沒有則建立,若是不想建立,在後面的impdp中須要配置remap_tablespace參數。

 

--生產端索引所在表空間

select distinct tablespace_name from dba_indexes where owner in ('HR');

 

select distinct tablespace_name from dba_ind_partitions where index_owner in ('HR');

 

--生產端用戶默認臨時表空間:

select distinct temporary_tablespace from dba_users

 

6.4.2 檢查undo表空間

注意:檢查操做可選。

SQL> select file_name,tablespace_name,bytes/1024/1024/1024,AUTOEXTENSIBLE,maxbytes/1024/1024/1024 from dba_data_files where tablespace_name='UNDOTBS1';

SQL> select file_name,tablespace_name,bytes/1024/1024/1024,AUTOEXTENSIBLE,maxbytes/1024/1024/1024 from dba_data_files where tablespace_name='UNDOTBS2';

 

SQL> show parameter undo

SQL> select tablespace_name,sum(bytes/1024/1024/1024) from dba_data_files group by tablespace_name;

SQL> select tablespace_name,sum(bytes/1024/1024) from dba_free_space group by tablespace_name;

 

若是空間不夠則添加:

SQL> ALTER tablespace UNDOTBS1 add datafile ' +MCDATA/ora11g/undotbs103.ora' size 3g autoextend on;

SQL> ALTER tablespace UNDOTBS2 add datafile ' +MCDATA/ora11g/undotbs03.ora' size 3g autoextend on;

 

6.4.3 生產端查詢SCN

SQL> select to_char(current_scn) from v$database;

 

TO_CHAR(CURRENT_SCN)

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

2159117

6.4.4 確認長事務狀況

     在使用DATAPUMP工具導出前,須要在生產庫確保GoldenGate抽取進程啓動的時間點前的事務已經結束。

     確認長事務狀況,可經過下述命令實現:

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

col event for a30

col OSUSER for a10

col USERNAME for a10

col PROGRAM for a35

SELECT s.sid,s.serial#,s.status,s.username,t.start_time,s.WAIT_TIME, s.osuser, s.sql_id, s.program,START_DATE FROM gv$session s,gv$transaction t WHERE s.INST_ID=t.INST_ID and s.saddr=t.ses_addr order by  t.start_time desc;

 

6.4.5 DATAPUMP方式初始化

檢查源庫對象下表的具體行數:

 

set serveroutput on size 1000000                               

set pages 50000

spool /tmp/hr_old.txt                                                

                                                               

DECLARE                                                         

v_cnt number;                                                  

BEGIN                                                          

FOR rec in (select 'HR.' || TABLE_NAME AS tanme from dba_tables where owner='HR' order by 1)                   

LOOP                                                           

execute immediate 'select count(*) from '||rec.tanme into v_cnt;

dbms_output.put_line(rpad(rec.tanme,40,'-')||v_cnt);           

           END LOOP;                                            

  END;                                                         

/

 

導出操做:

mkdir -p /ogg/expdp

chown -R oracle:oinstall /ogg/expdp

create or replace directory dir_dp as '/ogg/expdp';
Grant read,write on directory dir_dp to ogg;

nohup expdp ogg/ogg schemas=HR directory=dir_dp flashback_scn=2159117 dumpfile=HR.dmp logfile=HR.log &

 

目標端導入:

create or replace directory dir_dp as '/ogg/expdp';
Grant read,write on directory dir_dp to ogg;

 nohup impdp ogg/ogg schemas=HR  directory=dir_dp  dumpfile=HR.dmp logfile=HR.log &

(須要建立)

--導入前檢查目標端表空間的大小

select segment_type,count(*),sum(bytes/1024/1024) from dba_segments  where owner='HR' group by segment_type;

 

 

檢查目標庫對象下表的具體行數:

 

set serveroutput on size 1000000                               

set pages 50000

spool /tmp/hr_target.txt                                                

                                                               

DECLARE                                                        

v_cnt number;                                                   

BEGIN                                                          

FOR rec in (select 'HR.' || TABLE_NAME AS tanme from dba_tables where owner='HR' order by 1)                  

LOOP                                                           

execute immediate 'select count(*) from '||rec.tanme into v_cnt;

dbms_output.put_line(rpad(rec.tanme,40,'-')||v_cnt);           

           END LOOP;                                           

  END;                                                         

/

 

6.4.6備份庫相關操做

英文:

Constraints must be disabled in nonintegrated Replicat mode because Oracle GoldenGate replicates DML that results from the firing of a trigger or a cascade constraint. If the same trigger or constraint gets activated on the target table, it becomes redundant because of the replicated version, and the database returns an error.

約束必須禁用的非集成的複製模式由於Oracle GoldenGate複製DML從觸發和級聯約束。若是在目標表上激活相同的觸發器或約束,則因爲複製的版本而變得冗餘,數據庫返回錯誤。

備份庫禁用觸發器

select 'alter trigger '||owner||'.'||trigger_name||' disable;' from dba_triggers where owner='HR' and status='ENABLED';

 

官方文檔是:

 

exec dbms_ddl.set_trigger_firing_property('HR','UPDATE_JOB_HISTORY',false);

 

alter session set constraint=deferred;

 

對於表的主鍵列進行更新時,若是更新語句爲set x=x+n或者更新過程當中涉及到主鍵值的偏移,這種事務在源端能夠正常執行,由於更新操做是在同一個語句中完成的。而對於目標端來講,可能會把源端的一個更新語句轉換爲多個更新語句如;

alter session set constraint = deferred;

經過10046跟蹤能夠獲得goldengate應用進程在執行對pk的update先後會執行下面的兩個語句。執行更新操做前它會把constraint設置爲deferred狀態,更新完成以後,再設置成immediate狀態。

alter session set constraint = immediate;

 

Oracle 11gR2 11.2.0.2後來的版本,你可使用dboptions參數

與延遲級聯的檢查和執法deferrefconst選項

更新和級聯刪除約束,直到事務提交的複製。

■其餘Oracle版本,您必須禁用觸發器和完整性約束

改變手動忽略複製的數據庫用戶。

 

Oracle11.2.0.2以後中的存儲過程DBMS_XSTREAM_GG.ENABLE_TDUP_WORKSPACE能夠解決這個問題,使用這個存儲過程再也不須要對錶的主鍵狀態進行修改,也不須要在Goldengate的參數文件中使用handletpkupdate參數。

 

begin

    dbms_xstream_gg.enable_tdup_workspace();

    end;

   /

 

若是禁用:

begin

 dbms_xstream_gg.disable_tdup_workspace();

end;

/

 

 

 

移除JOB:

select job,log_user,schema_user,next_date,broken from dba_jobs;

exec dbms_job.remove(<that job id>);

exec dbms_ijob.remove(21);

exec dbms_job.broken(186,true)

 

select * from dba_scheduler_jobs where owner= 'HR';

禁用:

DBMS_SCHEDULER.DISABLE('job1, job2, job3, sys.jobclass1, sys.jobclass2');

或刪除:

DBMS_SCHEDULER.DROP_JOB (job_name => 'my_job1');

 

禁用外鍵:

SELECT 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name||';' from dba_constraints where constraint_type='R' and owner in ('HR');

 

 

 

6.五、建立replicat進程

參數說明來自OGG 12.1.2 (Reference for Oracle GoldenGate for Windows and UNIX)12c 215-216頁

參數說明:

 

參數

參數說明

TARGETDB

將數據源指定爲登陸信息的一部分。

HAVEUDTWITHNCHAR

在utf - 8中進行復制以鏈接到utf - 8,以防止數據丟失被處理的記錄是具備用戶定義的類型NCHAR / NVARCHAR2屬性。

BEGIN

指定複製處理的起點。SPECIALRUN時須要都是肯定的。

BULKLOAD

將數據直接加載到Oracle SQL * Loader實用程序的接口中。

END

指定複製處理的中止點。須要使用時SPECIALRUN。

GENLOADFILES

生成與數據庫負載兼容的運行和控制文件

實用程序。

REPLICAT

指定在線更改同步的複製組。

SPECIALRUN

用於一次性處理,不須要從運行中進行檢查點

來運行。

ALLOWNOOPUPDATES |

NOALLOWNOOPUPDATES

強制使用全部的不操做更新集合中的列和WHERE子句。

APPLYNOOPUPDATES |

NOAPPLYNOOPUPDATES

強制執行一個無操做的更新,在設置和WHERE子句中使用全部列。

ASSUMETARGETDEFS

假設源表和目標表具備相同的列結構。

INSERTALLRECORDS

爲記錄的每個變動操做插入一個新的記錄到目標表中。

INSERTDELETES | NOINSERTDELETES

將刪除插入。

INSERTMISSINGUPDATES |

NOINSERTMISSINGUPDATES

當目標行不存在時,將更新轉換爲插入。

INSERTUPDATES | NOINSERTUPDATES

將更新插入

TABLE | MAP

指定一個或多個源表和目標表之間的關係,並控制列映射和轉換。

MAPEXCLUDE

將源表排除在映射語句中提供的通配符規範中。

PRESERVETARGETTIMEZONE

覆蓋默認的還原會話時區。

REPLACEBADNUM

指定映射數列時遇到的無效數字數據的全局替代值。

SOURCECHARSET

控制源字符集是否將其轉換爲目標字符集。

SOURCETIMEZONE

指定用於將副本用做會話時區的源數據庫的時區。

SPACESTONULL | NOSPACESTONULL

控制只包含空格的目標列是否轉換爲空。

TABLE for Replicat

指定一個表或表,當一行知足給定的篩選條件時,將執行哪些事件操做。

UPDATEINSERTS | NOUPDATEINSERTS

轉換insert操做,以更新在參數文件中指定的全部映射語句的操做。

UPDATEDELETES | NOUPDATEDELETES

將刪除,更新。

UPDATEDELETES | NOUPDATEDELETES

將插入,更新。

USEDEDICATEDCOORDINATIONTHREAD

當副本處於協調模式時,指定用於屏障事務的專用線程。

EXTFILE

在包含數據的本地系統中定義提取文件的名稱

複製。用於一次性處理。

EXTTRAIL

定義包含要複製的數據的路徑。用於一次性處理。

HANDLECOLLISIONS | NOHANDLECOLLISIONS

處理重複和缺失的錯誤記錄。

HANDLETPKUPDATE

防止與複製臨時主鍵更新相關的約束錯誤。

OVERRIDEDUPS | NOOVERRIDEDUPS

在現有的目標記錄上覆蓋複製的插入記錄複製記錄發生錯誤。

RESTARTCOLLISIONS |

NORESTARTCOLLISIONS

控制是否在Oracle以後應用handlecolli劑邏輯

由於有衝突,金酸鹽已經減小了。

REPERROR

決定複製的響應數據庫錯誤。

REPFETCHEDCOLOPTIONS

肯定須要對來自源數據庫的fetch進行操做的副本如何響應。

SHOWSYNTAX

致使複製它的SQL語句報告文件。

SQLDUPERR

指定顯示重複記錄的數據庫錯誤編號。使用

OVERRIDEDUPS

WARNRATE

經過將相似的SQL語句安排到數組中,並以加速的速度應用它們,能夠提升複製處理的吞吐量。

BATCHSQL

經過將相似的SQL語句安排到數組中,並以加速的速度應用它們,能夠提升複製處理的吞吐量。

COORDSTATINTERVAL

協調器線程嚮應用程序線程發送請求的時間間隔。

COORDTIMER

協調器線程等待應用程序啓動的時間量。

DEFERAPPLYINTERVAL

指定在將複製操做應用到目標數據庫以前等待複製的時間長度。

GROUPTRANSOPS

控制將被分組到複製事務中的記錄的數量。

INSERTAPPEND |

NOINSERTAPPEND

控制Replicat是否使用Oracle  APPEND提示INSERT語句。

MAXDISCARDRECS

限制報告的丟棄記錄的數量丟棄文件。

MAXSQLSTATEMENTS

控制準備的SQL語句的數量能夠被Replicat使用。

MAXTRANSOPS

將大型源事務劃分爲較小的事務目標系統。

NUMFILES

控制內存的初始分配用於存儲關於表的信息

由GoldenGate處理

TRANSACTIONTIMEOUT

指定一個時間間隔,以後複製將會提交它的開放目標事務並回滾任何它包含的不完整的源事務,保存當整個源事務就緒時,它們就會出現

被應用。

 

 

具體參數以下:

ggsci>dblogin userid ogg@ogg2,password ogg

ggsci>add replicat sa_rep exttrail /ogg/ogginstall/dirdat/sa

ggsci>add replicat sb_rep exttrail /ogg/ogginstall/dirdat/sb

ggsci> edit param sa_rep

replicat sa_rep

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1" )

--SETENV (ORACLE_SID = "ogg2")

userid ogg@ogg,password ogg

SQLEXEC "ALTER SESSION SET CONSTRAINTS=DEFERRED"

--HANDLECOLLISIONS

ASSUMETARGETDEFS

ALLOWNOOPUPDATES

NUMFILES 3000

REPERROR DEFAULT, DISCARD

DISCARDFILE /ogg/ogginstall/dirdat/sa_rep.dsc, append megabytes 50

BATCHSQL OPSPERBATCH 5000

GROUPTRANSOPS 100

MAXTRANSOPS 1000

CHECKSEQUENCEVALUE

DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

GETTRUNCATES --12.2ogg 經測試,默認支持truncate 表

--NOCOMPRESSUPDATES --DB2平臺

--map user.table target user.table, filter (@GETENV("transaction","csn") > number);

--MAP NQ_RUN.EXECINDEXSHOWJOUR, TARGET NQ_RUN.EXECINDEXSHOWJOUR, KEYCOLS (INIT_DATE, SERIAL_NO); --虛擬主鍵應用方式。

--MAPEXCLUDE USER.TABLE;

MAP HR.*, TARGET HR.*;

 

ggsci> edit param sb_rep

replicat sb_rep

setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")

SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1" )

--SETENV (ORACLE_SID = "ogg2")

userid ogg@ogg,password ogg

SQLEXEC "ALTER SESSION SET CONSTRAINTS=DEFERRED"

--HANDLECOLLISIONS

ASSUMETARGETDEFS

ALLOWNOOPUPDATES

NUMFILES 3000

REPERROR DEFAULT, DISCARD

DISCARDFILE /ogg/ogginstall/dirdat/sb_rep.dsc, append megabytes 50m

BATCHSQL OPSPERBATCH 5000

GROUPTRANSOPS 100

MAXTRANSOPS 1000

CHECKSEQUENCEVALUE

DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

GETTRUNCATES

--NOCOMPRESSUPDATES --DB2平臺

--map NQ_RUN_HIS.HIS_EXECINDEXSHOWJOUR, target NQ_RUN_HIS.HIS_EXECINDEXSHOWJOUR, filter (@GETENV("transaction","csn") > 5144447346);

--MAP NQ_RUN.EXECINDEXSHOWJOUR, TARGET NQ_RUN.EXECINDEXSHOWJOUR, KEYCOLS (INIT_DATE, SERIAL_NO);

--MAPEXCLUDE USER.TABLE;

MAP HR.*, TARGET HR.*;

 

 

注:

oracle 11204不支持replicat進程中的DBOPTIONS DEFERREFCONST參數,若是要使這個參數正常生效必須在數據庫中配置ENABLE_GOLDENGATE_REPLICATION = TRUE。

即:ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

 

注意:沒法使用HANDLECOLLISIONS(該參數依賴於表的主鍵進行邏輯判斷,無主鍵表使用該參數會致使重複記錄出現)。

 

7、在初始化完成後啓動還原程序

 

ggsci>start sa_rep atcsn 2159117

ggsci>start sb_rep atcsn 2159117

 

 

8、測試

 

請根據本身的狀況進行相應的DDL,DML等測試。

例如:

create table hr.t2 as select object_id from dba_objects;

commit;

 

 

select count(*) from hr.t2;

 

create table hr.t3(id int);

 

begin

for i in 90000..100000

loop

insert into hr.t3 values(i);

commit;

end loop;

end;

/

 

select count(*) from hr.t3;

相關文章
相關標籤/搜索