Oracle表双向同步问题

开发同窗说有一个需求,须要在两个库之间同步一张表的数据
涉及到两个业务系统,这张表的内容用于页面展现
暂且称为A库和B库,表名都相同,称为Tsql

该表只是新增,思考了下,有两个比较方便的方法:
1.定时将A库的表T同步至B库,而后将A库表T和B库表T对比,将差别数据插入到B库的表T(或者使用dblink进行实现,相对简单一些)
下面是使用系统定时任务进行的操做bash

#!/bin/bash

. /home/oracle/.bash_profile
exp jdorcl/jdorcl@b2borcl_184 TABLES=T_JD_LEAD_GOODS file=/home/oracle/sync_tab/exp_t_jd_lead_goods.dmp log=/home/oracle/sync_tab/exp_
t_jd_lead_goods.log
#sqlplus jdorcl/\"jdorcl\@2018\" <<EOF
sqlplus system/oracle <<EOF
truncate table T_JD_LEAD_GOODS ;
drop table T_JD_LEAD_GOODS ;
EOF
imp system/oracle file=/home/oracle/sync_tab/exp_t_jd_lead_goods.dmp fromuser=jdorcl touser=system tables=T_JD_LEAD_GOODS log=/home/or
acle/sync_tab/imp_t_jd_lead_goods.log
sqlplus system/oracle <<EOF
insert into adminsup.t_jd_lead_goods select * from (SELECT * FROM system.t_jd_lead_goods a WHERE NOT EXISTS (SELECT * FROM adminsup.t_
jd_lead_goods b WHERE a.id = b.id));
commit ;
EOF

2.使用物化视图
使用物化视图也须要dblink辅助
具体参考:https://blog.csdn.net/hhduyc/article/details/84009859oracle

其实更方便的是开发其实能够从应用上来解决
经过dblink来查询两个表,union就能够,并且原来两个表的数据也不用更改,保留原表的数据,也能够用来后续排查订单来源。ide

简单记录一下。.net

相关文章
相关标签/搜索