SQL Server資料庫同步問題

來源:互聯網
上載者:User

  我們可以通過資料複製跨區域網路、Internet在不同的資料庫伺服器上面維護多個資料的多個拷貝,同時以同步或非同步方式保證各個拷貝之間的資料一致性。

  SQL Server提供完善的內建資料複製能力,它是SQL Server核心引擎非常重要的一部分。

  SQL Server的複製分為三種方式:

  快照式複寫:在某個時間點對於出版資料庫中的資料照相,然後將其複製到定購伺服器上。一般用於複製靜態表。

  事務複製:複製的內容是多條語句和預存程序,這樣定購資料庫只是讀取資料庫的資料修改方式,並且反映這種修改。一般使用者更新頻率較高的資料庫。

  合併式複寫:允許定購者和出版者的雙向修改,並將修改反映到雙方資料庫上。如果資料有衝突,將會按照一定規則處理該衝突。

  目前單位有用到一個web網站,資料庫分別位於美國,荷蘭和深圳。在網站基礎架構上,我們使用的是3DNS和BigIP實現智能網域名稱解析和負載平衡。但由於三地具備各自的資料庫(SQL Server),需要保證各個資料庫的資料一致。我們就需要做資料複製。根據使用者的要求我們做的是事務複製,在網站的前兩個版本都很正常,但在上兩周更新了web頁面版本後,發現事務複製經常出現錯誤。重新做事務複製在間隔不長的時間後仍然出現。後檢查錯誤記錄檔發現提示:

  The query processor could not produce a query plan from the optimizer because a query cannot update a text, ntext, or image column and a clustering key at the same

  檢查資料庫表格,經過排查,確定存在問題的一個表格(XXX_article)。和程式員確認後發現此表格屬性變更為ntext類型,而且會同時更新此欄位和此表的叢集索引欄位。

  因此,懷疑是由於在做事務複製時會同時修改這兩處位置造成,查閱相關的資料未能找到明確的官方說明,但是有其他程式的人員在程式編碼中發現類似問題,其解決方案是分成兩次update這個兩個欄位。具體的技術細節,未能得到明確的說明。在事務複製上我們無法幹擾其過程,因此我們將不對xxx_article做事務複製。然後對於xxx_article做快照式複寫,這樣可以避免此問題的產生。經過測試和應用,此問題已經得到解決。

相關文章

聯繫我們

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