ogg实现oracle到sql server 2005的同步

一、源端(oracle)配置
1.创建同步测试表
create table gg_user.t01(name varchar(20) primary key);
create table gg_user.t02(id int primary key,name varchar(20));
2.添加定义文件(是异构之间的传输,需要转换字段类型等处理需用到defgen工具生成定义文件)
GGSCI (kermart) 4> edit params defgen
defsfile D:\ggate\dirdef\t01.def
userid gg_user,password oracle
table gg_user.t01;
table gg_user.t02;
注意:如果有多个表,需要每个都列出来,如果这个用户所有的表都需要同步,直接就table gg_user.*;
如果没有列出来,复制进程启动会报如下错误:
ERROR  OGG-00423  Oracle GoldenGate Delivery for SQL Server, RPL01.prm:  Could not find definition for GG_USER.T02.
ERROR  OGG-01668  Oracle GoldenGate Delivery for SQL Server, RPL01.prm:  PROCESS ABENDING.
生成定义文件
D:\ggate>defgen.exe paramfile D:\ggate\dirprm\defgen.prm

***********************************************************************
Oracle GoldenGate Table Definition Generator for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Windows x64 (optimized), Oracle 11g on Apr 23 2012 05:48:41

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

Starting at 2014-04-24 16:43:37
***********************************************************************

Operating System Version:
Microsoft Windows 7 , on x64
Version 6.1 (Build 7601: Service Pack 1)

Process id: 6828

***********************************************************************
**  Running with the following parameters  **
***********************************************************************
defsfile D:\ggate\dirdef\t01.def
userid gg_user,password ******
table gg_user.t;
Retrieving definition for GG_USER.T

Definitions generated for 1 table in D:\ggate\dirdef\t01.def
将t01.def拷贝到sql server ogg下的dirdef目录下。
3.添加补充日志
GGSCI (kermart) 7> dblogin userid gg_user,password oracle
GGSCI (kermart) 8> add trandata gg_user.t01
GGSCI (kermart) 8> add trandata gg_user.t02

4.添加抽取进程
GGSCI (kermart) 5> edit params ext01
extract ext01
userid gg_user,password oracle
exttrail D:\ggate\dirdat\et
DYNAMICRESOLUTION
GETTRUNCATES
TABLE gg_user.t01;
TABLE gg_user.t02;

GGSCI (kermart) 1> add extract ext01,tranlog,begin now
GGSCI (kermart) 2> add exttrail D:\ggate\dirdat\et,extract ext01

5.添加传递进程
GGSCI (kermart) 6> edit params pump01
extract pump01
userid gg_user,password oracle
rmthost 127.0.0.1,mgrport 7810
rmttrail E:\ggate\dirdat\rt
PASSTHRU
TABLE gg_user.t01;
TABLE gg_user.t02;

GGSCI (kermart) 5> add extract pump01,exttrailsource D:\ggate\dirdat\et,begin now
GGSCI (kermart) 6> add rmttrail E:\ggate\dirdat\rt,extract pump01

二、目标端(sql server)配置
1.配置ODBC数据源
控制面板-管理工具-数据源(ODBC),添加系统DNS,取名为test01,注意择驱动程序类型为SQL Server Native Client 10.0
2.创建测试表(结构跟源端保持一致)
create table hjj.t01(name varchar(20) primary key);
create table hjj.t02(id int primary key,name varchar(20));
3.添加checkpointtable
GGSCI (kermart) 10> edit param ./globals
checkpointtable hjj.ckp
GGSCI (kermart) 8> dblogin sourcedb t01 userid sa password sa
GGSCI (kermart) 9> add checkpointtable hjj.ckp
3.添加复制进程
GGSCI (kermart) 58> edit param rpl01
replicat rpl01
sourcedefs E:\ggate\dirdef\t01.def
targetdb t01 userid sa, password sa
reperror default,discard
discardfile E:\ggate\dirrpt\rpl.dsc append
gettruncates
MAP gg_user.t01, TARGET hjj.t01;
MAP gg_user.t02, TARGET hjj.t02;

GGSCI (kermart) 12> add replicat rpl01,exttrail E:\ggate\dirdat\rt,begin now,checkpointtable hjj.ckp

三、测试
1.启动进程
源端:
start ext01
start pump01
GGSCI (kermart) 9> info all

Program  Status  Group  Lag at Chkpt  Time Since Chkpt

MANAGER  RUNNING
EXTRACT  STOPPED  EXDP  00:00:00  16:40:29
EXTRACT  STOPPED  EXORA  00:00:00  16:40:32
EXTRACT  RUNNING  EXT01  00:00:00  00:00:09
EXTRACT  STOPPED  EXT1  00:00:00  162:50:03
EXTRACT  RUNNING  PUMP01  00:00:00  00:00:05
EXTRACT  STOPPED  PUMP1  00:00:00  162:49:59
REPLICAT  STOPPED  MSREP  00:00:00  187:22:15
REPLICAT  STOPPED  REP1  00:00:00  163:47:29
目标端:
start rpl01
GGSCI (kermart) 59> info all

Program  Status  Group  Lag at Chkpt  Time Since Chkpt

MANAGER  RUNNING
EXTRACT  STOPPED  EXT1  00:00:00  163:48:28
EXTRACT  STOPPED  MSEXT  00:00:00  187:23:13
EXTRACT  STOPPED  PUMP1  00:00:00  163:48:25
REPLICAT  ABENDED  ORAREP  00:00:00  16:57:48
REPLICAT  STOPPED  REP1  00:00:00  162:49:46
REPLICAT  RUNNING  RPL01  00:00:00  00:00:04
2.在源端(oracle)进行DML操作
SQL> insert into t01 select ‘lyn‘||rownum from dual connect by level<=100;

