Goldengate 实现Oracle for Oracle 单向DDL操作同步
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,在http://lqding.blog.51cto.com/9123978/1695162 文章中我们实现了表的DML操作同步。我们做如下测试在源端执行表的truncateSQL> truncate
千家信息网最后更新 2026年11月04日Goldengate 实现Oracle for Oracle 单向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操作的同步呢?
要想支持DDL同步,需要在源数据库上做些设置,使得可以跟踪DDL操作。包括如下内容Trigger、marker和history table,一个用户角色和其他各式各样的数据库对象。
首先要配置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)
[oracle@localhost 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 TOwhere 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)
数据已同步。
数据
同步
用户
目的
角色
参数
运行
一行
基础
数据库
支持
配置
各式各样
内容
功能
名称
回收站
对话框
对象
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国互联网科技股
互联网和科技创新
互联网巨头反垄断金融科技
互联网科技未来
没上市的科技互联网公司
互联网金融公司科技
互联网 科技创业
安徽鑫晟辉互联网科技
兼蜜互联网科技
无锡溥仪互联网科技有限公司
湖南洣水互联网科技有限公司扣款
佛山市翊博互联网络科技有限公司
恒生互联网科技业指数调整周期
黑科技 体验场景 互联网大会
每天都有哪些好的互联网科技
半导体行业属于互联网高科技类吗
银川新华互联网科技学校原画
互联网科技职业技能培训学校
广西泛欧互联网科技有限公司
10位科技互联网大佬
咖啡豆
互联网与科技发展
深圳科技互联网
人人互联网科技是培训
科技赋能互联网健康
小米互联网科技园设置
中国航天科技大学国际工业互联网
搜狐科技互联网
无锡工业互联网科技有限公司
有人说阿里系是互联网科技企业