SLES 上 SAP HANA 高可用性叢集擴充設定指南

本指南說明如何為 Google Cloud上的 SAP HANA 擴充系統,部署及設定效能最佳化的 SUSE Linux Enterprise Server (SLES) 高可用性 (HA) 叢集。

本指南包含下列步驟:

  • 設定內部直通式網路負載平衡器,在發生失敗時重新導向流量
  • 在 SLES 上設定 Pacemaker 叢集,以便在容錯移轉期間管理 SAP 系統和其他資源

本指南也包含設定 SAP HANA 系統複製功能的步驟,但請參閱 SAP 說明文件,取得明確的操作說明。

如要部署沒有 Linux 高可用性叢集或待命節點主機的 SAP HANA 系統,請改用 SAP HANA 部署指南

如要在 Red Hat Enterprise Linux (RHEL) 上為 SAP HANA 設定 HA 叢集,請參閱 RHEL 上 SAP HANA 向上擴充 HA 叢集設定指南

本指南適用對象為進階 SAP HANA 使用者,其熟悉如何針對 SAP HANA 進行 Linux 高可用性設定。

本指南部署的系統

您將按照本指南的說明,部署兩個 SAP HANA 執行個體,並在 SLES 上設定 HA 叢集。您可以在相同區域內的不同區域中,將每個 SAP HANA 執行個體部署在 Compute Engine VM 上。本指南不涵蓋 SAP NetWeaver 的高可用性安裝作業。

適用單一節點 SAP HANA 擴充系統的高可用性 Linux 叢集總覽

已部署叢集包含下列功能和特色:

  • 兩個主機 VM,每個 VM 都有一個 SAP HANA 執行個體
  • 同步 SAP HANA 系統複製功能。
  • Pacemaker 高可用性叢集資源管理員。
  • STONITH 防護機制。
  • 自動將故障的執行個體重新啟動為新的次要執行個體。

本指南會說明如何使用 Google Cloud 提供的 Cloud Deployment Manager 範本,部署 Compute Engine 虛擬機器 (VM) 和 SAP HANA 執行個體,確保 VM 和基礎 SAP HANA 系統符合 SAP 支援需求,並遵循目前的最佳做法。

本指南會使用 SAP HANA Studio 測試 SAP HANA 系統複製功能。如有需要,您可以改用 SAP HANA 主控台。如要瞭解如何安裝 SAP HANA Studio,請參閱:

事前準備

建立 SAP HANA 高可用性叢集前,請確保符合下列必備條件:

建立網路

基於安全性考量,請建立新的網路。您可以新增防火牆規則或使用另一個存取權控管方法,藉此控管具有存取權的對象。

如果您的專案具有預設的虛擬私有雲網路,請勿使用。請建立您自己專屬的虛擬私有雲網路,確保系統只套用您明確建立的防火牆規則。

在部署期間,Compute Engine 執行個體通常需要網際網路的存取權,才能下載 Google Cloud的 SAP 代理程式。如果您使用 Google Cloud提供的其中一種 SAP 認證 Linux 映像檔,則計算機執行個體也需要存取網際網路,才能註冊憑證並且存取 OS 供應商存放區。具有 NAT 閘道和 VM 網路標記的設定即可支援上述存取需求,即便目標運算執行個體沒有外部 IP 也沒關係。

如要設定網路:

控制台

  1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下「建立虛擬私有雲網路」
  3. 輸入網路的名稱

    名稱必須遵守命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。

  4. 在 [Subnet creation mode] (子網路建立模式) 中,選擇 [Custom]。
  5. 在「New subnet」(新子網路) 部分,指定子網路的以下設定參數:
    1. 輸入子網路的「名稱」
    2. 在「區域」中,選取要建立子網路的 Compute Engine 區域
    3. 針對「IP 堆疊類型」,請選取「IPv4 (單一堆疊)」,然後以 CIDR 格式輸入 IP 位址範圍,例如 10.1.0.0/24

      這是子網路的主要 IPv4 範圍。如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

    4. 按一下「完成」
  6. 如要新增其他子網路,請按一下「Add subnet」(新增子網路),然後重複上述步驟。建立網路後,您可以新增更多子網路。
  7. 按一下 [建立]。

gcloud

  1. 前往 Cloud Shell。

    前往 Cloud Shell

  2. 如要在自訂子網路模式中建立新的網路,請執行:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    請將 NETWORK_NAME 替換為新網路的名稱。名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。

    指定 --subnet-mode custom 以避免使用預設的自動模式,不然系統會自動在每個 Compute Engine 地區建立子網路。詳情請參閱「子網路建立模式」。

  3. 建立子網路,並指定地區和 IP 範圍。
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    更改下列內容:

    • SUBNETWORK_NAME:新子網路的名稱
    • NETWORK_NAME:您在上一個步驟中建立的網路名稱
    • REGION:您希望子網路所在的區域
    • RANGE以 CIDR 格式指定的 IP 位址範圍,例如 10.1.0.0/24

      如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

  4. (選用) 重複上述步驟以新增其他子網路。

設定 NAT 閘道

如果您需要建立一或多個沒有公開 IP 位址的 VM,就必須使用網路位址轉譯 (NAT),讓 VM 能夠存取網際網路。使用 Cloud NAT,這是一項 Google Cloud 分散式軟體定義的受控服務,可讓 VM 將傳出封包傳送至網際網路,並接收任何相應的已建立傳入回應封包。或者,您也可以設定個別的 VM 做為 NAT 閘道。

如要為專案建立 Cloud NAT 執行個體,請參閱「使用 Cloud NAT」。

為專案設定 Cloud NAT 後,VM 執行個體就能在不使用公開 IP 位址的情況下,安全地存取網際網路。

新增防火牆規則

根據預設,「默示的防火牆規則」會封鎖從虛擬私有雲 (VPC) 網路之外連入的連線。如要允許連入的連線,請為 VM 設定防火牆規則。與 VM 建立連入連線後,系統會允許該連線上雙向的流量。

您也可以建立防火牆規則,允許外部存取指定的通訊埠,或限制相同網路上 VM 之間的存取。若使用 default 虛擬私人雲端網路類型,一些其他的預設規則也適用,例如 default-allow-internal 規則,允許相同網路中 VM 之間所有通訊埠的連線。

根據適用於環境的 IT 政策,您可能需要區隔或限制資料庫主機的連線,這些功能可以透過建立防火牆規則來完成。

根據您的情境,您可以建立防火牆規則,允許下列項目存取:

  • 列於所有 SAP 產品的 TCP/IP 中的預設 SAP 通訊埠。
  • 從電腦或公司網路環境到 Compute Engine VM 執行個體的連線。如果不確定要使用哪一個 IP 位址,請詢問貴公司的網路管理員。
  • SAP HANA 子網路中 VM 之間的通訊,包括 SAP HANA 擴充系統中節點之間的通訊,或 3 層架構中資料庫伺服器和應用程式伺服器之間的通訊。您可以建立防火牆規則,允許來自子網路的流量,藉此啟用 VM 之間的通訊。

建立防火牆規則的步驟如下:

主控台

  1. 在 Google Cloud 控制台中,前往「VPC network」(虛擬私有雲網路) 「Firewall」(防火牆) 頁面。

    前往「Firewall」(防火牆)

  2. 按一下頁面頂端的 [Create firewall rule] (建立防火牆規則)

    • 在「Network」(網路) 欄位中,選取您 VM 所在的網路。
    • 在「Targets」欄位中,指定此規則適用的 Google Cloud資源。例如,指定「All instances in the network」(網路中的所有執行個體),或者,如要將規則限制於 Google Cloud上的特定執行個體,請在「Specified target tags」(指定的目標標記) 中輸入標記。
    • 在「Source filter」(來源篩選器) 欄位中選取下列其中一項:
      • 「IP ranges」(IP 範圍) - 允許來自特定 IP 位址連入的流量。請在「Source IP ranges」(來源 IP 範圍) 欄位中指定 IP 位址的範圍。
      • 「Subnets」(子網路) - 允許來自特定子網路的連入流量。請在隨後的「Subnets」(子網路) 欄位中指定子網路名稱。您可以使用這個選項允許 3 層或向外擴充設定中 VM 之間的存取作業。
    • 在「Protocols and ports」(通訊協定和通訊埠) 區段中,選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後輸入 tcp:PORT_NUMBER
  3. 按一下 [Create] (建立) 以建立您的防火牆規則。

gcloud

使用下列指令建立防火牆規則:

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

部署 VM 和 SAP HANA

開始設定 HA 叢集之前,請定義並部署 VM 執行個體和 SAP HANA 系統,這些系統會做為 HA 叢集中的主要和次要節點。

如要定義及部署系統,請使用 SAP HANA 部署指南中用來部署 SAP HANA 系統的 Cloud Deployment Manager 範本。

不過,如果要部署兩個系統,而非一個,您必須複製並貼上第一個系統的定義,將第二個系統的定義新增至設定檔。建立第二個定義後,您需要變更第二個定義中的資源和執行個體名稱。如要防範可用區故障,請指定同區域中的其他可用區。這兩個定義中的所有其他屬性值都保持不變。

成功部署 SAP HANA 系統後,您就可以定義及設定 HA 叢集。

