ogg-oracle to sqlserver
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的更多相关文章
- 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗
ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性: Oracle.MYSQL与DB2可在所有主流平台上运行: SQL Server只能在Windows下运行: --安 ...
- oracle与sqlserver部分区别
oracle和sqlserver的区别:1,执行修改操作要接commit,不然数据仅仅只是查看,并不是提交数据2,oracle不能使用select 字段 这种查看方式查看数据:3,oracle存储过程 ...
- ORACLE连接SQLSERVER
一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...
- 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库
都说Hibernate框架的使用可以很容易的让你的研发平台支持多种不同类型的数据库,但实践表明,这里的“容易”,是相对的. 想让研发平台支持多种数据库,并不是一件简单的事,也可以这么说:并不是只要使用 ...
- Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver
此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...
- CTE在Oracle和Sqlserver中使用的差异
CTE是一个很好用的工具,他可以帮助我们清晰代码结构,减少临时表使用,同时oracle和sqlserver都提供支持.但在oracle和sqlserver中使用CTE也存在一定区别. Oracle使用 ...
- NUll在oracle与sqlserver中使用相同与区别
最近在使用Oracle进行开发,遇到很多与以前使用sqlserver的不同语法.今天遇到null在两种数据库上面操作上的差别,在此记录两种数据库上的差异. null 与字符串相加 1.在oracle中 ...
- Oracle/Mysql/SqlServer函数区别
mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36| 分类: Mysql技术 | 标签:mys ...
- 【从翻译mos文章】在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果,需要额外的db patch
在OGG (Oracle GoldenGate) 正在使用SCHEMATRANDATA如果.需要额外的db patch 参考原始: Patches needed to support SCHEMATR ...
- oracle与sqlserver利用函数生成年月日加流水号
最近在做oracle相关的项目,刚接触oracle,与sqlserver语法上还是有区别的 sqlserver : 示例:FX+当前年月日+00001 如下图流水号实力所示 原理: 首先 'FX'是固 ...
随机推荐
- idea历史版本下载
https://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases
- if;脚本中退出语句:exit 数字,用$?查时为exit设置的数字,此数字为程序执行完后的返回数据,可以通过此方法自动设定
if [ 条件 ];then 代码 fi if [ 条件 ] then 代码 fi [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda5 % ...
- python for循环巧妙运用(迭代、列表生成式)
200 ? "200px" : this.width)!important;} --> 介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,di ...
- bzoj 4539: [Hnoi2016]树
Description 小A想做一棵很大的树,但是他手上的材料有限,只好用点小技巧了.开始,小A只有一棵结点数为N的树,结 点的编号为1,2,-,N,其中结点1为根:我们称这颗树为模板树.小A决定通过 ...
- JavaScript构造函数、继承的理解
前两天稍微深入一点点理解了原型和原型链,然后就开始有挺多疑问的: function dog() { this.name = "huahua"; } var cat = new do ...
- Create 命令详解
mkdir:创建一个目录 /mkdir a b c :创建同级目录 /mkdir -p aa/bb/cc: 递归创建目录touch:修改文件时间戳,或者新建一个不存在的文件 /-a 更改存取时间 /m ...
- Linux发行版 CentOS6.5下删除分区操作
本文地址http://comexchan.cnblogs.com/,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! 有时候,发现分区分错了.需要删除分区,只需按照分区的步骤逆向操作 ...
- Extjs 取消backspace事件
Ext.getDoc().on('keydown',function(e){ if(e.getKey() == 8 && e.getTarget().type =='text' &am ...
- VMware_ubuntu设置共享文件夹
1. 点击安装VMware tools 2.将/media/vmtool的压缩包复制到/home/pc/vm_tool下,应为原路径在root权限下竟然也是只读的,并且无法更改. 3.进入/home/ ...
- Keep Mind Working
想找一个这样的地方,可以让脑袋持续运转着.不会像游戏一样让人着迷,不会像有色电视一样让人想错地方,也不会像工作一样充满太多严密.就是让脑袋继续转着,适意地思考些什么. 之前会跑去游戏里,至少没有太污. ...