升級SQLServer 2008硬體

升級SQLServer 2008硬體

如果我不能完全說清楚,請原諒我。這不是故意的,我是一家非常小公司的高階開發人員,目前必須扮演經理的角色。

無論如何,故事是我們在一個「集群」中有 2 台裝有 SQL Server 2008 Standard 的較舊的戴爾伺服器。我將其放在引號中,因為我仍然不是 100% 清楚這意味著什麼。我們有 2 台全新的刀鋒伺服器,希望將現有資料庫遷移到新硬體上。

好的,這就是問題所在。我們需要在很少或沒有停機時間的情況下完成這項工作。有人告訴我,我們可以驅逐被動節點,然後引入其中一台新伺服器。但我也被告知這是一個危險的步驟,因為可能會出現問題,導致叢集失敗,然後我們將一無所有,因為活動伺服器將無法恢復。

有人對如何處理這個問題有任何想法嗎?有人告訴我,確保成功的唯一方法是至少有一天的停機時間,在新硬體上啟動一個新集群,然後一一遷移資料庫。

[編輯]由於它仍然與這個問題相關,我想添加另一個問題。我們是否可以從叢集中刪除一台機器。然後建立一個新的集群,將刪除的節點作為活動機器,然後將新的伺服器放入其中?有效保留舊集群,同時換入和換出新機器,以防出現問題?

答案1

很少或沒有停機時間

雖然現在它沒有什麼幫助,但您應該運行企業,因為您需要高可用性,但在這種情況下您將使用的最明顯的功能是能夠在叢集中擁有最多16 個節點,因此在您的情況下,您只需新增然後再刪除 2 個您不再需要的節點。我會考慮在升級硬體的同時升級版本

……但我也被告知這是一個危險的步驟,因為可能會出現問題,導致叢集失敗,然後我們將一無所有,因為活動伺服器將無法恢復。

一切皆有可能。雖然我從未見過伺服器 208 sql 2008 故障轉移叢集直接崩潰,但理論上這是可能的。請注意,活動節點在節點升級期間不會“關閉”,因此無需關閉任何內容。此叢集僅在 1 個節點上運行,不可能進行故障轉移。合理的最壞情況是舊節點以某種方式死亡並且替換節點不會添加,在這種情況下,您將在沒有故障轉移功能的情況下運行,直到導致伺服器無法添加的問題解決。

有人告訴我,確保成功的唯一方法是至少有一天的停機時間,在新硬體上啟動一個新集群,然後一一遷移資料庫。

這可能是確保工作人員成功的唯一方法。我會問一個天真的問題:「如果需要一天的停機時間來移動集群,為什麼我首先要集群?我可以購買 2 台機器,留下 1 台,準備好獲得這種可用性」。簡而言之,您需要找到以前真正從事過集群工作並了解所涉及技術的人。假設沒有獨特的問題(例如,你們公司寫了一些幾乎在集群上運行的集群感知軟體)我認為大多數專業的微軟管理員都會不好意思說需要一天的停機時間來更換/添加硬體到現有的工作集群

答案2

首先,問題末尾推薦的策略也是我建議的做法,但鑑於這不是一個選擇,這就是我的處理方式。您似乎對叢集感到困惑,基本上兩台伺服器都安裝了 SQL 和叢集服務,透過叢集服務的命令,您可以將 SQL 從一台伺服器「滾動」到另一台伺服器。如果我處於您的位置,我會按照您的建議進行操作,將所有服務滾動到一個節點,從叢集中刪除第二個節點,添加其中一台新伺服器作為叢集節點,將所有服務滾動到新叢集節點,新增第二個新節點,從叢集中刪除第二個舊節點。

**請注意,如果您不熟悉叢集服務和/或叢集 SQL 安裝,並且您在即時系統上嘗試執行此操作,這可能會為您帶來非常非常糟糕的結果。比計劃的停機時間要糟糕得多。我要么聘請一位具有叢集經驗的顧問,要么如果這不是一個選項,則設定一個測試環境,它可以從內到外測試流程。

這裡是將節點新增至叢集的步驟的連結。

答案3

除非您想再次使用硬件,否則根本不需要破壞舊叢集。我會推薦以下內容:

  • 使用新刀片建立新集群
  • 在新叢集上安裝 SQL,保持磁碟機號碼、路徑、連接埠和實例名稱(如果適用)相同
  • 安裝後,將 master 和 msdb 資料庫從舊 SQL Server 還原/替換到新 SQL Server 以取得登入名稱和作業,或在舊 SQL Server 上編寫作業腳本並使用 sp_help_revlogins
  • 將資料庫從舊伺服器日誌傳送或鏡像到新伺服器以取得最新數據

這將使您的新實例處於與舊實例相同的狀態,並全新安裝作業系統和 SQL。為了切換到新集群,您可以執行以下操作,假設舊實例的名稱為 INSTA,新實例的名稱為 INSTB:

  • 使舊的 SQL 實例離線
  • 恢復新伺服器上的資料庫
  • 從 Active Directory 的 DNS 中刪除 INSTA DNS 記錄
  • 在 Active Directory DNS 中建立指向 INSTB 的新 CNAME(別名)DNS 記錄

完成此操作後,應用程式應該會連接 SQL 實例的舊名稱,但這會將它們帶到新伺服器。您可能需要在所有應用程式伺服器上執行“ipconfig /flushdns”,以便使 DNS 變更更快進行,請確保對舊名稱執行 ping 操作以查看何時返回。我們使用此方法進行切換,因為它允許我們保留舊集群,以防需要回滾。在將 SQL Server 網路名稱參數變更為其他名稱之前,您將無法啟動舊的 SQL 實例,但完成此操作後,如果您想回滾,只需將 DNS 別名指向舊的執行個體即可。

答案4

在不了解硬體的具體情況以了解這是否可行的情況下,我的建議是將舊的被動節點映像到新伺服器。使用像 Acronis 這樣允許將映像放置在新硬體上的東西應該​​可以讓您基本上將被動節點移動到新硬體上。一旦到達那裡,您就可以啟動它並驗證它是否正常運作(盡可能),然後嘗試將其故障轉移到新硬體。正如 Jim B 所說,儘管有很多事情可能會出錯,但很有可能它會正確故障轉移到新硬件,或者無法工作而只能返回到舊硬體。如果有效,那麼您可以在另一個節點上重複此過程。如果沒有,您可以重新啟動舊的被動節點(您不必破壞它),然後嘗試其他操作。

相關內容