- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最近一段时间前单位的同事问我有什么方法可以实现不同数据库之间表数据的同步,起初我告诉他可以用DATAGURAD,STREAM,物化视图等技术手段实现。但他告诉我需要同步数据的表并不多(有3-5张表需要同步)。我就想通过编写触发器实现要更为简单一些。通过几天的努力终于实现。通过一些简单的测试感觉效果还可以,特总结一下奉献给大家。之前论坛里有人问过此类问题,但很多高手都说可以用触发器实现,可是没有给出具体的实现方法。可能他们认为非常easy,呵呵!在这里我帖出实现的具体方法和触发器的代码给当前有此需求的兄弟。将来可能有此需求的兄弟可以将此作为备选方案,参考一下也可以。同时请论坛里的高手多指点,多给出改进意见。如果这篇文章对大家的工作有一定的帮助,那么希望大家能多给于支持。谢谢!我将把大家的支持化作持续、深入学习ORACLE的动力。?现在假设有两个数据库A,B,B库中的备用表需要和A库中的住表同步数据。主表和备用表表名相同(也可以不同),都叫a1。首先建立在A库所在的机器建立访问B库的网络服务名prod,用NET-MANAGER完成2。创建PUBLIC DATABASE LINK,先不指定用户名和密码CREATE PUBLIC DATABASE LINK prod USING prod? ?? ?? ?? ?? ?? ?? ? 注意:??prod表示第1步中创建的网络服务名,以sys/system用户创建3。在需要访问远程数据库用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),要具有CREATE DATABASE LINK权限。指定用户和密码 CREATE DATABASE LINK prod CONNECT TO scott IDENTIFIED BY tiger??注意:scott用户必须在B库中存在且指定相应的密码,和这里给出的密码要一致。4。创建触发器a表为实验表,表结构为user_id number(3) username varchar2(20)更新或插入主表记录时和备份表同步数据的触发器,其中表a是主表,a@prod是备份表,即B库中的a表create or repalce trigger sync_data1after insert or update on abeginmerge into a@prod t2using a t1 on(t2.user_id=t1.user_id)when matched thenupdate set t2.username=t1.usernamewhen not matched theninsert (t2.user_id,t2.username) values(t1.user_id,t1.username)end sync_data1;删除主表记录时和备份表同步数据的触发器,其中a是主表,a@prod是备份表,即B库中的a表create or replace trigger sync_data2after delete on abegindelete from a@prodwhere user_id in(select user_id from a@prodminusselect user_id from a);end sync_data2;或者create or replace trigger sync_data2after delete on abegindelete from a@prodwhere rowid in(select rowid from a@prodminusselect rowid from a);end sync_data2;经过本人的实验,当对A库中的主表进行更新,插入,删除后B库的备份表能和主表中的数据保持一致。至于具体的环境还要充分分析表结构以及表之间的关系等,这些问题可以和大家一起探讨。有不明白的地方可以给我发站内短消息。最后本人目前很想找1份初级/中级DBA工作,但是由于我之前没有专职DBA工作经历以及以往的技术工作经历不被看好,在找工作过程中被很多人力和技术经理给拒绝了。在这里我帖出自己在ORACLE方面掌握的一些技能,如果论坛里那位兄弟所在的单位或朋友需要ORACLE技术人员,麻烦大家给帮忙推荐一下。待遇方面我要求不高,只希望能给个上手的机会。多年做技术工作的我相信自己有能力把DBA工作做好。在此一并谢过大家了!
您可能关注的文档
最近下载
- 2025江苏南京江北新区综合行政执法总队招聘编外执法人员14人笔试模拟试题及答案解析.docx VIP
- 2025入党积极分子发展对象培训考试题库100题含答案(完整版).docx VIP
- 人教版七年级数学上精品讲义精编.pdf VIP
- JTG D40-2002公路水泥混凝土路面设计规范(条文说明).doc VIP
- 风电站运行规程.pdf VIP
- 四年级语文上册1 观潮 任务单.doc VIP
- 2024年广告服务居间协议.docx VIP
- 疾控结核病防治知识题库 .pdf VIP
- 电影音乐欣赏知到智慧树期末考试答案题库2025年华南农业大学.docx VIP
- LabVIEW常用中英文词汇对照表.doc VIP
文档评论(0)