以下操作說明使用的是 Cloud Shell,不過這些步驟通常也適用於 Google Cloud CLI。

  1. 確認目前的永久磁碟和 CPU 等資源配額足夠您即將安裝的 SAP HANA 系統使用。如果配額不足則會部署失敗。如要瞭解 SAP HANA 配額需求,請參閱 SAP HANA 的定價與配額考量事項一文。

    前往「配額」頁面

  2. 開啟 Cloud Shell;如果您在本機工作站上安裝了 gcloud CLI,請開啟終端機。

    前往 Cloud Shell

  3. 在 Cloud Shell 或 gcloud CLI 中輸入以下指令,將 SAP HANA 高可用性叢集的 template.yaml 設定檔範本下載到您的工作目錄:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml
  4. 或者,您也可以重新命名 template.yaml 檔案,藉此識別該檔案定義的設定。

  5. 在 Cloud Shell 程式碼編輯器中開啟 template.yaml 檔案;如果您目前使用 gcloud CLI,請選擇您要用的文字編輯器。

    如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆圖示。

  6. template.yaml 檔案中,完成主要 SAP HANA 系統的定義。使用安裝作業的值取代括號及其內容,即可指定屬性值。屬性說明如下表所示。

    如果要在不安裝 SAP HANA 的情況下建立 VM 執行個體,請刪除以 sap_hana_ 開頭的所有資料行。

    屬性 資料類型 說明
    類型 字串

    指定在部署期間要使用的 Deployment Manager 範本位置、類型和版本。

    YAML 檔案包含兩個 type 規格,其中一個已註解掉。預設啟用的 type 規格會將範本版本指定為 latest。註解掉的 type 規格會指定具有時間戳記的特定範本版本。

    如果您需要所有部署都使用相同的範本版本,請使用包含時間戳記的 type 規格。

    instanceName 字串 目前定義的 VM 執行個體名稱。在主要和次要 VM 定義中指定不同的名稱。名稱只能以小寫英文字母、數字或連字號指定。
    instanceType 字串 您需要執行 SAP HANA 的 Compute Engine 虛擬機器類型。如果您需要自訂 VM 類型,請指定預先定義的 VM 類型,並將 vCPU 數量設為最接近您所需數量的數字,但仍要大於該數字。部署完成後,請修改 vCPU 數量和記憶體容量
    zone 字串 要部署您定義的 VM 執行個體的 Google Cloud 區域。為主要和次要 HANA 定義指定同一區域中的不同區域。這些區域必須位於您為子網路選取的地區內。
    subnetwork 字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 [SHAREDVPC_PROJECT]/[SUBNETWORK]。例如:myproject/network1
    linuxImage 字串 要用於 SAP HANA 的 Linux 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置字串。例如:family/sles-15-sp1-sap。如要指定特定映像檔,請只指定映像檔名稱。如需可用映像檔和系列的清單,請參閱 Google Cloud 主控台中的「映像檔」頁面。
    linuxImageProject 字串 您要使用的映像檔所在的 Google Cloud 專案。這個專案可能是您自有的專案或 Google Cloud 映像檔專案,例如 suse-sap-cloud。如要進一步瞭解 Google Cloud 映像檔專案,請參閱 Compute Engine 說明文件中的「映像檔」頁面。
    sap_hana_deployment_bucket 字串 專案中 Google Cloud 儲存空間值區的名稱,其中包含您在上一個步驟中上傳的 SAP HANA 安裝檔案和修訂檔案。值區中的所有升級修訂檔案都會在部署期間中套用至 SAP HANA。
    sap_hana_sid 字串 SAP HANA 系統 ID (SID)。ID 必須包含 3 個英數字元,並以字母開頭。所有字母都必須大寫。
    sap_hana_instance_number 整數 SAP HANA 系統的執行個體編號,從 0 到 99。預設值為 0。
    sap_hana_sidadm_password 字串 作業系統 (OS) 管理員的密碼。密碼至少必須為 8 個字元,並包含至少 1 個大寫字母、1 個小寫字母與 1 個數字。
    sap_hana_system_password 字串 資料庫超級使用者的密碼。密碼至少必須為 8 個字元,並包含至少 1 個大寫字母、1 個小寫字母與 1 個數字。
    sap_hana_sidadm_uid 整數 SID_LCadm 使用者 ID 的預設值為 900,可避免使用者建立的群組與 SAP HANA 發生衝突。如有需要,您可以將這個值變更為其他值。
    sap_hana_sapsys_gid 整數 sapsys 的預設群組 ID 為 79。您可以指定上述值,將這個值覆寫為自己的需求。
    sap_hana_scaleout_nodes 整數 指定 0。這些操作說明僅適用於向上擴充 SAP HANA 系統。
    networkTag 字串 代表您 VM 執行個體的網路標記,供防火牆或轉送使用。如果您指定 publicIP: No 但未指定網路標記,請務必提供其他能存取網際網路的方式。
    nic_type 字串 選用,但如果目標機器和 OS 版本提供此選項,則建議使用。指定要與 VM 執行個體搭配使用的網路介面。您可以指定 GVNICVIRTIO_NET 值。如要使用 Google Virtual NIC (gVNIC),您必須指定支援 gVNIC 的 OS 映像檔,做為 linuxImage 屬性的值。如需作業系統映像檔清單,請參閱「作業系統詳細資料」。

    如果您未為此屬性指定值,系統會根據您為 instanceType 屬性指定的機器類型,自動選取網路介面。

    這個引數適用於 Deployment Manager 範本 202302060649 以上版本。
    publicIP 布林值 (非必要) 指定是否要將公開 IP 位址加到您的 VM 執行個體。預設為 Yes
    serviceAccount 字串 (非必要) 指定主機 VM 和主機 VM 上執行的程式要使用的服務帳戶。指定服務帳戶的電子郵件地址。例如 svc-acct-name@project-id.iam.gserviceaccount.com。根據預設,系統會使用 Compute Engine 預設服務帳戶。詳情請參閱「Google Cloud 中的 SAP 程式身分與存取權管理」。 Google Cloud
  7. 建立次要 SAP HANA 系統的定義,方法是複製主要 SAP HANA 系統的定義,然後將複本貼在主要 SAP HANA 系統定義後方。請參考以下步驟的範例。

  8. 在次要 SAP HANA 系統的定義中,為下列屬性指定與主要 SAP HANA 系統定義中不同的值:

    • name
    • instanceName
    • zone

  9. 建立執行個體:

    gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml

    上述指令會叫用 Deployment Manager,依據 template.yaml 檔案中的規格部署 VM、從儲存空間值區下載 SAP HANA 軟體,並安裝 SAP HANA。

    部署處理程序分為兩個階段。在第一階段,Deployment Manager 會將其狀態寫入主控台。在第二階段,部署指令碼會將狀態寫入 Cloud Logging。

完整 template.yaml 設定檔範例

以下範例顯示已完成的 template.yaml 設定檔,該檔案會部署兩個 VM 執行個體,並安裝 SAP HANA 系統。

這個檔案包含兩個要部署的資源定義:sap_hana_primarysap_hana_secondary。每個資源定義都包含 VM 和 SAP HANA 執行個體的定義。

sap_hana_secondary 資源定義是透過複製及貼上第一個定義,然後修改 nameinstanceNamezone 屬性的值而建立。這兩個資源定義中的所有其他屬性值都相同。

屬性 networkTagserviceAccountsap_hana_sidadm_uidsap_hana_sapsys_gid 來自設定檔範本的「進階選項」部分。屬性 sap_hana_sidadm_uidsap_hana_sapsys_gid 會納入,以顯示其預設值,因為屬性已註解掉。

resources:
- name: sap_hana_primary
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: hana-ha-vm-1
    instanceType: n2-highmem-32
    zone: us-central1-a
    subnetwork: example-subnet-us-central1
    linuxImage: family/sles-15-sp1-sap
    linuxImageProject: suse-sap-cloud
    sap_hana_deployment_bucket: hana2-sp4-rev46
    sap_hana_sid: HA1
    sap_hana_instance_number: 22
    sap_hana_sidadm_password: Tempa55word
    sap_hana_system_password: Tempa55word
    sap_hana_scaleout_nodes: 0
    networkTag: cluster-ntwk-tag
    serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com
    # sap_hana_sidadm_uid: 900
    # sap_hana_sapsys_gid: 79

- name: sap_hana_secondary
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: hana-ha-vm-2
    instanceType: n2-highmem-32
    zone: us-central1-c
    subnetwork: example-subnet-us-central1
    linuxImage: family/sles-15-sp1-sap
    linuxImageProject: suse-sap-cloud
    sap_hana_deployment_bucket: hana2-sp4-rev46
    sap_hana_sid: HA1
    sap_hana_instance_number: 22
    sap_hana_sidadm_password: Google123
    sap_hana_system_password: Google123
    sap_hana_scaleout_nodes: 0
    networkTag: cluster-ntwk-tag
    serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com
    # sap_hana_sidadm_uid: 900
    # sap_hana_sapsys_gid: 79
    

建立防火牆規則,允許存取主機 VM

如果您尚未建立防火牆規則,請建立防火牆規則,允許從下列來源存取每個主機 VM:

  • 設定本機工作站、防禦主機或跳板伺服器
  • 叢集節點之間的存取權,以及 HA 叢集中的其他主機 VM

建立 VPC 防火牆規則時,您必須指定在 template.yaml 設定檔中定義的網路標記,將主機 VM 指定為規則的目標。

如要驗證部署作業,請定義規則,允許防禦主機或本機工作站透過通訊埠 22 建立 SSH 連線。

如要允許叢集節點之間的存取權,請新增防火牆規則,允許同一個子網路中其他 VM 的所有連接埠上的所有連線類型。

請務必先建立用於驗證部署作業和叢集內通訊的防火牆規則,再繼續閱讀下一節。如需操作說明,請參閱「新增防火牆規則」。

驗證 VM 和 SAP HANA 的部署作業

如要驗證部署作業,您可以檢查 Cloud Logging 中的部署記錄,並檢查主要與次要主機 VM 上的磁碟和服務。

  1. 在 Google Cloud 控制台中開啟 Cloud Logging,監控安裝進度及檢查錯誤。

    前往 Cloud Logging

  2. 篩選記錄:

    記錄檔探索工具

    1. 在「Logs Explorer」頁面中,前往「查詢」窗格。

    2. 在「Resource」下拉式選單中,選取「Global」,然後點選「Add」

      如果找不到「Global」選項,請在查詢編輯器中輸入以下查詢:

      resource.type="global"
      "Deployment"
      
    3. 點選「執行查詢」

    舊版記錄檢視器

    • 在「Legacy Logs Viewer」頁面中,從基本選取器選單中選取「Global」做為記錄資源。
  3. 分析篩選過的記錄:

    • 如果顯示 "--- Finished",表示部署程序已完成,您可以繼續進行下一個步驟。
    • 如果畫面顯示配額錯誤:

      1. 在 IAM 和管理員「Quotas」(配額) 頁面上,增加 SAP HANA 規劃指南中所列出不符 SAP HANA 規定的任何配額。

      2. 在 Deployment Manager「Deployments」(部署) 頁面上,刪除部署以清除安裝失敗的 VM 與永久磁碟。

      3. 重新執行部署。

檢查 VM 和 SAP HANA 的設定

  1. SAP HANA 系統部署後如沒有任何錯誤,請使用 SSH 連線到 VM。您可以從 Compute Engine 的「VM instances」(VM 執行個體) 頁面按一下 VM 執行個體的 SSH 按鈕,或者使用您偏好的 SSH 方法。

    Compute Engine VM 執行個體頁面中的 [SSH] 按鈕。

  2. 變更為超級使用者:

    $ sudo su -
  3. 在命令提示字元中輸入 df -h。請確認每個 VM 都顯示 /hana 目錄,例如 /hana/data

    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/sda2                          30G  4.0G   26G  14% /
    devtmpfs                          126G     0  126G   0% /dev
    tmpfs                             126G     0  126G   0% /dev/shm
    tmpfs                             126G   17M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda1                         200M  9.7M  191M   5% /boot/efi
    /dev/mapper/vg_hana-shared        251G   49G  203G  20% /hana/shared
    /dev/mapper/vg_hana-sap            32G  240M   32G   1% /usr/sap
    /dev/mapper/vg_hana-data          426G  7.0G  419G   2% /hana/data
    /dev/mapper/vg_hana-log           125G  4.2G  121G   4% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G   33M  512G   1% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/899
    tmpfs                              26G     0   26G   0% /run/user/1000
  4. 將以下指令中的 SID_LC 替換為您在設定檔範本中指定的系統 ID,以變更 SAP 管理員使用者。請使用小寫字母。

    # su - SID_LCadm
  5. 輸入下列指令,確定 hdbnameserverhdbindexserver 和其他 SAP HANA 服務都在執行個體上執行:

    > HDB info
  6. 如果您使用的是 RHEL for SAP 9.0 以上版本,請務必在 VM 執行個體上安裝 chkconfigcompat-openssl11 套件。

    如需 SAP 的更多資訊,請參閱 SAP 附註 3108316 - Red Hat Enterprise Linux 9.x:安裝和設定

驗證 Google Cloud的 Agent for SAP 安裝狀態

部署 VM 並安裝 SAP 系統後,請確認Google Cloud的 SAP 代理程式是否正常運作。

確認 Google Cloud的 Agent for SAP 是否正在執行

如要確認代理程式是否正在執行,請按照下列步驟操作:

  1. 建立與 Compute Engine 執行個體的 SSH 連線。

  2. 執行下列指令:

    systemctl status google-cloud-sap-agent

    如果代理程式運作正常,輸出內容就會包含 active (running)。例如:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

如果代理程式未執行,請重新啟動代理程式

確認 SAP Host Agent 正在接收指標

如要確認Google Cloud的 Agent for SAP 是否收集基礎架構指標,並正確傳送至 SAP Host Agent,請按照下列步驟操作:

  1. 在 SAP 系統中輸入交易 ST06
  2. 在「Overview」(總覽) 窗格中,查看以下欄位的可用性和內容,確認 SAP 和 Google 監控基礎架構已做好正確的端對端設定:

    • 雲端服務供應商Google Cloud Platform
    • Enhanced Monitoring Access (強化版監控功能存取權)TRUE
    • Enhanced Monitoring Details (強化版監控功能詳細資料)ACTIVE

設定 SAP HANA 監控

您也可以使用Google Cloud的 SAP 代理程式監控 SAP HANA 執行個體。自 2.0 版起,您可以設定代理程式收集 SAP HANA 監控指標,然後將指標傳送至 Cloud Monitoring。Cloud Monitoring 可讓您建立資訊主頁,以圖表呈現這些指標,並依據指標門檻設定快訊等。

如要進一步瞭解如何使用Google Cloud的 SAP 代理程式收集 SAP HANA 監控指標,請參閱「SAP HANA 監控指標收集」一文。

停用 SAP HANA 自動啟動

針對叢集中的每個 SAP HANA 執行個體,請確認已停用 SAP HANA 自動啟動功能。針對備援,Pacemaker 會管理叢集中 SAP HANA 執行個體的啟動和停止作業。

  1. SID_LCadm 身分在每個主機上停止 SAP HANA:

    > HDB stop
  2. 在每個主機上,使用編輯器 (例如 vi) 開啟 SAP HANA 設定檔:

    vi /usr/sap/SID/SYS/profile/SID_HDBINST_NUM_HOST_NAME
  3. Autostart 屬性設為 0

    Autostart=0
  4. 儲存設定檔。

  5. SID_LCadm 身分在每個主機上啟動 SAP HANA:

    > HDB start

啟用 SAP HANA 快速重新啟動功能

Google Cloud 強烈建議您為每個 SAP HANA 執行個體啟用 SAP HANA 快速重新啟動功能,尤其是較大的執行個體。如果 SAP HANA 終止,但作業系統仍在執行,SAP HANA 快速重新啟動功能可縮短重新啟動時間。

根據 Google Cloud 提供的自動化指令碼設定,作業系統和核心設定已支援 SAP HANA 快速重新啟動。您需要定義 tmpfs 檔案系統,並設定 SAP HANA。

如要定義 tmpfs 檔案系統並設定 SAP HANA,您可以按照手動步驟操作,也可以使用Google Cloud 提供的自動化指令碼啟用 SAP HANA 快速重新啟動功能。詳情請參閱:

如需 SAP HANA 快速重新啟動功能的完整操作說明,請參閱 SAP HANA 快速重新啟動選項說明文件

手動步驟

設定 tmpfs 檔案系統

主機 VM 和基礎 SAP HANA 系統成功部署後,您需要在 tmpfs 檔案系統中為 NUMA 節點建立及掛載目錄。

顯示 VM 的 NUMA 拓撲

您必須先瞭解 VM 有多少個 NUMA 節點,才能對應必要的 tmpfs 檔案系統。如要顯示 Compute Engine VM 上的可用 NUMA 節點,請輸入下列指令:

lscpu | grep NUMA

舉例來說,m2-ultramem-208 VM 類型有四個 NUMA 節點,編號為 0 到 3,如以下範例所示:

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
建立 NUMA 節點目錄

為 VM 中的每個 NUMA 節點建立目錄,並設定權限。

舉例來說,如果有四個 NUMA 節點,編號為 0 到 3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
將 NUMA 節點目錄掛接至 tmpfs

掛接 tmpfs 檔案系統目錄,並使用 mpol=prefer 為每個目錄指定 NUMA 節點偏好設定:

SID 請使用大寫英文字母指定 SID。

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
更新「/etc/fstab

為確保掛接點在作業系統重新啟動後可供使用,請在檔案系統表格 /etc/fstab 中新增項目:

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,nofail,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,nofail,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,nofail,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,nofail,relatime,mpol=prefer:3

選用:設定記憶體用量限制

tmpfs 檔案系統可動態擴充及縮減。

如要限制 tmpfs 檔案系統使用的記憶體,您可以使用 size 選項為 NUMA 節點磁碟機容納的大小設定限制。例如:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

您也可以在 global.ini 檔案的 [memorymanager] 區段中設定 persistent_memory_global_allocation_limit 參數,為特定 SAP HANA 例項和特定伺服器節點的所有 NUMA 節點限制整體 tmpfs 記憶體用量。

快速重新啟動的 SAP HANA 設定

如要設定 SAP HANA 以便快速重新啟動,請更新 global.ini 檔案,並指定要儲存在永久性記憶體中的資料表。

更新 global.ini 檔案中的 [persistence] 區段

設定 SAP HANA global.ini 檔案中的 [persistence] 區段,以參照 tmpfs 位置。請使用半形分號分隔每個 tmpfs 位置:

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

上述範例為四個 NUMA 節點指定四個記憶體磁碟區,對應至 m2-ultramem-208。如果您在 m2-ultramem-416 上執行,則需要設定八個記憶體磁區 (0..7)。

修改 global.ini 檔案後,請重新啟動 SAP HANA。

SAP HANA 現在可以使用 tmpfs 位置做為永久記憶體空間。

指定要儲存在永久性記憶體中的資料表

指定要儲存在永久性記憶體中的特定資料欄資料表或分區。

舉例來說,如要為現有資料表開啟持久性記憶體,請執行 SQL 查詢:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

如要變更新資料表的預設值,請在 indexserver.ini 檔案中新增 table_default 參數。例如:

[persistent_memory]
table_default = ON

如要進一步瞭解如何控制資料欄、資料表,以及哪些監控檢視畫面可提供詳細資訊,請參閱「SAP HANA 永久記憶體」。

自動化步驟

Google Cloud 提供的自動化指令碼可啟用 SAP HANA 快速重新啟動功能,並修改目錄 /hana/tmpfs*、檔案 /etc/fstab 和 SAP HANA 設定。執行指令碼時,您可能需要執行額外步驟,具體取決於這是 SAP HANA 系統的初始部署作業,還是將機器大小調整為不同的 NUMA 大小。

如要初始部署 SAP HANA 系統,或調整機器大小以增加 NUMA 節點數量,請務必在執行 Google Cloud提供的自動化指令碼時,讓 SAP HANA 執行,以便啟用 SAP HANA 快速重新啟動功能。

當您調整機器大小以減少 NUMA 節點數時,請務必在執行 Google Cloud 提供的自動化指令碼時,停止 SAP HANA,以便啟用 SAP HANA 快速重新啟動功能。執行指令碼後,您必須手動更新 SAP HANA 設定,才能完成 SAP HANA 快速重新啟動設定。詳情請參閱「SAP HANA 快速重新啟動設定」。

如要啟用 SAP HANA 快速重新啟動功能,請按照下列步驟操作:

  1. 與主機 VM 建立 SSH 連線。

  2. 切換至根目錄:

    sudo su -

  3. 下載 sap_lib_hdbfr.sh 指令碼:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. 將檔案設為可執行檔:

    chmod +x sap_lib_hdbfr.sh
  5. 確認指令碼沒有錯誤:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    如果指令傳回錯誤,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解如何與客戶服務團隊聯絡,請參閱「取得 SAP 支援 Google Cloud」一文。

  6. 請先為 SAP HANA 資料庫的系統使用者,替換 SAP HANA 系統 ID (SID) 和密碼,再執行指令碼。為確保密碼安全,建議您在 Secret Manager 中使用密鑰。

    使用 Secret Manager 中的密鑰名稱執行指令碼。這個機密金鑰必須存在於包含主機 VM 執行個體的 Google Cloud 專案中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    更改下列內容:

    • SID:請使用大寫字母指定 SID。例如:AHA
    • SECRET_NAME:指定與 SAP HANA 資料庫系統使用者密碼相對應的機密金鑰名稱。這個祕密值必須存在於 Google Cloud 專案中,且該專案包含主機 VM 執行個體。

    或者,您也可以使用純文字密碼執行指令碼。啟用 SAP HANA 快速重新啟動功能後,請務必變更密碼。我們不建議使用純文字密碼,因為密碼會記錄在 VM 的指令列記錄中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    更改下列內容:

    • SID:請使用大寫字母指定 SID。例如:AHA
    • PASSWORD:指定 SAP HANA 資料庫系統使用者的密碼。

如果初次執行成功,您應該會看到類似以下的輸出內容:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

在主要和次要 VM 上設定 SSH 金鑰

您必須在 HA 叢集中的主機之間同步 SAP HANA 安全儲存庫 (SSFS) 金鑰。為簡化同步作業,並允許在高可用性叢集中的兩個主機之間複製備份等檔案,這些操作說明會引導您在兩個主機之間建立 SSH 根目錄連線。

貴機構可能會制定內部網路通訊規範。如有需要,您可以在部署完成後,從 VM 中移除中繼資料,並從 authorized_keys 目錄中移除金鑰。

如果設定直接 SSH 連線不符合貴機構的規範,您可以使用其他方法來同步處理 SSFS 金鑰和傳輸檔案,例如:

