為 Linux 上的 SQL Server 部署 Pacemaker 叢集

適用於:Linux 上的 SQL Server

本教學說明部署 Linux Pacemaker 叢集以支援 SQL Server Always On 可用性群組(AG)或故障轉移叢集實例(FCI)所需的任務。 與緊密耦合的 Windows Server / SQL Server 堆疊不同,你可以在安裝 SQL Server 前後,在 Linux 上建立 Pacemaker 叢集並設定可用性群組(AG)。 叢集設定完成後,您需要為 AG 或 FCI 部署的 Pacemaker 部分配置整合與資源。

Important

叢集類型為 None 的 AG 不需要 Pacemaker 叢集,也無法由 Pacemaker 管理。

  • 安裝高可用性附加元件並安裝 Pacemaker。
  • 準備 Pacemaker 的節點 (僅限 RHEL 和 Ubuntu)。
  • 建立 Pacemaker 叢集。
  • 安裝 SQL Server HA 套件。

Note

從 SQL Server 2025(17.x)開始,SUSE Linux Enterprise Server(SLES)不再支援。

先決條件

安裝 Linux 上的 SQL Server。

安裝高可用性插件

使用下列語法,為每個 Linux 發行版安裝高可用性 (HA) 附加元件所需的套件。

叢集中的每個節點都必須擁有適當的 RHEL 及高可用性附加元件訂閱。 欲檢視需求,請參閱 《如何在 Red Hat Enterprise Linux 安裝高可用性叢集套件》。 請遵循以下步驟來設定訂用帳戶和存放庫:

  1. 註冊系統。

    sudo subscription-manager register
    

    輸入您的使用者名稱和密碼。

  2. 列出可用來註冊的集區。

    sudo subscription-manager list --available
    

    Note

    對於 RHEL 10,請使用以下指令:

    sudo subscription-manager repos --list
    

    從可用集區的清單中,記下高可用性訂用帳戶的集區識別碼。

  3. 更新下列指令碼。 將<pool id>替換為上一個步驟中的高可用性集區識別碼。 執行指令碼以附加訂用帳戶。

    sudo subscription-manager attach --pool=<pool id>
    
  4. 啟用存放庫。

    RHEL 8

    sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms
    

    雷爾 9

    sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms
    

    雷爾 10

    sudo subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-rpms
    
  1. 安裝 Pacemaker。

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    

準備 Pacemaker 的節點 (僅限 RHEL 和 Ubuntu)

Pacemaker 使用一個名為 hacluster的使用者。 在 RHEL 和 Ubuntu 上,HA 外掛安裝會產生這個使用者。

  1. 在每台將作為 Pacemaker 叢集節點的伺服器上,建立叢集所使用的使用者密碼。 範例中使用了名稱 hacluster,但你可以使用任何名稱。 Pacemaker 叢集中的所有節點必須使用相同的名稱與密碼。

    sudo passwd hacluster
    
  2. 在每個將成為 Pacemaker 叢集一部分的節點上,啟用並啟動 pcsd 服務,執行以下指令(RHEL 和 Ubuntu)。

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    

    接著執行以下指令,確保 pcsd 已啟動。

    sudo systemctl status pcsd
    
  3. 在 Pacemaker 叢集中啟用每個可用節點的 Pacemaker 服務。

    sudo systemctl enable pacemaker
    

    在 Ubuntu 上,你會看到以下錯誤。

    pacemaker Default-Start contains no runlevels, aborting.
    

    此錯誤是已知的問題。 儘管有錯誤,啟用心臟起搏器服務仍是成功的。

  4. 接下來,建立並啟動 Pacemaker 叢集。 在此步驟中,RHEL 和 Ubuntu 有一項差異。 在兩個發行版中,安裝 pcs 會設定 Pacemaker 叢集的預設設定檔,但在 RHEL 執行此指令會移除所有現有設定並建立新的叢集。

建立 Pacemaker 叢集

本節說明如何為每個 Linux 發行版建立與配置叢集。

  1. 授權節點。 在這些例子中, <NodeX> 是每個節點的名稱。 請在提示時,手動輸入 hacluster 的使用者名稱和密碼。

    sudo pcs host auth <Node1> <Node2> <Node3>
    
  2. 建立叢集。 在這個例子中, PMClusterName 是你為 Pacemaker 叢集指派的名稱。

    sudo pcs cluster setup <PMClusterName> <Node1> <Node2> <Node3>
    
  3. 在所有節點上啟動叢集。

    sudo pcs cluster start --all
    
  4. 讓叢集在電腦啟動時啟動。

    sudo pcs cluster enable --all
    
  5. 確認叢集狀態。

    sudo pcs status
    

安裝 SQL Server HA

如果 SQL Server HA 套件尚未安裝,請使用以下指令安裝。 如果你在安裝 SQL Server 後才安裝 HA 套件,必須重新啟動 SQL Server 才能生效。 這些指令假設 Microsoft 套件的儲存庫已經設置好,因為此時應該已經安裝了 SQL Server。

  • 其他可選的 Linux 上的 SQL Server 套件,SQL Server Full-Text 搜尋(mssql-server-fts)和 SQL Server Integration Services(mssql-server-is),對於 FCI 或 AG 來說,都不是高可用性的必要條件。
sudo yum install mssql-server-ha
sudo systemctl restart mssql-server

後續步驟

在本教學課程中,您已了解如何為 Linux 上的 SQL Server 部署 Pacemaker 叢集。 您已學到如何做到以下幾點:

  • 安裝高可用性附加元件並安裝 Pacemaker。
  • 準備 Pacemaker 的節點 (僅限 RHEL 和 Ubuntu)。
  • 建立 Pacemaker 叢集。
  • 安裝 SQL Server HA 套件。

若要為 Linux 上的 SQL Server 建立和設定可用性群組,請參閱: