dblink实现两个数据库间表数据同步---张金总结

dblink实现两个数据库间表数据同步---张金总结

ID:23367886

大小:173.19 KB

页数:8页

时间:2018-11-06

dblink实现两个数据库间表数据同步---张金总结_第1页
dblink实现两个数据库间表数据同步---张金总结_第2页
dblink实现两个数据库间表数据同步---张金总结_第3页
dblink实现两个数据库间表数据同步---张金总结_第4页
dblink实现两个数据库间表数据同步---张金总结_第5页
资源描述:

《dblink实现两个数据库间表数据同步---张金总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1,在目标机上建立OracleDBLink:--在本地(目标机器)如下文件加入代码,连接到目标数据库上面1.1,在network/admin/tnsname.ora文件中加入源库的连接信息,如:AAA_10.5.1.3=  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.1.3)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = AAA)    )  )说明: 10.5.1

2、.3:源库ipAAA_10.5.1.3:创建的实例名(服务名)1,2,在目标机器上用sqlplususer/pwd登录:目标机器(本地)的用户名和密码,不是源库机器的用户名和密码。1.3,在本地机器(目标库)上用如下命令建立DBLink:create public database link AAA_LINK connect to user identified by pwd using 'AAA_10.5.1.3';命令说明:AAA_LINK:dblink的名称user:源库的用户名 pwd :源库的密码AAA_10.5.1.3:配置的实例名(服

3、务名)说明:CREATEPUBLICDATABASELINK数据库链接名CONNECTTO用户名IDENTIFIEDBY密码USING‘本地配置的数据的实例名’;如果建立成功,会提示:Databaselinkcreated.1.4--测试使用链接的数据库(表名@dblink名称)select*fromFA_CARD@AAA_LINK;1.5创建一个测试表:在目标机器和原机器上都创建createtabledblink_test(user_idNUMBER,user_nameVARCHAR2(100));--在其中增加一条记录:insertintodb

4、link_test(user_id,user_name)values(1,'钟德荣');1,使用如下脚本,即可同步数据表:2.1将源库的数据插入到目标库方法一、truncatetabledblink_test;--删除目标库的相应表数据--插入目标机器数据,来源于源库的数据insertintodblink_testselect*fromcztbd.dblink_test@KNG_LINK;--#这里是指向要同步的来源表,表名必须是<表所有者(源库的用户)>.<表名(源库的表)>@commit;方法二、mergeintodbl

5、ink_testbusingdblink_test@KNG_LINKcon(b.USER_ID=c.USER_ID)--如果pk(主键)值是相同则将目标库c将对应表的数据更新到源库b的对应表中whenmatchedthenupdatesetb.USER_NAME=c.USER_NAME--如果pk(主键)值不一至,则将目标表中的数据整条插入到源表中whennotmatchedtheninsertvalues(C.USER_ID,C.USER_NAME);--记得merge后必须commit,否则更改未能提交commit;可以将以上语句作为sql脚本

6、,然后写一个类似2.2的bat命令来作为任务执行2.2将目标库的数据插入或者更新到源库--从目标库c将对应表的数据插入到源库b的对应表中方法一insertintocztbd.dblink_test@KNG_LINKselect*fromdblink_test;方法二mergeintodblink_test@KNG_LINKbusingdblink_testcon(b.USER_ID=c.USER_ID)--如果pk(主键)值是相同则将目标库c将对应表的数据更新到源库b的对应表中whenmatchedthenupdatesetb.USER_NAME=

7、c.USER_NAME--如果pk(主键)值不一至,则将目标表中的数据整条插入到源表中whennotmatchedtheninsertvalues(C.USER_ID,C.USER_NAME);--记得merge后必须commit,否则更改未能提交commit;将以上脚本写入merge.sql中,然后建立merge.bat文件,双击运行merge.bat文件,那么系统会自动将目标库c将对应表的数据插入到源库b的对应表中,可以将merge.bat作为任务定期执行(也可以按照3创建存储过程和任务来做)merge.bat如下图所示merge.sql如下图

8、所示1,实现数据同步方式一、通过2所描述的方式实现数据库数据同步(已测试)方法二、创建存储过程和任务(待测试)--创建一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。