如要啟用主要和次要執行個體之間的 SSH 連線,請按照下列步驟操作。

  1. 在主要主機 VM 上:

    1. 透過 SSH 連線至 VM。

    2. 切換至根目錄:

    $ sudo su -
    1. 以 root 身分產生安全殼層 (SSH) 金鑰。

      # ssh-keygen
    2. 更新主要 VM 的中繼資料,加入次要 VM 的安全殼層金鑰資訊。

      # gcloud compute instances add-metadata secondary-host-name \
      --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" --zone secondary-zone
    3. 授權主要 VM 對自身進行存取

      # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. 在次要主機 VM 上:

    1. 透過 SSH 連線至 VM。

    2. 切換至根目錄:

    $ sudo su -
    1. 以 root 身分產生安全殼層 (SSH) 金鑰。

      # ssh-keygen
    2. 更新次要 VM 的中繼資料,加入主要 VM 的 SSH 金鑰資訊。

      # gcloud compute instances add-metadata primary-host-name \
      --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" --zone primary-zone
    3. 將次要 VM 授權給自身

      # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    4. 開啟從次要系統到主要系統的 SSH 連線,確認 SSH 金鑰是否已正確設定。

      # ssh primary-host-name
  3. 在主要主機 VM 上以超級使用者身分,開啟與次要主機 VM 的 SSH 連線,確認連線:

    # ssh secondary-host-name

建立 SAP HANA 資料庫使用者,以便監控叢集狀態

  1. 在主要主機上,以 SID_LCadm 身分登入 SAP HANA 資料庫互動式終端機:

    > hdbsql -u system -p "system-password" -i inst_num
  2. 在互動式終端機中,建立 slehasync 資料庫使用者:

    => CREATE USER slehasync PASSWORD "hdb-user-password";
    => GRANT CATALOG READ TO slehasync;
    => GRANT MONITOR ADMIN TO slehasync;
    => ALTER USER slehasync DISABLE PASSWORD LIFETIME;
  3. SID_LCadm 身分,在 SAP HANA 安全使用者儲存庫 (hdbuserstore) 中定義 SLEHALOC 使用者索引鍵:

    > PATH="$PATH:/usr/sap/SID/HDBinst_num/exe"
    > hdbuserstore SET SLEHALOC localhost:3inst_num15 slehasync hdb-user-password

備份資料庫

建立資料庫備份,以便啟動 SAP HANA 系統複製的資料庫記錄,並建立復原點。

如果 MDC 設定中有多個租戶資料庫,請備份每個租戶資料庫。

Deployment Manager 範本會使用 /hanabackup/data/SID 做為預設備份目錄。

如要為新的 SAP HANA 資料庫建立備份,請按照下列步驟操作:

  1. 在主要主機上,切換至 SID_LCadm。指令可能會因 OS 映像檔而異。

    sudo -i -u SID_LCadm
  2. 建立資料庫備份:

    • 針對 SAP HANA 單一資料庫容器系統:

      > hdbsql -t -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"

      以下範例顯示新 SAP HANA 系統的成功回應:

      0 rows affected (overall time 18.416058 sec; server time 18.414209 sec)
    • 針對 SAP HANA 多資料庫容器系統 (MDC),請為系統資料庫和任何租用戶資料庫建立備份:

      > hdbsql -t -d SYSTEMDB -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"
      > hdbsql -t -d SID -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"

    以下範例顯示新 SAP HANA 系統的成功回應:

    0 rows affected (overall time 16.590498 sec; server time 16.588806 sec)
  3. 確認記錄模式已設為正常:

    > hdbsql -u system -p SYSTEM_PASSWORD -i INST_NUM \
      "select value from "SYS"."M_INIFILE_CONTENTS" where key='log_mode'"

    畫面上會顯示下列訊息:

    VALUE
    "normal"

啟用 SAP HANA 系統複製

啟用 SAP HANA 系統複製功能時,您必須將檔案系統 (SSFS) 上 SAP HANA 安全儲存庫的資料和金鑰檔案,從主要主機複製到次要主機。這個程序用來複製檔案的方法只是其中一種可能的方法。

  1. 在主要主機上以 SID_LCadm 身分啟用系統複製:

    > hdbnsutil -sr_enable --name=PRIMARY_HOST_NAME
  2. 在次要主機上:

    1. SID_LCadm 身分停止 SAP HANA:

      > HDB stop
    2. 以 root 身分封存現有的 SSFS 資料和金鑰檔案:

      # cd /usr/sap/SID/SYS/global/security/rsecssfs/
      # mv data/SSFS_SID.DAT data/SSFS_SID.DAT-ARC
      # mv key/SSFS_SID.KEY key/SSFS_SID.KEY-ARC
    3. 從主要主機複製資料檔案:

      # scp -o StrictHostKeyChecking=no \
      PRIMARY_HOST_NAME:/usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT \
      /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT
    4. 從主要主機複製金鑰檔案:

      # scp -o StrictHostKeyChecking=no \
      PRIMARY_HOST_NAME:/usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEY \
      /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEY
    5. 更新檔案的擁有權:

      # chown SID_LCadm:sapsys /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT
      # chown SID_LCadm:sapsys /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEY
    6. 更新檔案的權限:

      # chmod 644 /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT
      # chmod 640 /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEY
    7. SID_LCadm 身分,將次要 SAP HANA 系統註冊至 SAP HANA 系統複製:

      > hdbnsutil -sr_register --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INST_NUM \
      --replicationMode=syncmem --operationMode=logreplay --name=SECONDARY_HOST_NAME
    8. SID_LCadm 身分啟動 SAP HANA:

      > HDB start

驗證系統複製作業

在主要主機上以 SID_LCadm 的身份執行下列 Python 指令碼,確認 SAP HANA 系統複製功能是否處於啟用狀態:

$ python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py

如果複製作業設定正確,系統會在其他指標中,為 xsenginenameserverindexserver 服務顯示下列值:

  • Secondary Active StatusYES
  • Replication StatusACTIVE

此外,overall system replication status 會顯示 ACTIVE

安裝必要的 HA 套件

針對 SLES for SAP 15 SP6 以上版本,建議使用 SAPHanaSR-angi 套件。如果是 SLES for SAP 15 SP5 或更早版本,您可以使用 SAPHanaSR 套件。

  • 如要安裝 SAPHanaSR 套件,請以 root 使用者身分執行下列指令:

    zypper install SAPHanaSR
  • 如要安裝 SAPHanaSR-angi 套件,請以 root 使用者身分執行下列指令:

    1. 如果已安裝 SAPHanaSRSAPHanaSR-doc 套件,請將其移除:

      zypper remove SAPHanaSR SAPHanaSR-doc
    2. 安裝 SAPHanaSR-angi 套件:

      zypper install SAPHanaSR-angi

啟用 SAP HANA HA/DR 供應器掛鉤

SUSE 建議您啟用 SAP HANA HA/DR 供應器鉤子,讓 SAP HANA 針對特定事件傳送通知,並改善失敗偵測功能。SAP HANA HA/DR 供應器鉤子需要使用 SAPHanaSR 鉤子的 SAP HANA 2.0 SPS 03 以上版本,以及 SAPHanaSR-angi 鉤子的 SAP HANA 2.0 SPS 05 以上版本。

在主要和次要網站上完成下列步驟:

  1. SID_LCadm 身分停止 SAP HANA:

    > HDB stop

  1. 以 root 或 SID_LCadm 身分開啟 global.ini 檔案進行編輯:

    > vi /hana/shared/SID/global/hdb/custom/config/global.ini
  2. 請在 global.ini 檔案中加入下列定義:

    SLES for SAP 15 SP5 或更早版本

    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /usr/share/SAPHanaSR/
    execution_order = 1
    
    [ha_dr_provider_suschksrv]
    provider = susChkSrv
    path = /usr/share/SAPHanaSR/
    execution_order = 3
    action_on_lost = stop
    
    [trace]
    ha_dr_saphanasr = info
    

    SLES for SAP 15 SP6 以上版本

    [ha_dr_provider_susHanaSR]
    provider = susHanaSR
    path = /usr/share/SAPHanaSR-angi
    execution_order = 1
    
    [ha_dr_provider_suschksrv]
    provider = susChkSrv
    path = /usr/share/SAPHanaSR-angi
    execution_order = 3
    action_on_lost = stop
    
    [ha_dr_provider_susTkOver]
    provider = susTkOver
    path = /usr/share/SAPHanaSR-angi
    execution_order = 1
    sustkover_timeout = 30
    
    [trace]
    ha_dr_sushanasr = info
    ha_dr_suschksrv = info
    ha_dr_sustkover = info

  3. 以 root 身分執行下列指令,在 /etc/sudoers.d 目錄中建立自訂設定檔。這個新的設定檔可讓 SID_LCadm 使用者在呼叫 srConnectionChanged() 鉤子方法時存取叢集節點屬性。

    > visudo -f /etc/sudoers.d/SAPHanaSR
  4. /etc/sudoers.d/SAPHanaSR 檔案中,新增下列文字:

    SLES for SAP 15 SP5 或更早版本

    請依指示取代下列項目:

    • SITE_A:主要 SAP HANA 伺服器的網站名稱
    • SITE_B:次要 SAP HANA 伺服器的網站名稱
    • SID_LC:使用小寫字母指定的 SID
    如要查看站點名稱,您可以以超級使用者的身分,在 SAP HANA 主要伺服器或次要伺服器上執行 crm_mon -A1 | grep site 指令。
    Cmnd_Alias SOK_SITEA = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL_SITEA = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias SOK_SITEB = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL_SITEB = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SFAIL -t crm_config -s SAPHanaSR
    SID_LCadm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB

    SLES for SAP 15 SP6 以上版本

    請依指示取代下列項目:

    • SITE_A:主要 SAP HANA 伺服器的網站名稱
    • SITE_B:次要 SAP HANA 伺服器的網站名稱
    • SID_LC:使用小寫字母指定的 SID
    如要查看網站名稱,您可以以超級使用者的身分,在 SAP HANA 主要伺服器或次要伺服器上執行 crm_mon -A1 | grep site 指令。
    Cmnd_Alias SOK_SITEA = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL_SITEA = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias SOK_SITEB = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL_SITEB = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias HOOK_HELPER = /usr/bin/SAPHanaSR-hookHelper --sid=SID --case=*
    SID_LCadm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB

  5. 請確認 /etc/sudoers 檔案包含下列文字:

    • 適用於 SLES for SAP 15 SP3 以上版本:

      @includedir /etc/sudoers.d

    • 適用於 SLES for SAP 15 SP2 以下版本:

      #includedir /etc/sudoers.d

      請注意,這段文字中的 # 是語法的一環,並不表示該行是註解。

  6. SID_LCadm 身分啟動 SAP HANA:

    > HDB start

  7. 完成 SAP HANA 的叢集設定後,您可以確認鉤子在容錯測試期間是否正常運作,如「Troubleshooting the SAPHanaSR python hook」和「HA cluster takeover takes too long on HANA indexserver failure」所述。

