2015-05-11 36 views
1

我有一個應用程序,出於性能方面的原因,它將在多個Azure數據中心中擁有完全獨立的獨立實例。每個數據中心的Azure IaaS和PaaS組件堆棧將完全相同。首先,將會有一個前端應用程序和一個數據庫。Azure SQL複製

假設我有4個數據中心託管的應用程序。我想讓進入每個Azure SQL數據庫的數據以最終一致的方式異步複製到其他所有3個數據庫。每個數據庫都需要更新。

有誰知道活動地理複製是否可以處理這種情況?我知道我可以使用虛擬機和IaaS來完成此操作,但寧願使用SQL Azure。

謝謝...

+1

活動地理複製將只允許您擁有一個主要的可寫數據庫和多個可讀的輔助數據庫。如果我要正確理解您的方案,那麼您正在尋找可以異步複製的多個可寫數據庫。 Active Geo-Replication不支持該場景。您可以瞭解更多關於Active Geo-Replication [這裏](http://azure.microsoft.com/blog/2014/07/12/spotlight-on-sql-database-active-geo-replication/)。 – elfisher

+1

您可能希望用戶ServiceBus + SQL Azure通過將更新作爲消息進行封裝來複制這些內容。其他可能的選擇是通過啓用Azure數據庫上的複製表的更改跟蹤/觸發以及IaaS中的一臺機器來讀取這些數據並使用鏈接服務器功能進行復制。 –

回答

1

對等網絡tranasaction複製支持你問什麼,在一定程度上 - 我假定這就是你指當你提到設置它在IaaS的什麼,但似乎這將是弄巧成拙,如果你正在尋找它在寫性能的提高(以及對他們的建議):

https://msdn.microsoft.com/en-us/library/ms151196.aspx

雖然對等網絡能夠複製擴大讀取操作,爲t寫入性能光學就像一個節點一樣。這是因爲最終所有插入,更新和刪除都會傳播到所有節點。複製可以識別何時將更改應用於給定節點,並可以防止多次循環通過節點的更改。我們強烈建議每個行的寫入操作僅在節點上執行,原因如下:

  • 如果在多個節點上修改行,則會導致衝突甚至丟失更新傳播到其他節點。
  • 複製更改時總會有一些延遲。對於需要立即查看最新更改的應用程序,跨多個節點動態負載平衡應用程序可能會有問題。

這讓我覺得,你最好使用Active地理複製關 - 你得到的PaaS的好處,並沒有管理自己的虛擬機,不必管理TR,它就會變得混亂,並如果應用程序的構建是爲了處理UI中的「最終一致性」,那麼您可能能夠在次要程序中稍有延遲的情況下獲得更新。