Goldengate 實現Oracle for Oracle 單向DDL操作同步

來源:互聯網
上載者:User

標籤:goldengate ddl 支援

在http://lqding.blog.51cto.com/9123978/1695162 文章中我們實現了表的DML操作同步。

我們做如下測試

在源端執行表的truncate

SQL> truncate table tcustmer;Table truncated.

在目的端,查看錶資料

SQL> select count(*) from tcustmer;  COUNT(*)---------- 2

資料並沒有同步

我們如何讓Goldengate實現DDL操作的同步呢?

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/47/wKiom1X5El_gBw_RAAHAw9lr7eI581.jpg" title="ogg07.PNG" alt="wKiom1X5El_gBw_RAAHAw9lr7eI581.jpg" />


要想支援DDL同步,需要在來源資料庫上做些設定,使得可以跟蹤DDL操作。包括如下內容Trigger、marker和history table,一個使用者角色和其他各式各樣的資料庫物件。


  1. 首先要配置GLOBALS參數,告訴gg使用那個schema來儲存DDL操作。

GGSCI (localhost.localdomain) 19> edit params ./GLOBALS-- GoldenGate GLOBALS parameter file--GGSCHEMA GGDDL


2. 使用sqlplus 建立ggddl使用者,並安裝ddl支援

SQL> conn / as sysdbaConnected.SQL> create user ggddl identified by ggddl ;User created.SQL> grant connect,resource to ggddl;Grant succeeded.


關閉資料資源回收筒功能

SQL> ALTER SYSTEM SET RECYCLEBIN = OFF scope=spfile;System altered.SQL> startup forceORACLE instance started.Total System Global Area  835104768 bytesFixed Size    2217952 bytesVariable Size  574621728 bytesDatabase Buffers  255852544 bytesRedo Buffers    2412544 bytesDatabase mounted.Database opened.

運行marker_setup.sql (ogg的安裝目錄,進入sqlplus)

[[email protected] ogg]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 11 19:58:40 2015Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> @marker_setup.sqlMarker setup scriptYou will be prompted for the name of a schema for the Oracle GoldenGate database objects.NOTE: The schema must be created prior to running this script.NOTE: Stop all DDL replication before starting this installation.Enter Oracle GoldenGate schema name:GGDDLMarker setup table script complete, running verification script...Please enter the name of a schema for the GoldenGate database objects:Setting schema name to GGDDLMARKER TABLE-------------------------------OKMARKER SEQUENCE-------------------------------OKScript complete.

在彈出對話方塊輸入GGSCHEMA的名稱


運行ddl_setup.sql

SQL> @ddl_setup.sql


運行role_setup.sql

SQL> @role_setup.sqlGGS Role setup scriptThis script will drop and recreate the role GGS_GGSUSER_ROLETo use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)You will be prompted for the name of a schema for the GoldenGate database objects.NOTE: The schema must be created prior to running this script.NOTE: Stop all DDL replication before starting this installation.Enter GoldenGate schema name:ggddlWrote file role_setup_set.txtPL/SQL procedure successfully completed.Role setup script completeGrant this role to each user assigned to the Extract, GGSCI, and Manager processes, by using the following SQL command:GRANT GGS_GGSUSER_ROLE TO <loggedUser>where <loggedUser> is the user assigned to the GoldenGate processes.

建立好角色後,並不是要把這個角色賦予ggddl使用者,而是要將該角色賦予Extract,Replicat等使用的schema 。

我們之前配置的是system使用者

SQL> GRANT GGS_GGSUSER_ROLE TO system;Grant succeeded.


啟用ddl,其實就是使trigger enable

SQL> @ddl_enable.sqlTrigger altered.


關閉Manager,Extract,Replicat

源端

GGSCI (localhost.localdomain) 1> stop Extract eorakkGGSCI (localhost.localdomain) 5> stop mgr !

目的端

GGSCI (localhost.localdomain) 1> stop replicat rorakkSending STOP request to REPLICAT RORAKK ...Request processed.GGSCI (localhost.localdomain) 2> stop manager


編輯Extract參數

GGSCI (localhost.localdomain) 5> edit params eorakk---- Change Capture parameter file to capture-- TCUSTMER and TCUSTORD Changes--EXTRACT EORAKKUSERID system, PASSWORD oracleRMTHOST 192.168.199.104, MGRPORT 7809EXTTRAIL ./dirdat/KKDDL INCLUDE ALLTABLE SCOTT.TCUSTMER;TABLE SCOTT.TCUSTORD;

在原有基礎上添加一行DDL INCLUDE ALL


編輯Replicat參數

GGSCI (localhost.localdomain) 4>  edit params rorakk---- Change Delivery parameter file to apply-- TCUSTMER and TCUSTORD Changes--REPLICAT RORAKKUSERID system, PASSWORD oracleHANDLECOLLISIONSASSUMETARGETDEFSDISCARDFILE ./dirrpt/RORAKK.DSC, PURGEDDL INCLUDE MAPPEDMAP scott.tcustmer, TARGET scott.tcustmer;MAP scott.tcustord, TARGET scott.tcustord;

在原有基礎上添加一行DDL INCLUDE MAPPED


啟動Manager、Extract、Replicat

源端

GGSCI (localhost.localdomain) 6> start managerManager started.GGSCI (localhost.localdomain) 7> start extract eorakkSending START request to MANAGER ...EXTRACT EORAKK starting


目的端

GGSCI (localhost.localdomain) 5> start mgrManager started.GGSCI (localhost.localdomain) 16> start replicat rorakkSending START request to MANAGER ...REPLICAT RORAKK starting


驗證資料

源端

SQL> truncate table tcustmer;Table truncated.SQL> desc tcustmer  Name   Null?    Type ----------------------------------------- -------- ---------------------------- CUST_CODE   NOT NULL VARCHAR2(4) NAME    VARCHAR2(30) CITY    VARCHAR2(20) STATE    CHAR(2)SQL> alter table tcustmer add state_desc varchar2(30);Table altered.

目的端

SQL> select * from tcustmer;no rows selectedSQL> desc tcustmer Name   Null?    Type ----------------------------------------- -------- ---------------------------- CUST_CODE   NOT NULL VARCHAR2(4) NAME    VARCHAR2(30) CITY    VARCHAR2(20) STATE    CHAR(2) STATE_DESC    VARCHAR2(30)


資料已同步。



本文出自 “叮咚” 部落格,請務必保留此出處http://lqding.blog.51cto.com/9123978/1695389

Goldengate 實現Oracle for Oracle 單向DDL操作同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.