Sql-Server

需要有關如何從現有數據庫鏡像遷移到可用性組的建議

  • May 26, 2020

需要一些關於從數據庫鏡像遷移到 AOAG 的實用/一般指導

目前設置 - 2 個獨立伺服器,數據庫鏡像配置為非同步。

  1. 伺服器 A:執行 SQL Server 2017 的 Windows 2016,無集群,簡單的獨立伺服器作為主伺服器
  2. 伺服器 B:執行 SQL Server 2017 的 Windows 2016,無集群,簡單的獨立伺服器作為鏡像
  3. 文件共享伺服器將在不同的 DC 中提供

伺服器之間的距離約為 150 英里。

我們只需要使用上述伺服器並將數據庫鏡像轉換為具有自動故障轉移選項的 AG,以提供 HA 作為獎勵,因為通過上述設置,它主要是一個 DR 解決方案。

  1. Clusterless AG 找到了我,但似乎 HA 不可用,因為自動故障轉移可能不起作用。我在這裡遺漏了什麼還是有可能?
  2. 如果需要,我們最多可以中斷 8 小時以將 db 鏡像轉換為 AG。

我應該如何計劃或是否有任何可用資源來做到這一點?找了很多文章都沒找到,求指教

作為一般規則,這種遷移應該很簡單。AG 使用數據庫鏡像框架和端點來傳輸日誌塊,因此轉換非常簡單。

需要注意的一件事是您目前非同步執行鏡像,但您已聲明要執行 AG同步以提供 HA。這應該不是問題,但是您需要檢查伺服器之間的延遲,以確保您不會產生阻礙寫入性能的瓶頸。

同步送出 AG 要求在將所有事務送出到主伺服器之前,將它們強化到輔助伺服器的日誌中,因此如果伺服器之間 150 英里的延遲太高,這可能會導致嚴重的性能問題。

Clusterless AG 找到了我,但似乎 HA 不可用,因為自動故障轉移可能不起作用。我在這裡遺漏了什麼還是有可能?

不,你是對的。無集群 AG 或讀取規模可用性組不是 HA 選項。讀取規模可用性組中沒有自動故障轉移。請參閱此處的此連結,其中指出:

這不是一個高可用性設置。沒有基礎設施來監控和協調故障檢測和自動故障轉移。如果沒有集群,SQL Server 就無法提供自動化高可用性解決方案所提供的低恢復時間目標 (RTO)。如果您需要高可用性功能,請使用集群管理器(Windows 上的 Windows Server Failover Cluster 或 Linux 上的 Pacemaker)。

讀取規模的可用性組可以提供災難恢復能力。當只讀副本處於同步送出模式時,它們提供的恢復點目標 (RPO) 為零。

對於你的第二點-

如果需要,我們最多可以中斷 8 小時以將 db 鏡像轉換為 AG。

您可以執行以下操作:

  1. 在伺服器 A 和伺服器 B 上啟用集群。
  2. 使用伺服器 A 和伺服器 B 上的 SQL 實例配置可用性組作為副本
  3. 停止兩台伺服器上的日誌備份
  4. 從伺服器 A/B 上的數據庫中刪除鏡像
  5. 將數據庫添加到伺服器 A 上的 AG
  6. 將數據庫加入伺服器 B 上的 AG - 這應該是相當無縫的,因為伺服器 B 上的數據庫應該在恢復中,因為鏡像被禁用。只要沒有發生日誌備份,您就應該能夠在 AG 中同步 DB,而無需備份/恢復或播種。
  7. 更新應用程序連接以使用偵聽器名稱。

其中一些步驟需要重新啟動伺服器或 SQL Server 實例,因此會出現多次中斷,但每次都比您允許的 8 小時短。

這是一個非常簡單的概述,需要對流程進行測試,並在生產中執行之前辨識和解決任何問題。如果您有一個非生產環境,請從那裡開始並編寫每個步驟的腳本,以便您可以準確地重播生產中的操作。

如果您沒有非生產環境,請讓您的系統管理員將您的伺服器複製到一個隔離的網路中,您可以在其中練習更改。如果您正在執行物理伺服器,那麼在沒有非生產環境的情況下進行測試將會很困難,但是您可以在 Azure 或 AWS 中建構一個類似的環境來試執行該過程。

這是為 AG 配置集群的有用連結。它有點舊,但資訊仍然有效。如果您對這個過程沒有信心,特別是如果您沒有可用的非生產環境,最好聘請可以為您計劃和執行此過程的第三方承包商/顧問/專家。

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