oracle用ogg同步到sqlserver的资源非常少,所以亲测过后立马记下来,分享给那些需要的人们。如果不是被逼无奈,建议还是用sqlserver自带的复制订阅,配置比较简单。

环境:

source:  54      Centos7   oracle12.2           ogg12.3

target  :    52   Windows   sqlserver2012     ogg12.3

建议不要用oracle12.2  还是用12.1吧。ogg尽量比oracle版本新一点。如ogg12.3 > oracle12.2。

配置参数:

source:

1. 添加defgen参数文件(由于是异构数据库之间的传输,需要转换字段类型,需用到defgen工具生成定义文件)

GGSCI (tmis-3 as c##ggadmin@orcl/CDB$ROOT) 16> view params defgen  

defsfile /data/ogg/dirdef/tmisuser.def
userid system@tmis,password Sjtsoft123 TABLE tmis.tmisuser.PR_Practitioner;

2. 运行defgen工具生成定义文件
进入ogg安装目录

./defgen paramfile /data/ogg/dirprm/defgen.prm

会在dirdef目录下生成一个tmisuser.def的定义文件

3.建立ogg用户 赋权限

略:

.添加mgr

GGSCI (WIN-GRANHIGH6KV) > view params mgr
PORT
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *,RETRIES , WAITMINUTES , RESETMINUTES
5.添加全局参数

GGSCI (WIN-GRANHIGH6KV) 2> view params ./GLOBALS
GGSCHEMA c##ggadmin
 6.添加抽取进程
GGSCI (WIN-GRANHIGH6KV) 3> view params ext5452 extract ext5452
SETENV(ORACLE_SID='orcl')
userid c##ggadmin,password ggadmin
exttrail /data/ogg/dirdat/ea
DYNAMICRESOLUTION
GETTRUNCATES TABLE tmis.tmisuser.PR_Practitioner;
7.添加投递进程:

GGSCI (WIN-GRANHIGH6KV) 4> view params p5452

extract p5452
SETENV(ORACLE_SID='orcl')
userid c##ggadmin,password ggadmin
rmthost 10.1.2.52,mgrport 7809
rmttrail D:\ogg\dirdat\pb
PASSTHRU TABLE tmis.tmisuser.PR_Practitioner;
8.添加表级附加日志

add trandata tmis.tmisuser.PR_Practitioner
--添加抽取进程
add extract ext5452,integrated tranlog,begin now
add exttrail /data/ogg/dirdat/ea,extract ext5452 --注册抽取进程
REGISTER EXTRACT ext5452 DATABASE CONTAINER(tmis) --添加投递进程
add extract p5452,exttrailsource /data/ogg/dirdat/ea,begin now
add rmttrail D:\ogg\dirdat\pb,extract p5452

target:

1.配置ODBC数据源
控制面板-管理工具-数据源(ODBC),添加系统DNS,取名为 tmisdb,注意择驱动程序类型为SQL Server Native Client 11.0
GGSCI (ZJPC) > view params mgr
port
ACCESSRULE, PROG *, IPADDR 10.1.2.54, ALLOW
.添加checkpointtable(建议添加,stop rep后会产生一个检查点,start之后会继续同步)
GGSCI (ZJPC) > view params ./globals
checkpointtable dbo.ckp GGSCI (tmis-) > edit params ./globals
checkpointtable dbo.ckp
GGSCI (tmis-) > dblogin sourcedb tmisdb userid sa password admin@
GGSCI (tmis-) > add checkpointtable dbo.ckp
3.添加复制rep进程:

GGSCI (ZJPC) 4> view params rep5452

replicat rep5452
sourcedefs D:\ogg\dirdef\tmisuser.def
targetdb tmisdb userid sa, password admin@123
reperror default,discard
discardfile D:\ogg\dirrpt\rpl.dsc append
gettruncates
handlecollisions MAP tmis.tmisuser.PR_Practitioner,TARGET dbo.PR_Practitioner;
--添加复制进程
add replicat rep5452,exttrail D:\ogg\dirdat\pb,begin now,checkpointtable dbo.ckp

启动进程,同步正常。但是数据初始化不太好弄,只想到init load 进程抽取,但是出现抽取数据不全,汉字乱码现象,打算改用kettle试试初始化俩个数据库,不知道有没有什么好的方法。希望各位网友给点帮助。

 

ogg-oracle to sqlserver的更多相关文章

  1. 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

    ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安 ...

  2. oracle与sqlserver部分区别

    oracle和sqlserver的区别:1,执行修改操作要接commit,不然数据仅仅只是查看,并不是提交数据2,oracle不能使用select 字段 这种查看方式查看数据:3,oracle存储过程 ...

  3. ORACLE连接SQLSERVER

    一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...

  4. 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库

    都说Hibernate框架的使用可以很容易的让你的研发平台支持多种不同类型的数据库,但实践表明,这里的“容易”,是相对的. 想让研发平台支持多种数据库,并不是一件简单的事,也可以这么说:并不是只要使用 ...

  5. Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

    此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...

  6. CTE在Oracle和Sqlserver中使用的差异

    CTE是一个很好用的工具,他可以帮助我们清晰代码结构,减少临时表使用,同时oracle和sqlserver都提供支持.但在oracle和sqlserver中使用CTE也存在一定区别. Oracle使用 ...

  7. NUll在oracle与sqlserver中使用相同与区别

    最近在使用Oracle进行开发,遇到很多与以前使用sqlserver的不同语法.今天遇到null在两种数据库上面操作上的差别,在此记录两种数据库上的差异. null 与字符串相加 1.在oracle中 ...

  8. Oracle/Mysql/SqlServer函数区别

    mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36|  分类: Mysql技术 |  标签:mys ...

  9. 【从翻译mos文章】在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果,需要额外的db patch

    在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果.需要额外的db patch 参考原始: Patches needed to support SCHEMATR ...

  10. oracle与sqlserver利用函数生成年月日加流水号

    最近在做oracle相关的项目,刚接触oracle,与sqlserver语法上还是有区别的 sqlserver : 示例:FX+当前年月日+00001 如下图流水号实力所示 原理: 首先 'FX'是固 ...

随机推荐

  1. java读取请求中body数据

    java读取请求中body数据 /** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOExcepti ...

  2. bandit_pass

    boJ9jbbUNNfktd78OOpsqOltutMc3MY1CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9UmHadQclWmgdLOKQ3YNgjWxGoRMb5luKpIwr ...

  3. 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)

    目录(技术文) 多关于索引,分为以下几点来讲解: 一.索引的概述(什么是索引,索引的优缺点) 二.索引的基本使用(创建索引) 三.索引的基本原理(面试重点) 四.索引的数据结构(B树,hash) 五. ...

  4. redis启动脚本报错

    1.执行redis脚本启动报错 [root@localhost ~]# service redis start /var/run/redis_6379.pid exists, process is a ...

  5. 【jQuery入门】(5)---jQuery CSS

    jQuery  CSS      1.jQuery 文档操作方法        1.addClass() 方法: addClass() 方法向被选元素添加一个或多个类.该方法不会移除已存在的 clas ...

  6. Jenkins+github+maven+git+linux

    Jenkins:持续集成的一个工具 github:远程存放代码 maven:利用maven创建项目,配置pom.xm依赖 git :本地仓库,可以提交代码到远程(我都是使用git 在git bush ...

  7. iOS Block的简单使用以及__block 和static修饰变量

    简单的代码总结,不足之处多多指教. //简单的使用 -(void)blockOne{ ; int(^BlockOne)(int) = ^(int num2) { return number*num2; ...

  8. iOS MJRefresh上拉加载更多

    1.导入MJRefresh包 2.在类中引入:#import "MJRefresh.h" 3.添加footerView 添加加载更多的UI样式: MJRefreshAutoNorm ...

  9. CSS height:100%无效

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/38 浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚 ...

  10. bzoj 3999: [TJOI2015]旅游

    Description 为了提高智商,ZJY准备去往一个新世界去旅游.这个世界的城市布局像一棵树.每两座城市之间只有一条路径可 以互达.每座城市都有一种宝石,有一定的价格.ZJY为了赚取最高利益,她会 ...