Sql-Server

架構更改會“破壞”可用性組還是透明處理?

  • January 23, 2018

我的組織正計劃採用 SQL Server 2012 可用性組,我正在嘗試了解它將對我們的應用程序升級過程產生什麼影響(如果有)。

我們以 8 週為周期發布應用程序更新,任何發布都可能包括架構更改和/或數據遷移。

我想了解的是 HA/DR 解決方案是否透明地處理架構更改(新列、索引被添加到輔助節點)或者是否需要手動干預才能在每個實例上創建架構然後重新打開 Always On。

我假設的數據遷移部分是透明處理的,但也想確認這一點。

我想我也在做一個籠統的假設,即基於可用性組配置的這些行為沒有區別,這也可能是錯誤的。請告訴我。

簡而言之; 在我的應用程序的任何給定版本中,我可以通過向其添加列來更改一個非常大的表(數百萬條記錄的 10 到 100 條)。某些列可能是“全新的”,因此它們可以利用 Enterprise Online 架構更改功能。其他列可能是現有列的重構(FullName 被拆分為 FirstName 和 LastName),並且將為表中的每一行執行遷移以填充這些欄位。這些行為是否需要 DBA 更改 AlwaysOn 配置,或者這是預設處理的,並且所有輔助節點都“免費”獲得 DDL 和 DML 語句?

感謝您提供的任何清晰度。

架構更改和數據更改本質上是相同的。它就像今天的傳統鏡像一樣工作:主要日誌中發生的事情發生在輔助節點上。並非在維加斯發生的所有事情都必須留在維加斯。:-)

您可能需要小心的地方是,當您有一個指向主應用程序的應用程序,並且您更新它以匹配架構更改時。但是您可能有一個指向輔助應用程序的不同應用程序(例如,具有隻讀意圖),並且該應用程序更改也必須同步。

另一個潛在的問題是,作為可用性組一部分的數據庫引用了其他數據庫中的對象(例如,儲存在實用程序數據庫中的靜態查找表)。如果這些更改並且 AG 依賴於這些對象,您將不得不手動推送這些更改。作業、伺服器級登錄、連結伺服器等也是如此——任何存在於數據庫之外和/或不可交易的東西。數據庫使用者可能會被孤立(包含使用者除外)。我知道這可能很明顯,但為了完整起見,我想明確列出它。

引用自:https://dba.stackexchange.com/questions/21404