iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Goldengate 实现Oracle for Oracle 单向DDL操作同步
  • 866
分享到

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

2024-04-02 19:04:59 866人浏览 安东尼
摘要

在Http://lqding.blog.51cto.com/9123978/1695162 文章中我们实现了表的DML操作同步。我们做如下测试在源端执行表的truncatesql> 

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 <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.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)


数据已同步。



您可能感兴趣的文档:

--结束END--

本文标题: Goldengate 实现Oracle for Oracle 单向DDL操作同步

本文链接: https://www.lsjlt.com/news/44034.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Goldengate 实现Oracle for Oracle 单向数据同步
    实验环境数据源端:  host1 ip 192.168.199.163  数据目标端: host2 ip 192.168.199.104两台机器都安装 http://lqdin...
    99+
    2024-04-02
  • oracle goldengate中文表名同步怎么实现
    Oracle GoldenGate可以通过使用双字节字符集(Double Byte Character Set,DBCS)或Unic...
    99+
    2024-04-09
    oracle
  • 如何理解ogg12 mysql to oracle单向同步
    本篇文章为大家展示了如何理解ogg12 mysql to oracle单向同步,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 环境:192.168.91.137 ...
    99+
    2024-04-02
  • PHP接口重定向:如何实现同步操作?
    在Web开发中,接口重定向是一个常见的问题。当我们需要在不同页面之间传递数据时,接口重定向是一个非常好的解决方案。然而,在实际操作中,如果我们需要在接口重定向后进行同步操作,那么就需要一些额外的技巧。在本篇文章中,我们将会讨论如何实现PH...
    99+
    2023-07-03
    接口 重定向 同步
  • MySQL中怎么实现单向同步
    本篇文章为大家展示了MySQL中怎么实现单向同步,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实例主机:dbasky=192.168.1.120dbaskyback...
    99+
    2024-04-02
  • MYSQL中怎么实现单双向同步
    MYSQL中怎么实现单双向同步,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 Sever info: Master:192.168.1...
    99+
    2024-04-02
  • oracle数据如何通过goldengate实时同步到kafka消息队列中
    这篇文章主要介绍oracle数据如何通过goldengate实时同步到kafka消息队列中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!环境介绍组件版本组件版本描述源端oracleo...
    99+
    2024-04-02
  • 如何使用 Python 实现同步对象的重定向操作?
    同步对象是多线程编程中的重要概念,它可以帮助我们在多个线程之间同步数据,避免出现竞争条件。在 Python 中,常用的同步对象包括 Lock、Semaphore、Condition 等。本文将介绍如何使用 Python 实现同步对象的重定...
    99+
    2023-07-24
    重定向 对象 同步
  • MySQL 搭建主从同步实现操作
    目录一、MySQL 8.0 主从同步二、MySQL主从搭建2.1 Master 上的操作2.2 Slave 上的操作一、MySQL 8.0 主从同步 主从同步的流程(原理): mas...
    99+
    2024-04-02
  • 如何在 Spring 中实现同步操作?
    Spring 是一个非常流行的开源框架,它提供了许多功能来帮助开发人员构建优秀的应用程序。其中一个非常重要的功能是同步操作。在本文中,我们将探讨如何在 Spring 中实现同步操作。 一、Spring 中的同步操作 在 Spring 中,同...
    99+
    2023-09-22
    面试 同步 spring
  • oracle中怎么实现select操作
    这篇文章给大家介绍oracle中怎么实现select操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 查看表结构 DESC emp;  查询所有列&...
    99+
    2024-04-02
  • 接口重定向和同步操作:PHP的最佳实践
    在PHP开发中,接口重定向和同步操作是非常常见的场景。接口重定向可以将请求重定向到其他页面或接口,而同步操作则可以保证程序在执行过程中的数据同步性。本文将介绍如何在PHP中实现接口重定向和同步操作的最佳实践。 一、接口重定向 接口重定向是...
    99+
    2023-07-03
    接口 重定向 同步
  • oracle数据实时同步至postgresql怎么实现
    在Oracle数据库与PostgreSQL数据库之间进行实时同步可以通过以下几种方式实现: 使用ETL工具:ETL(Extrac...
    99+
    2024-04-17
    postgresql oracle
  • MySQL如何搭建主从同步实现操作
    小编给大家分享一下MySQL如何搭建主从同步实现操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、MySQL 8.0 主从同步主从同步的流程(原理):mast...
    99+
    2023-06-29
  • 通过LogMiner实现Oracle数据库同步迁移
    目录通过LogMiner实现Oracle数据同步迁移一、实现过程1.创建目录2.配置LogMiner3.开启日志追加模式4.重启数据库5.创建数据同步用户6.创建数据字典7.加入需要...
    99+
    2024-04-02
  • 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)
    系列文章目录 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGa...
    99+
    2023-10-03
    GoldenGate异构 GoldenGate部署 GoldenGate数据同步 ogg12部署 hadoop
  • Qt之简单的异步操作实现方法
    目录Qt简单的异步操作Qt异步变同步问题解决的问题如何实现代码块解析Qt简单的异步操作 在实际应用中,经常会遇到一些耗时操作,导致了主线程的阻塞,这时候可以使用异步操作来避免阻塞。 ...
    99+
    2022-11-13
    Qt异步操作 Qt异步 Qt实现异步操作
  • PHP 同步操作在 Linux 系统中如何实现?
    在 PHP 中,同步操作是指多个进程或线程访问共享资源时,为了避免资源竞争而采取的一种手段。在 Linux 系统中,我们可以使用多种方式来实现 PHP 的同步操作,其中最常用的方式包括信号量、互斥锁和条件变量。 一、信号量 信号量是一种计...
    99+
    2023-10-29
    同步 linux spring
  • Oracle 11G如何实现表空间操作
    这篇文章主要为大家展示了“Oracle 11G如何实现表空间操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle 11G如何实现表空间操作”这篇文章吧...
    99+
    2024-04-02
  • oracle队列(AQ)---实现orale到mysql的数据同步
    高级队列(Advanced Queue,简称AQ):  高级队列是oracle的一种高级应用,它主要是表和触发器之间的组合而成的一种应用。其主要作用是在各应用系统中进行消息传递。  ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作