实例:从Oracle初始化数据到Sqlserver。配置初始化数据抓取(direct load)源端(oracle)增加初始化加载batch task groupadd extract eini01,sourceistable 参数解析:#sourceistable表示从表direct抓取而不是redo日志获取数据。info extract *,tasks #查看状态
实例:从Oracle初始化数据到Sqlserver。
配置初始化数据抓取(direct load)
源端(oracle)
增加初始化加载batch task group
add extract eini01,sourceistable
参数解析:
#sourceistable表示从表direct抓取而不是redo日志获取数据。
info extract *,tasks #查看状态是STOPPED
配置初始加载进程eini01的参数
edit params eini01
extract eini01
userid ggmgr,password oracle
rmthost 10.10.1.220,mgrport 7809,compress
rmttask replicat,group rini01
table ggmgr.t1;
参数解析:
rmttask replicat,group inir_erp
让direct manager在目标端同时开启rini01进程,完成一次性的加载,也就是在目标端我们不用手动start rini01进程了。
注意事项:
因为是直接从原表抽取,而不是从日志,所以不用为表加trandata也可以。
要使用defgen工具将源端定义传送到目标端
目标端(sqlserver):
配置初始应用日志
目标端得手动建这个表,而不能在初始化时自动建上相应的表。
add replicat rini01,specialrun
info replicat *,tasks
--配置参数
edit params rini01
replicat rini01
targetdb mssql
sourcedefs D:\gg\dirdef\defgen.def
map ggmgr.t1, target erpdb.dbo.t1;
assumetargetdefs
什么时候能用这个?
要是相同的db类型,例如都是Oracle
相同的charactor set与locale,例如american_AMERICA.
包含相同列的数目。
列的名称要完全相同,包括大小写空格符号等。
一样的data types。
一样的列长度。
have the same column length semantics for character columns (bytes versus characters). 意思应该是例如一个字母占几个字节这些吧。
字段的顺序也得一致。
如果对于有一样结构的表,又有不一样结构的表。sourcedefs与assumetargetdefs可以同时出现。
sourcedefs D:\gg\dirdef\defgen.def
map ord.prod; target ord.prod;
assumetargetdefs
map rpt.stock, target rpt.stock
discardfile D:\gg\dirrpt\rini01.dsc,purges
#ASSUMETARGETDEFS:代表源表与目标表结构完全一样,估计int与number也是不同的数据类型。这个与sourcedefs只能选其中一个。
#specialrun指明这是一个one-time run,而不是continuous process。
发起init加载
源端(oracle)
start extract eini01 #源端发起就可以,会调用目标端的replicat进程来进行one-time加载。
info eini01
view report eini01
目标端(sqlserver)
view report rini01
specialrun参数定义一个初始加载进程(这是不使用检查点的一次性加载)。文件的下一行指示replicat进程在加载完成后终止。extfile指示提取文件,sourcedefs指定表定义。
防火墙要注意通,可能用telnet 192.168.1.71 7809 这种方式来检验。
此时,我原表目标表都是没有主键的,也可以同步。
另外,我在源端再次执行start extract eini01,目标表行数就多了一倍。