oracle ogg00423,ogg实现Oracle到SQL Server 2005的同步
一、源端(Oracle)配置
1.創(chuàng)建同步測(cè)試表
create table gg_user.t01(name varchar(20) primary key);
create table gg_user.t02(id int primary key,name varchar(20));
2.添加定義文件(是異構(gòu)之間的傳輸,需要轉(zhuǎn)換字段類型等處理需用到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;
注意:如果有多個(gè)表,需要每個(gè)都列出來(lái),如果這個(gè)用戶所有的表都需要同步,直接就table gg_user.*;
如果沒(méi)有列出來(lái),復(fù)制進(jìn)程啟動(dòng)會(huì)報(bào)如下錯(cuò)誤:
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.添加補(bǔ)充日志
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.添加抽取進(jìn)程
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.添加傳遞進(jìn)程
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
二、目標(biāo)端(sql server)配置
1.配置ODBC數(shù)據(jù)源
控制面板-管理工具-數(shù)據(jù)源(ODBC),添加系統(tǒng)DNS,取名為test01,注意擇驅(qū)動(dòng)程序類型為SQL Server Native Client 10.0
2.創(chuàng)建測(cè)試表(結(jié)構(gòu)跟源端保持一致)
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.添加復(fù)制進(jìn)程
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
三、測(cè)試
1.啟動(dòng)進(jìn)程
源端:
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
目標(biāo)端:
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)進(jìn)行DML操作
SQL> insert into t01 select 'lyn'||rownum from dual connect by level<=100;
已創(chuàng)建100行。
SQL> commit;
提交完成。
SQL> insert into t02 select rownum,'moon'||rownum from dual connect by level<=100;
已創(chuàng)建100行。
SQL> commit;
提交完成。
SQL> select count(*) from t01;
COUNT(*)
----------
100
SQL> select count(*) from t02;
COUNT(*)
----------
100
3.在目標(biāo)端(sql server)查看數(shù)據(jù)同步復(fù)制情況
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 行受影響)
總結(jié)
以上是生活随笔為你收集整理的oracle ogg00423,ogg实现Oracle到SQL Server 2005的同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 风行未来oracle,oracle 7月
- 下一篇: 数据中心使用dtu远程连接oracel