oracle表对比同步,Oracle表双向同步问题
開(kāi)發(fā)同學(xué)說(shuō)有一個(gè)需求,需要在兩個(gè)庫(kù)之間同步一張表的數(shù)據(jù)
涉及到兩個(gè)業(yè)務(wù)系統(tǒng),這張表的內(nèi)容用于頁(yè)面展示
暫且稱(chēng)為A庫(kù)和B庫(kù),表名都相同,稱(chēng)為T(mén)
該表只是新增,思考了下,有兩個(gè)比較方便的方法:
1.定時(shí)將A庫(kù)的表T同步至B庫(kù),然后將A庫(kù)表T和B庫(kù)表T對(duì)比,將差異數(shù)據(jù)插入到B庫(kù)的表T(或者使用dblink進(jìn)行實(shí)現(xiàn),相對(duì)簡(jiǎn)單一些)
下面是使用系統(tǒng)定時(shí)任務(wù)進(jìn)行的操作
#!/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\" <
sqlplus system/oracle <
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 <
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
其實(shí)更方便的是開(kāi)發(fā)其實(shí)可以從應(yīng)用上來(lái)解決
通過(guò)dblink來(lái)查詢(xún)兩個(gè)表,union就可以,而且原來(lái)兩個(gè)表的數(shù)據(jù)也不用更改,保留原表的數(shù)據(jù),也可以用來(lái)后續(xù)排查訂單來(lái)源。
簡(jiǎn)單記錄一下。
總結(jié)
以上是生活随笔為你收集整理的oracle表对比同步,Oracle表双向同步问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle如何带符号求和,ORACLE
- 下一篇: 编写c语言程序 斐波那契,请编写一个函数