開發同窗說有一個需求,須要在兩個庫之間同步一張表的數據
涉及到兩個業務系統,這張表的內容用於頁面展現
暫且稱爲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