設定 Cloud Load Balancing 容錯移轉支援功能

內部直通式網路負載平衡器服務提供容錯支援,可根據健康檢查服務將流量轉送至 SAP HANA 叢集中的有效主機。

為虛擬 IP 保留 IP 位址

虛擬 IP (VIP) 位址有時也稱為浮動 IP 位址,會追隨啟用的 SAP HANA 系統。負載平衡器會將傳送至 VIP 的流量,路由至目前代管啟用中 SAP HANA 系統的 VM。

  1. 開啟 Cloud Shell:

    前往 Cloud Shell

  2. 為虛擬 IP 保留 IP 位址。這是應用程式用來存取 SAP HANA 的 IP 位址。如果您省略 --addresses 標記,系統會為您選擇指定子網路中的 IP 位址:

    $ gcloud compute addresses create VIP_NAME \
      --region CLUSTER_REGION --subnet CLUSTER_SUBNET \
      --addresses VIP_ADDRESS

    如要進一步瞭解如何預留靜態 IP,請參閱「預留靜態內部 IP 位址」。

  3. 確認 IP 位址保留狀態:

    $ gcloud compute addresses describe VIP_NAME \
      --region CLUSTER_REGION

    您會看到類似以下範例的輸出內容:

    address: 10.0.0.19
    addressType: INTERNAL
    creationTimestamp: '2020-05-20T14:19:03.109-07:00'
    description: ''
    id: '8961491304398200872'
    kind: compute#address
    name: vip-for-hana-ha
    networkTier: PREMIUM
    purpose: GCE_ENDPOINT
    region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/addresses/vip-for-hana-ha
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-subnet-us-central1

為主機 VM 建立執行個體群組

  1. 在 Cloud Shell 中建立兩個非代管執行個體群組,並將主要主機 VM 指派給其中一個,將次要主機 VM 指派給另一個:

    $ gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE \
      --instances=PRIMARY_HOST_NAME
    $ gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE \
      --instances=SECONDARY_HOST_NAME
    
  2. 確認執行個體群組已建立:

    $ gcloud compute instance-groups unmanaged list

    您會看到類似以下範例的輸出內容:

    NAME          ZONE           NETWORK          NETWORK_PROJECT        MANAGED  INSTANCES
    hana-ha-ig-1  us-central1-a  example-network  example-project-123456 No       1
    hana-ha-ig-2  us-central1-c  example-network  example-project-123456 No       1

建立 Compute Engine 健康狀態檢查

  1. 在 Cloud Shell 中建立健康狀態檢查。針對健康狀態檢查使用的通訊埠,請選擇位於私人範圍 (49152-65535) 的通訊埠,以免與其他服務衝突。檢查間隔和逾時值會比預設值稍長,以便在 Compute Engine 即時遷移事件期間提高容錯值。如有需要,您可以調整這些值:

    $ gcloud compute health-checks create tcp HEALTH_CHECK_NAME --port=HEALTHCHECK_PORT_NUM \
      --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \
      --healthy-threshold=2
  2. 確認健康狀態檢查已建立:

    $ gcloud compute health-checks describe HEALTH_CHECK_NAME

    您會看到類似以下範例的輸出內容:

    checkIntervalSec: 10
    creationTimestamp: '2020-05-20T21:03:06.924-07:00'
    healthyThreshold: 2
    id: '4963070308818371477'
    kind: compute#healthCheck
    name: hana-health-check
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/hana-health-check
    tcpHealthCheck:
     port: 60000
     portSpecification: USE_FIXED_PORT
     proxyHeader: NONE
    timeoutSec: 10
    type: TCP
    unhealthyThreshold: 2

為健康狀態檢查建立防火牆規則

為私人範圍中的通訊埠定義防火牆規則,允許 Compute Engine 健康檢查 35.191.0.0/16130.211.0.0/22 使用的 IP 範圍存取主機 VM。詳情請參閱「建立健康狀態檢查的防火牆規則」。

  1. 如果您尚未建立網路代碼,請在主機 VM 中新增網路代碼。防火牆規則會使用這個網路標記進行健康狀態檢查。

    $ gcloud compute instances add-tags PRIMARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone PRIMARY_ZONE
    $ gcloud compute instances add-tags SECONDARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone SECONDARY_ZONE
    
  2. 如果您尚未建立防火牆規則,請建立防火牆規則來允許健康狀態檢查:

    $ gcloud compute firewall-rules create RULE_NAME \
      --network NETWORK_NAME \
      --action ALLOW \
      --direction INGRESS \
      --source-ranges 35.191.0.0/16,130.211.0.0/22 \
      --target-tags NETWORK_TAGS \
      --rules tcp:HLTH_CHK_PORT_NUM

    例如:

    gcloud compute firewall-rules create  fw-allow-health-checks \
    --network example-network \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges 35.191.0.0/16,130.211.0.0/22 \
    --target-tags cluster-ntwk-tag \
    --rules tcp:60000

設定負載平衡器和容錯移轉群組

  1. 建立負載平衡器後端服務:

    $ gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme internal \
      --health-checks HEALTH_CHECK_NAME \
      --no-connection-drain-on-failover \
      --drop-traffic-if-unhealthy \
      --failover-ratio 1.0 \
      --region CLUSTER_REGION \
      --global-health-checks
  2. 將主要執行個體群組新增至後端服務:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group PRIMARY_IG_NAME \
      --instance-group-zone PRIMARY_ZONE \
      --region CLUSTER_REGION
  3. 將次要容錯移轉執行個體群組新增至後端服務:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group SECONDARY_IG_NAME \
      --instance-group-zone SECONDARY_ZONE \
      --failover \
      --region CLUSTER_REGION
  4. 建立轉送規則。針對 IP 位址,請指定您為 VIP 預留的 IP 位址。如果您需要從下方指定的區域以外存取 SAP HANA 系統,請在定義中加入標記 --allow-global-access

    $ gcloud compute forwarding-rules create RULE_NAME \
      --load-balancing-scheme internal \
      --address VIP_ADDRESS \
      --subnet CLUSTER_SUBNET \
      --region CLUSTER_REGION \
      --backend-service BACKEND_SERVICE_NAME \
      --ports ALL

    如要進一步瞭解跨區存取 SAP HANA 高可用性系統,請參閱「內部 TCP/UDP 負載平衡」。

測試負載平衡器設定

雖然後端執行個體群組要到稍後才會註冊為健康狀態,但您可以設定監聽器來回應健康狀態檢查,藉此測試負載平衡器設定。設定事件監聽器後,如果負載平衡器設定正確,後端執行個體群組的狀態就會變更為正常。

以下各節將介紹可用來測試設定的不同方法。

使用 socat 公用程式測試負載平衡器

您可以使用 socat 公用程式,暫時監聽健康狀態檢查埠。您還是需要安裝 socat 公用程式,因為稍後設定叢集資源時會用到。

  1. 在兩個主機 VM 上以超級使用者的身分安裝 socat 公用程式:

    # zypper install -y socat

  2. 啟動 socat 程序,在健康檢查通訊埠上監聽 60 秒:

    # timeout 60s socat - TCP-LISTEN:HLTH_CHK_PORT_NUM,fork

  3. 在 Cloud Shell 中,等待幾秒讓健康檢查偵測到監聽器後,請檢查後端執行個體群組的健康狀態:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    畫面會顯示類似以下的輸出:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth

使用 22 號通訊埠測試負載平衡器

如果主機 VM 上的 SSH 連線已開啟通訊埠 22,您可以暫時編輯健康檢查器,讓它使用通訊埠 22,這個通訊埠有可回應健康檢查器的監聽器。

如要暫時使用 22 個連接埠,請按照下列步驟操作:

  1. 在主控台中按一下健康狀態檢查:

    前往「Health checks」(健康狀態檢查) 頁面

  2. 按一下 [編輯]

  3. 在「Port」欄位中,將通訊埠號碼變更為 22。

  4. 按一下「儲存」,然後等候一兩分鐘。

  5. 在 Cloud Shell 中,檢查後端執行個體群組的健康狀態:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    畫面會顯示類似以下的輸出:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth
  6. 完成後,請將健康狀態檢查通訊埠編號改回原始通訊埠編號。

設定 Pacemaker

以下程序會在 SAP HANA 專用的 Compute Engine VM 上,設定 SUSE 實作 Pacemaker 叢集。

如要進一步瞭解如何在 SLES 上設定高可用性叢集,請參閱您所用 SLES 版本的 SUSE Linux Enterprise 高可用性擴充功能說明文件。

建立 Corosync 設定檔

  1. 在主要主機上建立 Corosync 設定檔:

    1. 建立以下檔案:

       vi /etc/corosync/corosync.conf
    2. 在主要主機的 corosync.conf 檔案中,新增下列設定,並將斜體變數文字替換為您的值:

      totem {
       version: 2
       secauth: off
       crypto_hash: sha1
       crypto_cipher: aes256
       cluster_name: hacluster
       clear_node_high_bit: yes
       token: 20000
       token_retransmits_before_loss_const: 10
       join: 60
       max_messages:  20
       transport: udpu
       interface {
         ringnumber: 0
         Bindnetaddr: static-ip-of-hdb-on-this-host
         mcastport: 5405
         ttl: 1
       }
      }
      logging {
       fileline:  off
       to_stderr: no
       to_logfile: no
       logfile: /var/log/cluster/corosync.log
       to_syslog: yes
       debug: off
       timestamp: on
       logger_subsys {
         subsys: QUORUM
         debug: off
       }
      }
      nodelist {
       node {
         ring0_addr: this-host-name
         nodeid: 1
       }
       node {
         ring0_addr: other-host-name
         nodeid: 2
       }
      }
      quorum {
       provider: corosync_votequorum
       expected_votes: 2
       two_node: 1
      }
  2. 在次要主機上建立 Corosync 設定檔,方法是重複主要主機的步驟。除了 Bindnetaddr 屬性中的 HDB 靜態 IP 和 nodelist 中主機名稱的順序,每個主機的設定檔屬性值都相同。

