利用oracle快照dblink来解决数据库表同步问题

ID:37729287

大小:44.00 KB

页数:5页

时间:2019-05-29

利用oracle快照dblink来解决数据库表同步问题_第1页
利用oracle快照dblink来解决数据库表同步问题_第2页
利用oracle快照dblink来解决数据库表同步问题_第3页
利用oracle快照dblink来解决数据库表同步问题_第4页
利用oracle快照dblink来解决数据库表同步问题_第5页
资源描述:

《利用oracle快照dblink来解决数据库表同步问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、前6步必须执行,第6以后是一些辅助信息.oracledb_link和触发器实现不同数据库表的同步--1、在目的数据库上,创建dblinkdroppublicdatabaselinkdblink_orc92_182;CreatepublicDATABASELINKdblink_orc92_182CONNECTTObst114IDENTIFIEDBYpasswordUSING''orc92_192.168.254.111'';例如::createdatabaselinkciqlinkconnecttotextidentifiedbyt

2、extusing'orcl247';--dblink_orc92_182是dblink_name--bst114是username--password是password--''orc92_192.168.254.111''是远程数据库名--2、在源和目的数据库上创建要同步的表(最好有主键约束,快照才可以快速刷新)droptabletest_user;createtabletest_user(idnumber(10)primarykey,namevarchar2(12),agenumber(3));--3、在目的数据库上,测试dbl

3、inkselect*fromtest_user@ciqlink;//查询的是源数据库的表select*fromtest_user;--4、在源数据库上,创建要同步表的快照日志Createsnapshotlogontest_user;--5、创建快照,在目的数据库上创建快照Createsnapshotsn_test_user1asselect*fromtest_user@ciqlink;--6、设置快照刷新时间(只能选择一种刷新方式,推荐使用快速刷新,这样才可以用触发器双向同步)快速刷新Altersnapshotsn_test_us

4、er1refreshfastStartwithsysdatenextsysdatewithprimarykey;--oracle马上自动快速刷新,以后不停的刷新,只能在测试时使用.真实项目要正确权衡刷新时间.完全刷新Altersnapshotsn_test_userrefreshcompleteStartwithsysdate+30/24*60*60nextsysdate+30/24*60*60;--oracle自动在30秒后进行第一次完全刷新,以后每隔30秒完全刷新一次--7、手动刷新快照,在没有自动刷新的情况下,可以手动刷新快

5、照.手动刷新方式1begindbms_refresh.refresh(''sn_test_user'');end;手动刷新方式2EXECDBMS_SNAPSHOT.REFRESH(''sn_test_user'',''F'');//第一个参数是快照名,第二个参数F是快速刷新C是完全刷新.--8.修改会话时间格式ALTERSESSIONSETNLS_DATE_FORMAT=''YYYY-MM-DDHH24:MI:SS'';--9.查看快照最后一次刷新时间SELECTNAME,LAST_REFRESHFROMALL_SNAPSHOT_

6、REFRESH_TIMES;--10.查看快照下次执行时间selectlast_date,next_date,whatfromuser_jobsorderbynext_date;--11.打印调试信息dbms_output.put_line(''use''

7、

8、''plsql'');--12.如果你只想单向同步,那么在目的数据库创建以下触发器(当源数据库表改变时,目的数据库表跟着改变,但目的数据库表改变时,源数据库表不改变).createorreplacetriggerTRI_test_user_AFRafterinsertorup

9、dateordeleteonsn_test_userforeachrowbeginifdeletingthendeletefromtest_userwhereid=:old.id;endif;ifinsertingtheninsertintotest_user(id,name)values(:new.id,:new.name);endif;ifupdatingthenupdatetest_usersetname=:new.namewhereid=:old.id;endif;endTRI_test_user_AFR;--13.如果你

10、想双向同步,请在源数据库中执行前6步,并在双方都创建以下触发器(当源数据库表改变时,目的数据库表跟着改变,目的数据库表改变时,源数据库表也改变)CREATEORREPLACETRIGGERBST114.TRI_TEST_USER_AFRAFTERD

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

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

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

《利用oracle快照dblink来解决数据库表同步问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、前6步必须执行,第6以后是一些辅助信息.oracledb_link和触发器实现不同数据库表的同步--1、在目的数据库上,创建dblinkdroppublicdatabaselinkdblink_orc92_182;CreatepublicDATABASELINKdblink_orc92_182CONNECTTObst114IDENTIFIEDBYpasswordUSING''orc92_192.168.254.111'';例如::createdatabaselinkciqlinkconnecttotextidentifiedbyt

2、extusing'orcl247';--dblink_orc92_182是dblink_name--bst114是username--password是password--''orc92_192.168.254.111''是远程数据库名--2、在源和目的数据库上创建要同步的表(最好有主键约束,快照才可以快速刷新)droptabletest_user;createtabletest_user(idnumber(10)primarykey,namevarchar2(12),agenumber(3));--3、在目的数据库上,测试dbl

3、inkselect*fromtest_user@ciqlink;//查询的是源数据库的表select*fromtest_user;--4、在源数据库上,创建要同步表的快照日志Createsnapshotlogontest_user;--5、创建快照,在目的数据库上创建快照Createsnapshotsn_test_user1asselect*fromtest_user@ciqlink;--6、设置快照刷新时间(只能选择一种刷新方式,推荐使用快速刷新,这样才可以用触发器双向同步)快速刷新Altersnapshotsn_test_us

4、er1refreshfastStartwithsysdatenextsysdatewithprimarykey;--oracle马上自动快速刷新,以后不停的刷新,只能在测试时使用.真实项目要正确权衡刷新时间.完全刷新Altersnapshotsn_test_userrefreshcompleteStartwithsysdate+30/24*60*60nextsysdate+30/24*60*60;--oracle自动在30秒后进行第一次完全刷新,以后每隔30秒完全刷新一次--7、手动刷新快照,在没有自动刷新的情况下,可以手动刷新快

5、照.手动刷新方式1begindbms_refresh.refresh(''sn_test_user'');end;手动刷新方式2EXECDBMS_SNAPSHOT.REFRESH(''sn_test_user'',''F'');//第一个参数是快照名,第二个参数F是快速刷新C是完全刷新.--8.修改会话时间格式ALTERSESSIONSETNLS_DATE_FORMAT=''YYYY-MM-DDHH24:MI:SS'';--9.查看快照最后一次刷新时间SELECTNAME,LAST_REFRESHFROMALL_SNAPSHOT_

6、REFRESH_TIMES;--10.查看快照下次执行时间selectlast_date,next_date,whatfromuser_jobsorderbynext_date;--11.打印调试信息dbms_output.put_line(''use''

7、

8、''plsql'');--12.如果你只想单向同步,那么在目的数据库创建以下触发器(当源数据库表改变时,目的数据库表跟着改变,但目的数据库表改变时,源数据库表不改变).createorreplacetriggerTRI_test_user_AFRafterinsertorup

9、dateordeleteonsn_test_userforeachrowbeginifdeletingthendeletefromtest_userwhereid=:old.id;endif;ifinsertingtheninsertintotest_user(id,name)values(:new.id,:new.name);endif;ifupdatingthenupdatetest_usersetname=:new.namewhereid=:old.id;endif;endTRI_test_user_AFR;--13.如果你

10、想双向同步,请在源数据库中执行前6步,并在双方都创建以下触发器(当源数据库表改变时,目的数据库表跟着改变,目的数据库表改变时,源数据库表也改变)CREATEORREPLACETRIGGERBST114.TRI_TEST_USER_AFRAFTERD

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