千家信息网

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

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,在http://lqding.blog.51cto.com/9123978/1695162 文章中我们实现了表的DML操作同步。我们做如下测试在源端执行表的truncateSQL> truncate
千家信息网最后更新 2025年11月12日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,一个用户角色和其他各式各样的数据库对象。


  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)

[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 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.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安全错误 数据库的锁怎样保障安全 辽宁综合软件开发 服务器电源需要跑程序吗 列举相关软件开发过程模型 网络安全行政警告处罚能解除么 openwrt 打印服务器 联想服务器进入管理口 网络安全的警告牌怎么画 app显示服务器开小差怎么回事 波分北京软件开发部 软件开发行业中有什么职业 重庆什么是软件开发代理品牌 数据库脱机联机算重启吗 uem5000系统服务器简介 细菌毒力基因数据库 电脑服务器存储空间不足怎么办 网络安全法日志保存 怎么把代码传到服务器 固原展厅互动软件开发公司 如何快速清理db2数据库表 数据库技术发展趋势分析 江苏电商软件开发哪家专业 openwrt 打印服务器 网络技术应用课本第25页 网络安全文明上网小品 吴江手机应用软件开发 什么网络安全模型 青海专业企业管理软件开发费用 开票服务器管理 永宁县软件开发技术找哪家 cs服务器命令行参数
0