初始化叢集

  1. 在主要主機上以超級使用者身分:

    1. 變更 hacluster 使用者的密碼:

      # passwd hacluster
    2. 初始化叢集:

      # corosync-keygen
      # crm cluster init --yes ssh
      # crm cluster init -y csync2
    3. 在主要主機上啟動 Pacemaker:

      # systemctl enable pacemaker
      # systemctl start pacemaker
  2. 在次要主機上以超級使用者身分:

    1. 變更 hacluster 使用者的密碼:

      # passwd hacluster
    2. 將次要主機加入在主要主機上初始化的叢集:

      # crm cluster join --yes ssh
      # crm cluster join -y -c primary-host-name csync2
    3. 在次要主機上啟動 Pacemaker:

      # systemctl enable pacemaker
      # systemctl start pacemaker
  3. 在任一主機上以超級使用者身分,確認叢集顯示兩個節點:

    # crm_mon -s

    畫面會顯示類似以下的輸出:

    CLUSTER OK: 2 nodes online, 0 resources configured

設定圍欄

您可以為每個主機 VM 定義叢集資源,並設定圍欄代理程式,藉此設定圍欄。

為確保在圍欄動作後的事件順序正確,您還可以設定作業系統,在 VM 遭到圍欄後延遲重新啟動 Corosync。您也可以調整 Pacemaker 的重新啟動逾時時間,以便考量延遲時間。

建立圍欄裝置資源

  1. 在主要主機上以超級使用者的身分,建立圍欄資源:

    # crm configure primitive STONITH-"primary-host-name" stonith:fence_gce \
        op monitor interval="300s" timeout="120s" \
        op start interval="0" timeout="60s" \
        params port="primary-host-name" zone="primary-zone" project="project_id" \
        pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
    # crm configure primitive STONITH-"secondary-host-name" stonith:fence_gce \
        op monitor interval="300s" timeout="120s" \
        op start interval="0" timeout="60s" \
        params port="secondary-host-name" zone="secondary-zone" project="project_id" \
        pcmk_reboot_timeout=300 pcmk_monitor_retries=4
  2. 設定每個圍欄裝置的位置:

    # crm configure location LOC_STONITH_"primary-host-name" \
        STONITH-"primary-host-name" -inf: "primary-host-name"
    # crm configure location LOC_STONITH_"secondary-host-name" \
        STONITH-"secondary-host-name" -inf: "secondary-host-name"

設定叢集

如要設定叢集,請定義一般叢集屬性和叢集原始資源。

啟用維護模式

  1. 在任一主機上以超級使用者身分,將叢集設為維護模式:

    # crm configure property maintenance-mode="true"

設定一般叢集屬性

  1. 在主要主機上設定一般叢集屬性:

    # crm configure property stonith-timeout="300s"
    # crm configure property stonith-enabled="true"
    # crm configure rsc_defaults resource-stickiness="1000"
    # crm configure rsc_defaults migration-threshold="5000"
    # crm configure op_defaults timeout="600"

設定 Corosync 的重新啟動延遲時間

  1. 在兩部主機上以超級使用者的身分建立 systemd 插入檔案,以便延遲 Corosync 的啟動,確保在重新啟動受限的 VM 後,事件的順序正確無誤:

    systemctl edit corosync.service
  2. 在檔案中新增下列幾行內容:

    [Service]
    ExecStartPre=/bin/sleep 60
  3. 儲存檔案並結束編輯器。

  4. 重新載入 systemd 管理員設定。

    systemctl daemon-reload
  5. 確認已建立插入檔案:

    service corosync status

    您應該會看到插入檔案的一行,如以下範例所示:

    ● corosync.service - Corosync Cluster Engine
       Loaded: loaded (/usr/lib/systemd/system/corosync.service; disabled; vendor preset: disabled)
      Drop-In: /etc/systemd/system/corosync.service.d
               └─override.conf
       Active: active (running) since Tue 2021-07-20 23:45:52 UTC; 2 days ago

為 VIP 位址建立本機叢集 IP 資源

如要在作業系統中設定 VIP 位址,請為先前保留的 VIP 位址建立本機叢集 IP 資源:

# crm configure primitive rsc_vip_int-primary IPaddr2 \
   params ip=vip-address cidr_netmask=32 nic="eth0" op monitor interval=3600s timeout=60s

設定輔助健康狀態檢查服務

負載平衡器會使用每個主機健康狀態檢查通訊埠上的監聽器,判斷 SAP HANA 叢集的主要執行個體執行的位置。

如要管理叢集中的事件監聽器,請為事件監聽器建立資源。

這些操作說明會使用 socat 公用程式做為事件監聽器。

  1. 在兩個主機上以超級使用者身分安裝 socat utility

    # zypper in -y socat
  2. 在主要主機上,為輔助健康檢查服務建立資源:

    # crm configure primitive rsc_healthcheck-primary anything \
      params binfile="/usr/bin/socat" \
      cmdline_options="-U TCP-LISTEN:healthcheck-port-num,backlog=10,fork,reuseaddr /dev/null" \
      op monitor timeout=20s interval=10s \
      op_params depth=0

將 VIP 和輔助健康狀態檢查服務資源分組

將 VIP 和輔助健康檢查服務資源分組:

# crm configure group g-primary rsc_vip_int-primary rsc_healthcheck-primary meta resource-stickiness=0

建立 SAPHanaTopology 原始資源

您可以在暫時設定檔中定義 SAPHanaTopology 原始資源,然後將其上傳至 Corosync。

在主要主機上以超級使用者身分:

  1. SAPHanaTopology 設定參數建立暫時設定檔:

    # vi /tmp/cluster.tmp
  2. 將 SAPHanaTopology 資源定義複製並貼到 /tmp/cluster.tmp 檔案中:

    SLES for SAP 15 SP5 或更早版本

    primitive rsc_SAPHanaTopology_SID_HDBinst_num ocf:suse:SAPHanaTopology \
     operations \$id="rsc_sap2_SID_HDBinst_num-operations" \
     op monitor interval="10" timeout="600" \
     op start interval="0" timeout="600" \
     op stop interval="0" timeout="300" \
     params SID="SID" InstanceNumber="inst_num"
    
    clone cln_SAPHanaTopology_SID_HDBinst_num rsc_SAPHanaTopology_SID_HDBinst_num \
     meta clone-node-max="1" target-role="Started" interleave="true"

    SLES for SAP 15 SP6 以上版本

    primitive rsc_SAPHanaTopology_SID_HDBinst_num ocf:suse:SAPHanaTopology \
     operations \$id="rsc_sap2_SID_HDBinst_num-operations" \
     op monitor interval="10" timeout="600" \
     op start interval="0" timeout="600" \
     op stop interval="0" timeout="300" \
     params SID="SID" InstanceNumber="inst_num"
    
    clone cln_SAPHanaTopology_SID_HDBinst_num rsc_SAPHanaTopology_SID_HDBinst_num \
     meta clone-node-max="1" interleave="true"
  3. 編輯 /tmp/cluster.tmp 檔案,將變數文字替換為 SAP HANA 系統的 SID 和執行個體編號。

  4. 在以 root 身分登入的主要節點上,將 /tmp/cluster.tmp 檔案的內容載入 Corosync:

    crm configure load update /tmp/cluster.tmp

建立 SAPHanaSAPHanaController 原始資源

您可以使用與 SAPHanaTopology 資源相同的方法定義資源:在暫時設定檔中定義資源,然後上傳至 Corosync。

  1. 取代臨時設定檔:

    # rm /tmp/cluster.tmp
    # vi /tmp/cluster.tmp
  2. 將資源定義複製並貼到 /tmp/cluster.tmp 檔案中:

    SLES for SAP 15 SP5 或更早版本

    primitive rsc_SAPHana_SID_HDBinst_num ocf:suse:SAPHana \
     operations \$id="rsc_sap_SID_HDBinst_num-operations" \
     op start interval="0" timeout="3600" \
     op stop interval="0" timeout="3600" \
     op promote interval="0" timeout="3600" \
     op demote interval="0" timeout="3600" \
     op monitor interval="60" role="Master" timeout="700" \
     op monitor interval="61" role="Slave" timeout="700" \
     params SID="SID" InstanceNumber="inst_num" PREFER_SITE_TAKEOVER="true"
     DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="true"
    
    ms msl_SAPHana_SID_HDBinst_num rsc_SAPHana_SID_HDBinst_num \
     meta notify="true" clone-max="2" clone-node-max="1" \
     target-role="Started" interleave="true"
    
    colocation col_saphana_ip_SID_HDBinst_num 4000: g-primary:Started \
     msl_SAPHana_SID_HDBinst_num:Master
    order ord_SAPHana_SID_HDBinst_num Optional: cln_SAPHanaTopology_SID_HDBinst_num \
     msl_SAPHana_SID_HDBinst_num

    SLES for SAP 15 SP6 以上版本

    primitive rsc_SAPHana_SID_HDBinst_num ocf:suse:SAPHanaController \
     operations \$id="rsc_sap_SID_HDBinst_num-operations" \
     op start interval="0" timeout="3600" \
     op stop interval="0" timeout="3600" \
     op promote interval="0" timeout="3600" \
     op demote interval="0" timeout="3600" \
     op monitor interval="60" role="Promoted" timeout="700" \
     op monitor interval="61" role="Unpromoted" timeout="700" \
     params SID="SID" InstanceNumber="inst_num" PREFER_SITE_TAKEOVER="true" \
     DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="true"
    
    clone mst_SAPHana_SID_HDBinst_num rsc_SAPHana_SID_HDBinst_num \
     meta clone-node-max="1" interleave="true" promotable="true"
    
    colocation col_saphana_ip_SID_HDBinst_num 4000: g-primary:Started \
     mst_SAPHana_SID_HDBinst_num:Promoted
    order ord_SAPHana_SID_HDBinst_num Optional: cln_SAPHanaTopology_SID_HDBinst_num \
     mst_SAPHana_SID_HDBinst_num

    針對多層 SAP HANA HA 叢集,如果您使用的是 SAP HANA 2.0 SP03 之前的版本,請將 AUTOMATED_REGISTER 設為 false。這樣可防止已復原的執行個體嘗試向已設定複製目標的 HANA 系統進行複製自我註冊。針對使用多層系統複製的 SAP HANA 設定,您可以將 SAP HANA 2.0 SP03 以上版本的 AUTOMATED_REGISTER 設為 true

    如需更多資訊,請參閱:

  3. 在以 root 身分登入的主要節點上,將 /tmp/cluster.tmp 檔案的內容載入 Corosync:

    crm configure load update /tmp/cluster.tmp

建立 SAPHanaFilesystem 原始資源

本節僅適用於使用 SAPHanaSR-angi 鉤子。如果您使用的是 SAPHanaSR 鉤子,則可略過這節。

您可以使用建立 SAPHanaTopology 資源時採用的方法建立 SAPHanaFilesystem 資源:在暫時設定檔中建立,然後上傳至 Corosync。

  1. 取代臨時設定檔:

    rm /tmp/cluster.tmp
    vi /tmp/cluster.tmp
  2. 複製並貼上 SAPHana 資源定義至 /tmp/cluster.tmp 檔案:

    primitive rsc_SAPHanaFileSystem_SID_HDBinst_num ocf:suse:SAPHanaFilesystem \
      operations \$id="rsc_sap3_SID_HDBinst_num-operations" \
      op monitor interval="10" timeout="600" \
      op start interval="0" timeout="600" \
      op stop interval="0" timeout="300" \
      params SID="SID" InstanceNumber="inst_num"
    
    clone cln_SAPHanaFileSystem_SID_HDBinst_num rsc_SAPHanaFileSystem_SID_HDBinst_num \
      meta clone-node-max="1  interleave="true"

確認 SAP HANA 系統複製功能已啟用

  1. 在主要主機上,以 SID_LCadm 身分登入 SAP HANA 資料庫互動式終端機:

    > hdbsql -u system -p "system-password" -i inst_num
  2. 在互動式終端機中檢查複製狀態:

    => select distinct REPLICATION_STATUS from SYS.M_SERVICE_REPLICATION

    REPLICATION_STATUS 應為 "ACTIVE"

或者,您也可以以 SID_LCadm 身分執行下列 Python 指令碼,檢查複製狀態:

# python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py