已创建100行。

SQL> commit;

提交完成。

SQL> insert into t02 select rownum,‘moon‘||rownum from dual connect by level<=100;

已创建100行。

SQL> commit;

提交完成。

SQL> select count(*) from t01;

COUNT(*)
----------
100

SQL> select count(*) from t02;

COUNT(*)
----------
100
3.在目标端(sql server)查看数据同步复制情况
C:\>sqlcmd -S kermart -U sa -P sa -d TEST
1> select count(*) from hjj.t01;
2> go

-----------
100

(1 行受影响)
1> select count(*) from hjj.t02
2> go

-----------
100

(1 行受影响)

时间: 2024-08-04 21:33:27

ogg实现oracle到sql server 2005的同步的相关文章

ORACLE和SQL SERVER的数据同步常用方法

1. 自己编程,或者第三方工具2. 在sqlserver中,使用linkedserver,访问oracle,然后编写job进行数据同步3. 在oracle中,使用透明网关,访问sqlserver,进行数据同步4. sqlserver触发器和存储过程定时排程刷新机制5. 专门的ETL工具, SSIS/OWB/Data Stage/Power Center...

使用C#实现sql server 2005 和Oracle 数据同步

1.背景: 公司的一个项目进行服务扩展,添加了短信服务平台,实现平台按照预定义的规则给用户主动发送短信和用户点播,两种方式.短信平台需能够接入三网(移动.联通.电信).目前只接入了移动MAS机.用户点播时发送的短信通过MAS机,发送的内容最后保存在sql serer 2005 数据库的表T 中,然后需要根据用户发送的点播代码给用户返回对应的信息. 用户的信息都在业务系统中,业务系统是Oracle 的数据库.两者都处于同一个局域网之内.由于短信平台是一个产品我们无法进行操作,和项目经理商议后决定将

数据仓库应用(三): SQL Server 2005的数据仓库应用--联机分析OLAP

关联文章: 数据仓库应用(一):数据仓库模型设计 数据仓库应用(二):数据抽取.转换.加载(ETL) 前言:有关数据仓库的研究,并不仅仅停留在理论上.目前,几种主要的RDBMS产品,如Oracle.SQL Server.Informix和 Sybase等,都可以为用户提供数据仓库项目的开发工具:而一些通用的应用程序开发平台,如Delphi等,也能对数据仓库项目的开发提供有效的支持.我们将使用Microsoft SQL Server 2005提供的数据仓库工具SSAS对数据仓库中的数据进行OLAP

win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

由于工作需要,今天要在电脑上安装SQL Server 2005.以往的项目都是使用Oracle,MS的数据库还真的没怎么用过,安装Oracle已经轻车熟路,但装SQL Server好像还有点小麻烦,所以记录下来,以留备用. ------------------------------------------------------------------------------------------------- 操作系统:Microsoft Windows 7 旗舰版(32位) 数据库版本:

如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中

如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中 Oracle的反向工程就是指将Oracle中的数据库,当然也可以是SQL Server中的数据库导入到PD中,这个需要建立一个数据库的链接,然后进行逆向工程的操作. 第一步:建立数据库的链接: PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中.[Oracle 10G版] PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中.

Using ROW_NUMBER() to paginate your data with SQL Server 2005 and ASP.NET

Jason Witty, 20 Nov 2005 4.67 (23 votes)Rate: vote 1vote 2vote 3vote 4vote 5With the release of SQL Server 2005, Microsoft introduces the long overdue ROW_NUMBER() function. In this article, we will walk through a C# implementation of pagination usin

Sql Server 2005 统计信息用途

1, 什么是统计信息 以下是官方的对统计信息的描述: 按照默认设置,如果表中的某列没有索引,则SQL Server会自动为该列创建统计.然后,查询优化器评估该列中数据分布范围的统计信息,以选择一个更为有效的查询处理方案.分辨自动创建的统计很简单,在SQL Server 7.0和SQL Server 2000中,自动创建的统计的前缀为_WA_Sys. 个人感想: 以前对_WA_Sys开头的统计信息一直不知道有什么用,在学习了oracle时的CBO和三个算法(嵌套循环,合并连接和hash连接)才发现

回首经典的SQL Server 2005

原创文章转载请注明出处:@协思, http://amwicfai.cnblogs.com SQL Server是我使用时间最长的数据库,算起来已经有10年了.上世纪90年代,微软在软件开发的所有领域高歌猛进,形成了操作系统.办公软件.企业开发.游戏制作.浏览器各领域的全线垄断.那曾经是微软发展的黄金时期,至到今天,它仍然在享受着当年的红利. 在SQL Server 2000那个年代,由其功能强大,使用方便,“国人免费”等特点迅速流行起来,成为企业开发的不二选择.早期的用友.管家婆的ERP也使用此

Java如何实时的监控sql server 2005 表的操作

过程描述: 用户发送短信"A"到12329,发送记录会存储在sql server 2005 的记录表T 中,我们需要做的就是根据用户发送的代码"A"给用户返回相应的信息.如图: 考虑过使用触发器,可惜sql server 触发器不能够像Oracle 那样执行Java代码: 考虑使用程序不间断地扫描表,频繁的访问数据库又担心会对sql server 数据库产生太大的压力 各位oscer们,有没有什么好的解决办法?