如何保證資料庫同步中目的端交易提交的原子性

來源:互聯網
上載者:User

資料庫同步過程中既要保證資料庫裝載的效率,又要保證資料庫每個交易的原子性,即保證一個事務中多條SQL語句執行的成功出於以上目的,我們選擇多表並發加多斷點方式來進行同步,原理是取出需要同步的事務,按照表及SQL語句量進行劃分,分給不同的進程來執行,每個進程有一個斷點,當一個表的某一條SQL語句執行出錯的時候,該進程會記錄下此斷點,該錶停止同步,其他表的資料同步繼續進行,當手工處理完該表出錯的SQL語句後,該進程根據標誌把錯誤表需要同步的SQL語句重新執行或跳過,這樣同步進程會繼續,並且個別表的錯誤不會影響整體的同步

那麼原子性如何能夠在同步過程中保持一致呢?藉助網格斷點就可以達到該目的。網格斷點實際上就是把交易的SCN號和每條SQL語句的表順序進行關聯,記錄該SCN號中的某條SQL語句執行情況的流水檔案,日誌分析進程按照表名建立多個網格檔案,內容是SCN號以及執行語句,按照SCN號來排序,這樣每個同步進程就可以讀取屬於自己的相關表檔案,並按照SCN號的順序進行並發裝載,這樣保證同一時點的資料是按照SCN號進行裝載的,保證了在備庫上查詢統計的一致性。

當每個進程執行成功後就會修改自己對應的斷點檔案,所以當系統出現異常的時候我們就會檢查所有的斷點檔案,這樣資料庫就可以根據斷點情況繼續同步,對於不同的DDL和DML語句進行相應的錯誤處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.