啟用叢集

  1. 在主要主機上以超級使用者的身分,將叢集從維護模式中移除:

    # crm configure property maintenance-mode="false"

    如果系統提示您移除「maintenance」,請輸入 y

  2. 請等待 15 秒,然後以超級使用者的身分在主要主機上檢查叢集的狀態:

    # crm status

    以下範例顯示已啟用且設定正確的叢集狀態:

    SLES for SAP 15 SP5 或更早版本

    Stack: corosync
    Current DC: hana-ha-vm-1 (version 2.0.1+20190417.13d370ca9-3.9.1-2.0.1+20190417.13d370ca9) - partition with quorum
    Last updated: Sun Jun  7 00:36:56 2020
    Last change: Sun Jun  7 00:36:53 2020 by root via crm_attribute on hana-ha-vm-1
    
    2 nodes configured
    8 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
    STONITH-hana-ha-vm-1   (stonith:fence_gce):  Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):  Started hana-ha-vm-1
    Clone Set: cln_SAPHanaTopology_HA1_HDB22 [rsc_SAPHanaTopology_HA1_HDB22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Resource Group: g-primary
        rsc_vip_int-primary        (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
        rsc_healthcheck-primary        (ocf::heartbeat:anything):      Started hana-ha-vm-1
    Clone Set: msl_SAPHana_HA1_HDB22 [rsc_SAPHana_HA1_HDB22] (promotable)
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]

    SLES for SAP 15 SP6 以上版本

    Stack: corosync
    Current DC: hana-ha-vm-1 (version 2.1.7+20231219.0f7f88312-150600.6.3.1-2.1.7+20231219.0f7f88312) - partition with quorum
    Last updated: Tue Oct 15 03:26:11 2024
    Last change: Tue Oct 15 03:26:08 2024 by root via via crm_attribute on hana-ha-vm-1
    
    2 nodes configured
    10 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
    STONITH-hana-ha-vm-1   (stonith:fence_gce):  Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):  Started hana-ha-vm-1
    Resource Group: g-primary
        rsc_vip_int-primary        (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
        rsc_healthcheck-primary        (ocf::heartbeat:anything):      Started hana-ha-vm-1
    Clone Set: cln_SAPHanaTopology_HA1_HDB22 [rsc_SAPHanaTopology_HA1_HDB22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Clone Set: cln_SAPHanaFileSystem_HA1_HDB22 [rsc_SAPHanaFilesystem_HA1_HDB22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Clone Set: mst_SAPHana_HA1_HDB22 [rsc_SAPHana_HA1_HDB22] (promotable)
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]

測試容錯移轉

模擬主要主機的失敗情況,測試叢集。在發布系統供使用前,請使用測試系統或在正式版系統上執行測試。

在測試前備份系統。

您可以透過多種方式模擬失敗,包括:

  • HDB stop
  • HDB kill
  • reboot (在有效節點上)
  • ip link set eth0 down:適用於具有單一網路介面的執行個體
  • iptables ... DROP (適用於具有多個網路介面的執行個體)
  • echo c > /proc/sysrq-trigger

這些操作說明會使用 ip link set eth0 downiptables 模擬叢集中兩個主機之間的網路中斷情形。針對只有單一網路介面的執行個體,請使用 ip link 指令;針對具有一或多個網路介面的執行個體,請使用 iptables 指令。這項測試會驗證容錯移轉和圍欄。如果執行個體已定義多個網路介面,您可以在次要主機上使用 iptables 指令,根據主要主機用於叢集通訊的 IP 捨棄傳入和傳出流量,藉此模擬與主要主機的網路連線中斷。

  1. 在主機上以超級使用者身分,將網路介面設為離線:

    # ip link set eth0 down

    或者,如果有多個網路介面處於作用中狀態,請在次要主機上使用 iptables

    # iptables -A INPUT -s PRIMARY_CLUSTER_IP -j DROP; iptables -A OUTPUT -d PRIMARY_CLUSTER_IP -j DROP
  2. 使用 SSH 重新連線至任一主機,並切換到超級使用者。

  3. 輸入 crm status 以確認主要主機已在包含次要主機的 VM 中啟用。自動重新啟動功能會在叢集中啟用,因此已停止的主機會重新啟動,並假設為次要主機的角色,如以下範例所示。

    SLES for SAP 15 SP5 或更早版本

    Stack: corosync
    Current DC: hana-ha-vm-2 (version 2.0.1+20190417.13d370ca9-3.9.1-2.0.1+20190417.13d370ca9) - partition with quorum
    Last updated: Fri Jun 12 16:46:07 2020
    Last change: Fri Jun 12 16:46:07 2020 by root via crm_attribute on hana-ha-vm-2
    
    2 nodes configured
    8 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
     STONITH-hana-ha-vm-1   (stonith:fence_gce):  Started hana-ha-vm-2
     STONITH-hana-ha-vm-2   (stonith:fence_gce):  Started hana-ha-vm-1
     
     Clone Set: cln_SAPHanaTopology_HA1_HDB22 [rsc_SAPHanaTopology_HA1_HDB22]
         Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Resource Group: g-primary
         rsc_vip_int-primary        (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-2
         rsc_healthcheck-primary        (ocf::heartbeat:anything):      Started hana-ha-vm-2
     Clone Set: msl_SAPHana_HA1_HDB22 [rsc_SAPHana_HA1_HDB22] (promotable)
         Masters: [ hana-ha-vm-2 ]
         Slaves: [ hana-ha-vm-1 ]

    SLES for SAP 15 SP6 以上版本

    Stack: corosync
    Current DC: hana-ha-vm-2 (version 2.1.7+20231219.0f7f88312-150600.6.3.1-2.1.7+20231219.0f7f88312) - partition with quorum
    Last updated: Tue Oct 15 05:26:18 2024
    Last change: Tue Oct 15 05:26:18 2024 by root via via crm_attribute on hana-ha-vm-1
    
    2 nodes configured
    10 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
     STONITH-hana-ha-vm-1   (stonith:fence_gce):  Started hana-ha-vm-2
     STONITH-hana-ha-vm-2   (stonith:fence_gce):  Started hana-ha-vm-1
     
     Resource Group: g-primary
         rsc_vip_int-primary        (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-2
         rsc_healthcheck-primary        (ocf::heartbeat:anything):      Started hana-ha-vm-2
     Clone Set: cln_SAPHanaTopology_HA1_HDB22 [rsc_SAPHanaTopology_HA1_HDB22]
         Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Clone Set: cln_SAPHanaFileSystem_HA1_HDB22 [rsc_SAPHanaFileSystem_HA1_HDB22]
         Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Clone Set: mst_SAPHana_HA1_HDB22 [rsc_SAPHana_HA1_HDB22] (promotable)
         Masters: [ hana-ha-vm-2 ]
         Slaves: [ hana-ha-vm-1 ]

設定 HANA 主動/主動 (啟用讀取)

自 SAP HANA 2.0 SPS1 起,您可以在 Pacemaker 叢集中設定 HANA 主動/主動 (啟用讀取)。您可以視需要決定是否啟用。

如要在 Pacemaker 叢集中設定 HANA 主動/主動 (啟用讀取),請完成下列步驟。

為次要主機設定雲端負載平衡器容錯移轉支援

內部直通式網路負載平衡器服務具有容錯支援功能,可根據健康檢查服務將流量轉送至 SAP HANA 叢集中的次要主機。

如要為次要主機設定備援支援功能,請按照下列步驟操作:

  1. 開啟 Cloud Shell:

    前往 Cloud Shell

  2. 請執行下列指令,為虛擬 IP 保留 IP 位址。

    虛擬 IP (VIP) 位址會跟隨次要 SAP HANA 系統。這是應用程式用來存取次要 SAP HANA 系統的 IP 位址。負載平衡器會將傳送至 VIP 的流量,路由至目前代管次要系統的 VM 執行個體。

    如果您在下列指令中省略 --addresses 旗標,系統會為您選擇指定子網路中的 IP 位址。如要進一步瞭解如何預留靜態 IP,請參閱「預留靜態內部 IP 位址」。

    $ gcloud compute addresses create secondary-vip-name \
      --region cluster-region --subnet cluster-subnet \
      --addresses secondary-vip-address
  3. 執行下列指令,建立 Compute Engine 健康狀態檢查。

    針對健康檢查使用的通訊埠,請選擇位於私人範圍 (49152-65535) 的通訊埠,以免與其他服務發生衝突。這個通訊埠應與用於 HANA 主要系統存取的健康狀態檢查所設定的通訊埠不同。檢查間隔和逾時值會比預設值稍長,以便在 Compute Engine 即時遷移事件期間提高容錯能力。您可以視需要調整這些值。

    $ gcloud compute health-checks create tcp secondary-health-check-name \
      --port=secondary-healthcheck-port-num \
      --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \
      --healthy-threshold=2
  4. 執行下列指令,設定負載平衡器和備援群組。

    在此建立額外的後端服務,並使用先前為 SAP HANA 主要系統內部 TCP/UDP 負載平衡器後端服務所建立的相同執行個體群組。

    1. 建立負載平衡器後端服務:

      $ gcloud compute backend-services create secondary-backend-service-name \
        --load-balancing-scheme internal \
        --health-checks secondary-health-check-name \
        --no-connection-drain-on-failover \
        --drop-traffic-if-unhealthy \
        --failover-ratio 1.0 \
        --region cluster-region \
        --global-health-checks
    2. 將主要執行個體群組新增至後端服務:

      $ gcloud compute backend-services add-backend secondary-backend-service-name \
        --instance-group primary-ig-name \
        --instance-group-zone primary-zone \
        --region cluster-region
    3. 將次要容錯移轉執行個體群組新增至後端服務:

      $ gcloud compute backend-services add-backend secondary-backend-service-name \
        --instance-group secondary-ig-name \
        --instance-group-zone secondary-zone \
        --failover \
        --region cluster-region
    4. 建立轉送規則。

      針對 IP 位址標記,請指定您為 VIP 預留的 IP 位址。如果您需要從下列指令中指定的區域以外的地方存取 HANA 次要系統,請在轉送規則定義中加入 --allow-global-access 標記。

      $ gcloud compute forwarding-rules create secondary-rule-name \
        --load-balancing-scheme internal \
        --address secondary-vip-name \
        --subnet cluster-subnet \
        --region cluster-region \
        --backend-service secondary-backend-service-name \
        --ports ALL

      如要進一步瞭解跨區存取 SAP HANA 高可用性系統,請參閱「內部 TCP/UDP 負載平衡」。

啟用 HANA 主動/主動 (啟用讀取)

在次要主機上,按照下列步驟為 SAP HANA 系統複製作業啟用主動/主動 (啟用讀取) 模式:

  1. 以 root 身分將叢集設為維護模式:

    # crm configure property maintenance-mode="true"

  2. SID_LCadm 身分停止 SAP HANA:

    > HDB stop
  3. SID_LCadm 身分,使用 logreplay_readaccess 作業模式,將 HANA 次要系統重新註冊至 SAP HANA 系統複製:

    > hdbnsutil -sr_register --remoteHost=primary-host-name --remoteInstance=inst_num \
     --replicationMode=syncmem --operationMode=logreplay_readaccess --name=secondary-host-name
  4. SID_LCadm 身分啟動 SAP HANA:

    > HDB start
  5. SID_LCadm 身分確認 HANA 同步處理狀態為 ACTIVE

    > cdpy; python systemReplicationStatus.py --sapcontrol=1 | grep overall_replication_status

    您應該會看到類似以下範例的輸出內容:

    overall_replication_status=ACTIVE

設定 Pacemaker

以系統管理員身分執行下列指令,為 Pacemaker HA 叢集設定主動/主動 (啟用讀取):

  1. 針對您為次要系統保留的 VIP 位址,建立本機叢集 IP 資源:

    # crm configure primitive rsc_vip_int-secondary IPaddr2 \
      params ip=secondary-vip-address cidr_netmask=32 nic="eth0" \
      op monitor interval=3600s timeout=60s
  2. 請執行下列指令,設定輔助健康狀態檢查服務:

    負載平衡器會使用每個主機的健康狀態檢查通訊埠上的監聽器,判斷 SAP HANA 叢集的次要執行個體執行的位置。

    1. 如要管理叢集中的事件監聽器,請為事件監聽器建立資源。這些操作說明會使用 socat 公用程式做為監聽器。為輔助健康檢查服務建立資源:

      # crm configure primitive rsc_healthcheck-secondary anything \
       params binfile="/usr/bin/socat" \
       cmdline_options="-U TCP-LISTEN:secondary-healthcheck-port-num,backlog=10,fork,reuseaddr /dev/null" \
       op monitor timeout=20s interval=10s \
       op_params depth=0
    2. 將 VIP 和輔助健康檢查服務資源分組:

      # crm configure group g-secondary rsc_vip_int-secondary rsc_healthcheck-secondary meta resource-stickiness=0
  3. 建立並列限制:

    SLES for SAP 15 SP5 或更早版本

    # crm configure colocation col_saphana_secondary 4000: g-secondary:Started \
     msl_SAPHana_SID_HDBinst_num:Slave

    SLES for SAP 15 SP6 以上版本

    # crm configure colocation col_saphana_secondary 4000: g-secondary:Started \
     mst_SAPHana_SID_HDBinst_num:Unpromoted
  4. 退出叢集維護模式:

    # crm configure property maintenance-mode="false"
  5. 檢查叢集的狀態:

    # crm status

    下列範例顯示主動/主動 (啟用讀取) 的 SAP HANA 系統複製功能,為已正確設定的叢集顯示狀態。您應該會看到輔助系統 VIP 資源的額外資源群組。在以下範例中,該資源群組的名稱為 g-secondary

    SLES for SAP 15 SP5 或更早版本

    Cluster Summary:
     Stack: corosync
     Current DC: hana-ha-vm-1 (version 2.0.4+20200616.2deceaa3a-3.15.1-2.0.4+20200616.2deceaa3a) - partition with quorum
     Last updated: Fri Oct  7 21:52:46 2022
     Last change:  Fri Oct  7 21:51:42 2022 by root via crm_attribute on hana-ha-vm-1
    
     2 nodes configured
     10 resource instances configured
    
    Node List:
     Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Active Resources:
     STONITH-hana-ha-vm-1  (stonith:fence_gce):   Started hana-ha-vm-2
     STONITH-hana-ha-vm-2  (stonith:fence_gce):   Started hana-ha-vm-1
     Resource Group: g-primary:
       rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started hana-ha-vm-1
       rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started hana-ha-vm-1
     Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
       Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
       Masters: [ hana-ha-vm-1 ]
       Slaves: [ hana-ha-vm-2 ]
     Resource Group: g-secondary:
       rsc_vip_int-secondary       (ocf::heartbeat:IPaddr2):        Started hana-ha-vm-2
       rsc_healthcheck-secondary   (ocf::heartbeat:anything):       Started hana-ha-vm-2

    SLES for SAP 15 SP6 以上版本

    Cluster Summary:
     Stack: corosync
     Current DC: hana-ha-vm-1 (version 2.1.7+20231219.0f7f88312-150600.6.3.1-2.1.7+20231219.0f7f88312) - partition with quorum
     Last updated: Tue Oct 15 05:46:18 2024
     Last change: Tue Oct 15 05:46:18 2024 by root via via crm_attribute on hana-ha-vm-1
    
     2 nodes configured
     10 resource instances configured
    
    Node List:
     Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Active Resources:
     STONITH-hana-ha-vm-1  (stonith:fence_gce):   Started hana-ha-vm-2
     STONITH-hana-ha-vm-2  (stonith:fence_gce):   Started hana-ha-vm-1
     Resource Group: g-primary:
       rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started hana-ha-vm-1
       rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started hana-ha-vm-1
     Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
       Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Clone Set: cln_SAPHanaFileSystem_HA1_HDB00 [rsc_SAPHanaFileSystem_HA1_HDB00]:
       Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
     Clone Set: mst_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
       Masters: [ hana-ha-vm-1 ]
       Slaves: [ hana-ha-vm-2 ]
     Resource Group: g-secondary:
       rsc_vip_int-secondary       (ocf::heartbeat:IPaddr2):        Started hana-ha-vm-2
       rsc_healthcheck-secondary   (ocf::heartbeat:anything):       Started hana-ha-vm-2

評估 SAP HANA 工作負載

如要為在 Google Cloud上執行的 SAP HANA 高可用性工作負載自動執行持續驗證檢查,您可以使用Workload Manager

您可以使用 Workload Manager,根據 SAP、 Google Cloud和作業系統供應商的最佳做法,自動掃描及評估 SAP HANA 高可用性工作負載。這有助於改善工作負載的品質、效能和可靠性。

如要瞭解 Workload Manager 支援的最佳做法,以便評估在 Google Cloud上執行的 SAP HANA 高可用性工作負載,請參閱 Workload Manager 適用於 SAP 的最佳做法。如要瞭解如何使用 Workload Manager 建立及執行評估作業,請參閱「建立並執行評估作業」。

疑難排解

如要針對 SLES 上 SAP HANA 的高可用性設定排解問題,請參閱「排解 SAP 高可用性設定問題」。

取得 SLES 上的 SAP HANA 支援

如果您需要協助解決 SLES 上 SAP HANA 高可用性叢集的問題,請收集必要的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。詳情請參閱「SLES 高可用性叢集的診斷資訊」。

支援

如果是基礎架構或服務相關問題,請與客戶服務團隊聯絡。 Google Cloud 您可以在 Google Cloud 控制台的「支援總覽」頁面中找到聯絡資訊。如果客戶服務團隊判定問題出在 SAP 系統,就會將您轉介給 SAP 支援團隊。

如要進一步瞭解 SAP 產品相關問題,請使用 SAP 支援登錄您的支援要求。SAP 會評估支援票證,如確定為 Google Cloud基礎架構方面的問題,就會將票證轉移至系統中的適當Google Cloud 元件:BC-OP-LNX-GOOGLEBC-OP-NT-GOOGLE

支援相關規定

您必須符合支援方案的最低需求,才能獲得 SAP 系統和Google Cloud基礎架構和服務的支援服務。

如要進一步瞭解Google Cloud上 SAP 的最低支援需求,請參閱:

連線至 SAP HANA

如果主機 VM 沒有 SAP HANA 的外部 IP 位址,您只能使用 SSH,透過防禦執行個體連線至 SAP HANA 執行個體,或使用 SAP HANA Studio,透過 Windows 伺服器連線至 SAP HANA 執行個體。

  • 如要透過防禦執行個體連線至 SAP HANA,請使用您選擇的 SSH 用戶端連線至防禦主機,然後連線至 SAP HANA 執行個體。

  • 如要透過 SAP HANA Studio 連線至 SAP HANA 資料庫,請使用遠端桌面用戶端連線至 Windows Server 執行個體。連線之後,請手動安裝 SAP HANA Studio,並存取您的 SAP HANA 資料庫。

部署後工作

完成部署後,請完成下列步驟:

  1. 變更 SAP HANA 系統管理員和資料庫超級使用者的臨時密碼。例如:

    sudo passwd SID_LCadm

    如要瞭解 SAP 提供的密碼變更資訊,請參閱「Reset the SYSTEM User Password of the System Database」。

  2. 使用 SAP HANA 執行個體之前,請設定並備份新的 SAP HANA 資料庫。

  3. 如果 SAP HANA 系統部署在 VirtIO 網路介面上,建議您確認 TCP 參數 /proc/sys/net/ipv4/tcp_limit_output_bytes 的值已設為 1048576。這項修改可改善 VirtIO 網路介面上的整體網路總處理量,且不會影響網路延遲時間。

如需詳細資訊,請參閱:

後續步驟

詳情請參閱下列資源:

  • 如果您使用的是 SLES for SAP 15 SP4 或 SP5,請參閱升級為 SLES 上 HA 叢集中的 SAPHanaSR-angi 資源代理程式,瞭解如何升級為 SAPHanaSR-angiSAPHanaSR
  • 在 Pacemaker 叢集中擴充 SAP HANA 系統的自動複製功能
  • SAP HANA 高可用性規劃指南
  • SAP HANA 災難復原規劃指南
  • 如要進一步瞭解 VM 管理與監控,請參閱 SAP HANA 作業指南