Sql-Server

遷移多個 SQL Server 數據庫的最佳方法是什麼?

  • March 20, 2022

我想將我的數據庫伺服器遷移到新伺服器。現在我有一個帶有 Windows Server 2008 的數據庫伺服器,現在我正在遷移到一個帶有 Windows Server 2012 的新的獨立伺服器。

大約有 50 到 100 個數據庫。

在不影響客戶端(意味著不停機)的情況下遷移數據庫伺服器的最佳方法是什麼?

將 50 到 100 個數據庫複製到零停機時間的全新伺服器?我認為這不會發生。當您談論遷移時,計劃停機是絕對必須的。

在這種情況下,根據數據庫的大小,我會採用腳本路線。如果您精通 PowerShell,則可以遍歷所有數據庫並進行備份以儲存在新伺服器的可訪問儲存中。然後在新伺服器上,您可以編寫所有數據庫的恢復腳本。

不要忘記伺服器級別的項目(登錄名、作業等)。您也可以編寫這些腳本,但有了這個特殊要求,SSIS 實際上使它變得非常容易。有一些任務可以完成所有這些伺服器級項目。

如果您不希望停機,那麼客戶端如何將他們的請求重定向到新的數據庫伺服器?對此有一些外部解決方案,但是當您承諾“零停機時間”時需要考慮一些事情。

您可以使用幾個選項來使用目前可用的硬體最大限度地減少停機時間:

最重要的一步是執行升級顧問(如果 SQL Server 版本與舊伺服器不同)。

此外,首先對所有數據庫進行完整備份 - 以防萬一出現問題。

方法 1: 日誌傳送

  1. 在舊伺服器和新伺服器之間設置日誌傳送(可​​能每 1 分鐘一次)。
  2. 當您決定進行故障轉移時,首先進行尾日誌備份,然後恢復所有數據庫的尾日誌備份,然後在新伺服器上恢復數據庫。
  3. 顯然,您可以事先做一些準備工作來創建登錄、sql 代理作業等。

方法 2: 數據庫鏡像

  1. 為高性能(非同步)中的所有數據庫創建鏡像以避免在等待事務在鏡像伺服器上送出然後由主體確認時的性能成本。
  2. 如果要進行故障轉移,請更改為同步模式(高可用性模式),然後啟動故障轉移。只有進行中的事務才會被中斷。

這些方法只是對每種技術可以實現的目標的概述。

當您必須將應用程序/使用者重新指向新伺服器時,總會有停機時間。

注意:基於 Powershell 的 dbatools 將有助於自動化.

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