隨著AlwaysOn技術的流行,關於AlwayOn的問題也越來越多。目前,我們經常碰到有這樣的客戶,他們需要對某些應用程序進行測試,測試會修改數據庫的一些數據,如果測試通過,就提交,如果測試不通過,就需要回滾。那麼AlwaysOn隨帶了一個新功能:掛起數據移動,就可以解決客戶這種問題,下面來介紹此功能的作用。
一 掛起數據移動
某企業現想在空閒的時候對應用程序進行修改測試,因為環境是一套AlwaysOn環境,因此可先將數據同步暫停,這時就可以選擇掛起數據移動這個功能,修改後的數據就不會同步到其他副本;如下圖,右鍵掛起數據移動。
二 對數據進行修改
1. 將主副本掛起後,對此數據庫的數據進行修改,如下測試庫,查找產品表的數據,單價如圖:
2. 現對此單價字段進行修改,將所有的單價全部修改為1,如下圖:
3. 修改結束之後,進行測試,測試通過,此時輔助副本上的數據還是掛起數據移動之前的數據,這樣只需將數據恢復移動就可以同步到其他輔助副本:
4. 但是如果經過測試,發現此單價為1會導致重大錯誤,想改回原來的價格,此時就需要對數據進行回滾
三 進行故障轉移
此時主副本上的數據已經被修改,屬於錯誤數據,因為在修改之前選擇了將數據掛起移動,查看發現輔助副本上的數據沒有發生改變,根據AlwaysOn數據同步機理,選擇將輔助副本變為主副本之後再進行數據同步,可將原主副本上的數據修改回來:
四 恢復數據移動
故障轉移切換完成後,將原主副本上的可用性數據庫右鍵恢復數據庫移動:
然後等待片刻,可以看到,所有副本上的數據都恢復到了掛起數據移動前的狀態:
五 總結
AlwaysOn的掛起數據移動功能可以應用在很多場合,方便好使,不同於其他的高可用技術,AlwaysOn的這個功能可以人工對數據的同步進行控制,而像鏡像等高可用,無法進行人為控制,如果發生誤操作,數據很快就會同步過去,再想恢復數據,只能通過備份進行恢復,耗費時間和人力。