Goldengate 实现Oracle for Oracle 单向DDL操作同步
admin
2023-05-07 21:41:59
0

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

我们做如下测试

在源端执行表的truncate

SQL> truncate table tcustmer;
Table truncated.

在目的端,查看表数据

SQL> select count(*) from tcustmer;

  COUNT(*)
----------
	 2

数据并没有同步

我们如何让Goldengate实现DDL操作的同步呢?

Goldengate 实现Oracle for Oracle 单向DDL操作同步


要想支持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 sysdba
Connected.
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 force
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2217952 bytes
Variable Size		  574621728 bytes
Database Buffers	  255852544 bytes
Redo Buffers		    2412544 bytes
Database mounted.
Database opened.

运行marker_setup.sql (ogg的安装目录,进入sqlplus)

[oracle@localhost ogg]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 11 19:58:40 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> @marker_setup.sql

Marker setup script

You 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:GGDDL


Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to GGDDL

MARKER TABLE
-------------------------------
OK

MARKER SEQUENCE
-------------------------------
OK

Script complete.

在弹出对话框输入GGSCHEMA的名称


运行ddl_setup.sql

SQL> @ddl_setup.sql


运行role_setup.sql

SQL> @role_setup.sql

GGS Role setup script

This script will drop and recreate the role GGS_GGSUSER_ROLE
To 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:ggddl
Wrote file role_setup_set.txt

PL/SQL procedure successfully completed.


Role setup script complete

Grant this role to each user assigned to the Extract, GGSCI, and Manager processes, by using the following SQL command:

GRANT GGS_GGSUSER_ROLE TO 

where  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.sql

Trigger altered.


关闭Manager,Extract,Replicat

源端

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

目的端

GGSCI (localhost.localdomain) 1> stop replicat rorakk
Sending 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 EORAKK
USERID system, PASSWORD oracle
RMTHOST 192.168.199.104, MGRPORT 7809
EXTTRAIL ./dirdat/KK
DDL INCLUDE ALL
TABLE 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 RORAKK
USERID system, PASSWORD oracle
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORAKK.DSC, PURGE
DDL INCLUDE MAPPED
MAP scott.tcustmer, TARGET scott.tcustmer;
MAP scott.tcustord, TARGET scott.tcustord;

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


启动Manager、Extract、Replicat

源端

GGSCI (localhost.localdomain) 6> start manager

Manager started.


GGSCI (localhost.localdomain) 7> start extract eorakk

Sending START request to MANAGER ...
EXTRACT EORAKK starting


目的端

GGSCI (localhost.localdomain) 5> start mgr

Manager started.

GGSCI (localhost.localdomain) 16> start replicat rorakk

Sending 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 selected

SQL> desc tcustmer
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 CUST_CODE				   NOT NULL VARCHAR2(4)
 NAME						    VARCHAR2(30)
 CITY						    VARCHAR2(20)
 STATE						    CHAR(2)
 STATE_DESC					    VARCHAR2(30)


数据已同步。



上一篇:TNS-12555 TNS-12560错误

下一篇:DATAGUARD安装

相关内容

热门资讯

Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...
5G+165Hz!联想新品官宣... 近两年来,小屏平板一直是比较有趣的一个品类。 不同于大平板注重效率、手机追求万能的特点,拯救者Y70...
原创 马... 马斯克又出来了。这次说2036年钱就没用了。 理由是人工智能加机器人,东西多到你用不完,还拿钱干嘛...
美的集团:我国智能家居互联互通... IT之家 7 月 30 日消息,美的集团今日发布公告,7 月 21 日至 23 日,智能家居互联互通...
华为新款MatePad Pro... 【CNMO科技消息】7月30日,@华为终端 官宣全新旗舰平板华为MatePad Pro。 新款华为...
从实验室到实景验证:6G光子太... 全息通信是第六代移动通信(6G)的典型应用场景之一,旨在通过融合无线传输与全息三维成像技术,实现超大...
从“能对话”到“能干活”——人... 【经济界面】 光明日报记者 刘坤 李晓东 周洪双 人工智能(AI)眼镜化身为个人“助理”,实时进行...
【全新发布】UminiP Pr... (来源:洲明科技)
日本通过“H3火箭8号”发射失... △H3火箭(资料图) 日本文部科学省30日召开关于去年“H3火箭8号”发射失败的会议。会议通过的最终...
互联网巨头抢滩健康硬件,上游芯... 封面新闻记者 付文超 当下,互联网巨头对健康硬件的押注,正在成为产业现实,加速拉动整个产业链步入新一...