您好,登錄后才能下訂單哦!
本篇文章為大家展示了SQL Server中怎么不停機移動鏡像數據庫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
SQL Server數據庫鏡像是對于數據庫可用性的軟件解決方案。鏡像在每個數據庫級別被部署,并只能在完整恢復模式下工作。由于磁盤空間的問題,需要移動鏡像數據庫到一個不同的位置。我們想不停機、不破壞鏡像來完成這個任務。需要在不同的環境做測試。
對于啟用了數據庫鏡像的數據庫的文件移動,我們只有有限的選擇。常規方法如下:
破壞數據庫鏡像會話,通過使用Alter database或Attach Detach移動在線數據庫文件到一個新的位置。
備份數據庫,并在鏡像服務器上恢復備份,然后重建鏡像。
技術上來講,這是可行的,但是它需要停機時間,并且尤其對于大數據庫,移動和恢復需要大量額外時間。
給定的停機時間是客戶端總是會考慮的,我們得找到一個不停機的方案。以下步驟說明了如何不停機移動數據庫文件而不用打擾同步數據庫鏡像。
對于鏡像實例:
在主服務器上暫停鏡像(可選)。
在鏡像服務器上使用Alter database語句來指向一個新位置。
停止鏡像SQL Server服務。
移動鏡像數據庫文件到一個新位置,并確保文件上的權限也還在。
啟動鏡像SQL Server服務。
在主服務器數據庫上恢復鏡像,并驗證鏡像成功恢復。
對于主實例:
故障轉移數據庫到鏡像服務器,以至于鏡像服務器現在作為主服務器。
在新的主服務器上暫停鏡像(可選)。
在新的鏡像服務器上使用Alter database語句來指向一個新位置。
停止新鏡像的SQL Server服務。
移動新的鏡像數據庫文件到一個新位置,并確保文件上的權限也還在。
啟動新鏡像的SQL Server服務。
在主服務器數據庫上恢復鏡像,并驗證鏡像成功恢復。
如果詳細查看以上計劃,可以看到應用程序會話在鏡像數據庫故障轉移期間會重連。當應用程序負載在主服務器上運行時,停止鏡像SQL Server服務,物理移動數據庫文件,然后啟動鏡像SQL Server服務。所以無需停機時間。
然而,你要確保在主服務器上有足夠的日志空間,因為鏡像狀態將會被斷開(不只是一個庫,而是實例上所有鏡像的數據庫)。當鏡像狀態斷開時,日志記錄不會從主服務器發送到鏡像服務器,將會累積在主服務器。一旦鏡像實例啟動,鏡像狀態變為同步中,主服務器將會開始發送日志記錄到鏡像服務器。
我們可以通過以下T-SQL來檢查所有鏡像數據庫的文件位置,來驗證是否修改成功:
Select DB_NAME(dbid),name,filename
from sysaltfiles
where DB_NAME(dbid) in (Select DB_NAME(database_id)
from sys.database_mirroring where mirroring_state is not null)
order by 1
總的來講,當移動數據庫時可以保持數據庫鏡像不用停機。對于見證服務器無需任何操作,在活動期間一直保持在線狀態。首先這個方案應該在測試環境驗證后,再在生產環境實施。非常重要的是,我們注意到在異步鏡像模式,也可以參照這種做法,只是需要在應用停機的情況下來實施。
上述內容就是SQL Server中怎么不停機移動鏡像數據庫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。