Oracle 資料庫定時同步到 SqlServer方法

來源:互聯網
上載者:User

1、兩台不同伺服器;

2、從oracle10g定時同步(每天淩晨2:00)到sqlserver2005;

3、處於安全性考慮,客服方不提供sqlserver2005的賬戶密碼,只需我們提供資料集;

4、雙方程式語言都為java;

在這些前提下我提出了幾套方案,僅供參考:

a:如果oracle資料庫教程能在客戶服務器上訪問,由oracle方提供介面給客戶服務器實現,返回給客戶服務器所需同步資料,並由客戶服務器操作資料儲存到sqlserver2005中,介面代碼描述:遠程建立jdbc串連oracle(臨時帳戶),查詢oracle方提供的視圖,並訪問客戶所需資料集,打成jar包,由客戶方調用介面實現方法獲得資料。

b:如果oracle方不能被客戶服務器訪問,則將需同步資料置入xml中,並由客服伺服器方訪問其xml(http or socket),並有oracle方提供解析機制,返回資料集。

c:通過開來源資料庫同步軟體實現不同(google結果:symmetricds、opendbdiff(針對sqlserver))

前面三種方案均可實現從oracle同步到sqlserver2005,不過如果資料量較大時可能導致中途資料丟失或者同步速度較慢等情況,於是制定如下方案:

建立同步表,將客戶方所需資料表中欄位放入到同步表中,如:

使用者表:wid,userid,password

使用者同步表:wid,userid,password,no,operationtype,operationdate

可以看到同步表中多了三個欄位:no,operationtype,operationdate

no為序號,由oracle序列產生,operationtype為操作類型,0為新增,1為修改,2為刪除,operationdate為操作日期,取當前完整時間(年月日分秒)

建立使用者表觸發器,如果使用者表有操作則將客戶方所需使用者表欄位放入同步表中,如果新增將operationtype的值插入0,以此類推

在客服伺服器方,oracle方提供介面查詢同步表得到結果集,並和客服商議如何操作這些資料

這樣就可以實現哪些資料修改過就同步哪些資料,減免了雙方伺服器的壓力

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.