Goldengate 实现Oracle for Oracle 单向DDL操作同步
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,在http://lqding.blog.51cto.com/9123978/1695162 文章中我们实现了表的DML操作同步。我们做如下测试在源端执行表的truncateSQL> truncate
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
开源数据库设计工具h5
高考信息采集数据库
一般为DNS服务器配置静态IP
网络安全审查属于国家安全审查的
英雄联盟大区服务器分别在哪
私服服务器
河南存储服务器散热器定制云空间
浏览器插件软件开发
广铁集团网络安全工作
宜兴信息软件开发销售电话
平陆县公安局网络安全联系电话
u8数据库实例用户怎么删除
存储过程 数据库中
浪潮服务器bmc怎么安装系统
服务器竖立显卡
寒战下载软件开发
关于网络安全的英语通知
网络服务器内存大吗
数据库组合系统
信息系统软件开发造价审计
大学生自学网络技术有用吗
云服务器安全软件
天津一对一软件开发
好的数据库电脑
中学生网络安全教育图集
mt4嘉盛模拟服务器
镇安网络安全
人族无敌用什么软件开发的
光纤可以接入服务器吗
电厂网络安全防社工