我们都知道,在Oracle数据库的管理与开发工作中,总会存在着一些表数据和基础资料数据,这时需要有效的将这些数据库进行同步合并,有没有什么简单的方法可以实现Oracle数据库之间的数据同步呢?在此诚恺科技重庆服务器频道同大家分享利用dblink与merge结合的方法实现Oracle数据库之间数据同步。
操作环境: 此数据库服务器ip为192.168.196.76,有center与branch两个库,一般需要将center的表数据同步到branch,center为源库,branch为目标库,具体步骤如下:
1.在源库创建到目标库的dblink
create database link branch --输入所要创建dblink的名称,自定义
connect to dbuser identified by “password” --设置连接远程数据库的用户名和密码
using '192.168.196.76/branch'; --指定目标数据库的连接方式,可用tns名称
在创建dblink时,要注意,有时候可能会报用户名和密码错误,但实际上我们所输入的账户信息是正确的,此时就注意将密码的大小写按服务器上所设置的输入,并在账号密码前号加上双引号(服务器版本不同造成的)。
2.成功后验证dblink
select * from tb_bd_action@branch;
正常情况下,如果创建dblink成功,可采用该方式访问到远程数据库的表.
3.通过merge语句完成表数据同步
此例中需要将center库中的tb_sys_sqlscripe表同步到branch,简单的语法如下:
merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk) --从center将表merge到branch,同步的依据是两个表的pk
when matched then update set b.sqlscripe=c.sqlscripe,b.author=c.author --如果pk值是相同则将指定表的值更新到目标表
when not matched then --如果pk值不一至,则将源表中的数据整条插入到目标表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.module,c.deleteflag, c.scripttype);
commit; --记得merge后必须commit,否则更改未能提交
4.为方便每次需要同步时自动完成同步工作,可将该语句做成存储过程或脚本来定时执行或按要求手动执行,简单说一下创建脚本的方法:
a.创建merge文件夹
b.先将merge语句写完整后,存到merge.sql文件中
c.新建merge.bat文件,编辑后写入以下内容
sqlplus user/password@serverip/database @"%cd%\merge.sql"
当运行merge.bat时就会自动完成所指定不同数据库间的同步工作。
更我关于服务器、虚拟化、数据库的相应知识文章可参考重庆诚恺科技官网。
转自:http://www.cqeis.com/news_detail/newsId=34e12494-e6d5-49ed-b337-39edb7de4c84.html
分享到:
相关推荐
Python实现两个Oracle数据库同步工作
内存数据库与Oracle数据库的数据同步设计与实现.pdf
SpringBoot定时任务实现Oracle和mysql数据同步
oracle数据库之间同步数据 dbLink +job方式
本文讲述如何利用 Oracle CDC 和 PDI 来实现 Oracle 数据库向其他数据源的数据同步。
为了满足客户的要求,客户要求两台数据库服务器在不能直接通信的情况下,要保证两台数据库数据保持同步,并且要保证效率,数据量一般每分钟最少可以到达2万条(只能通过端口访问),所以只能使用程序先生成满足特定...
通过Oracle的流复制实现数据库之间的同步
mssql数据库和oracle数据库通过触发器实现数据表同步
基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年刚收购的一款叫做...
内容涉及oracle 12的容器数据库,可插入数据库,目前只做了DML的数据同步(不含ddl的同步)
MySQL集群到Oracle数据库的数据同步方法.pdf
描述了Oracle数据库间的同步复制的技术,可以解决站点和站点数据的同步复制
Oracle数据库备份文档,提供实时备份的指导;Oracle工具就可以达成。
对在分布式环境下的Oracle数据库实现数据同步时,涉及的几个主要问题进行探讨,通过日志分析方法,分析了...设计了一个分布式的数据库数据同步原型系统,提出了合理可行的数据同步方案,同时对该原型系统进行了实验分析。
oracle数据库同步perl脚本示例 其中有2个文件,一个是 perl同步脚本,另一个是存储过程; 大致思路是:perl脚本从数据库A同步数据至库B的临时表中,再通过存储过程将库B中的临时数据过滤导入正式数据当中。
分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...
《Oracle数据库的同步复制案例》,值得学习!
主要是数据同步从oracle同步到mysql,数据量为好几十万,采用了流处理的方式同步进行处理,防止出现oom
1、该压缩包包含,创建link的过程,同步库表的sql语句,自动执行的bat脚本。...2、通过link进行连接两台带有oracle11g的数据库之间表同步,包含添加和更新表数据。 3、通过任务计划自动执行bat脚本,定时同步库表。
一个mysql数据库数据同步至oracle数据库代码,同时修改mysql数据表标识。