適用於 SAP 的 IBM Db2 高可用性叢集部署指南

本指南說明如何在 Linux 作業系統上,為適用於 SAP 的 IBM Db2 高可用性 (HA) 叢集設定 Google Cloud 資源。

這些操作說明旨在補充 SAP 和 IBM 於 IBM Db2 高可用性解決方案:IBM Tivoli System Automation for Multiplatforms 中提供的指示。在 Google Cloud上安裝及設定 IBM Db2 HA 叢集時,請一律參考 SAP 和 IBM 提供的最新說明文件。

這些操作說明適用於透過 IBM Tivoli System Automation for Multiplatforms (TSAMP) 來監控系統,並在系統無回應時採取適當動作的 IBM Db2 HA 叢集。這類叢集會使用 IBM Db2 高可用性災難復原 (HADR) 功能,將記錄的資料變更內容複製到備用資料庫。

此外,這類叢集會使用 Google Cloud實作的浮動 IP 位址,並具有 Google Cloud 靜態路徑或別名 IP 位址。在此情況下,「浮動 IP 位址」與「虛擬 IP 位址」同義,後者是 SAP 說明文件中使用的詞彙。

這些操作說明將示範如何設定 IBM Db2 HA 叢集,這個叢集由一個主要 IBM Db2 伺服器和一個次要或備用 IBM Db2 伺服器構成,且每個伺服器都部署在不同的 Compute Engine 虛擬機器 (VM) 上。

本指南的適用對象,是熟悉高可用性叢集並有相關經驗的 SAP 和 IBM Db2 使用者。

如要進一步瞭解如何規劃 Db2 HA 叢集,請參閱適用於 SAP 的 IBM Db2 規劃指南中的「高可用性 IBM Db2 叢集」一節。

必要的 SAP 說明文件

SAP 在 IBM Db2 高可用性解決方案:IBM Tivoli System Automation for Multiplatforms 中,提供了有關安裝和設定 SAP 與 IBM 元件的操作說明。

在開始按照下列指示進行操作前,請先閱讀 SAP 和 Google Cloud 說明文件。您可能得在部署的各個階段參閱 SAP 和 Google Cloud 說明文件。

事前準備

在建立 IBM Db2 高可用性叢集之前,請確保符合下列必備條件:

  • 您或您的機構擁有 Google Cloud 帳戶,且您已建立一個用於部署 IBM Db2 HA 叢集的專案。如要瞭解如何建立 Google Cloud 專案,請參閱適用於 SAP 的 IBM Db2 部署指南中的必備條件一節。
  • 如果您希望 SAP 工作負載在符合資料落地、存取權控管、支援人員或法規規定的情況下執行,則必須建立必要的 Assured Workloads 資料夾。詳情請參閱「SAP on Google Cloud的符合性和主權控管措施」。
  • 您在 Google Cloud上有虛擬私有雲網路。如要瞭解如何設定虛擬私人雲端網路和防火牆規則,以及如何針對適用於 SAP 的 IBM Db2 設定 NAT 閘道或防禦主機,請參閱 適用於 SAP 的 IBM Db2 部署指南

  • 如果專案中繼資料中已啟用 OS 登入,您必須暫時停用 OS 登入功能,直到部署作業完成為止。為了部署目的,這個程序會在執行個體中繼資料中設定 SSH 金鑰。啟用 OS 登入功能後,系統就會停用中繼資料型安全殼層金鑰設定。部署完成後,您可以再次啟用 OS 登入功能。

    如需詳細資訊,請參閱:

在 Google Cloud上部署 IBM Db2 高可用性叢集

下列操作說明將示範如何部署兩個 VM、定義浮動 IP 位址,以及設定支援浮動 IP 位址的別名 IP 位址或 Google Cloud 路徑。當您需要安裝 IBM 元件時,我們會提供 SAP 說明文件。

您必須為 IBM Db2 高可用性叢集設定下列主要 Google Cloud 服務:

  • 虛擬私人雲端網路和子網路
  • 防火牆規則 (如果您不使用其他形式的網路存取權控管機制)
  • Compute Engine VM 和永久磁碟儲存空間

當您定義自訂資源,供 TSAMP 用於在主機之間切換浮動 IP 位址時,您也可以下載並使用 Google Cloud 輔助指令碼。這個指令碼可讓 TSAMP 與Google Cloud API 互動。

Deployment Manager 簡介

在這些操作說明中,定義安裝的資源選項,要在 Deployment Manager 設定檔範本執行。

Deployment Manager 會將您針對 SAP 系統建立的所有資源視為單一實體,稱為「部署」。您可以在 Google Cloud 控制台的「Deployments」(部署作業) 頁面查看並使用專案的所有部署作業。

使用 Deployment Manager 時請注意下列行為:

  • 一旦您刪除部署,系統也會將與該部署相關聯的所有資源一併刪除,包括 VM、永久磁碟及安裝於 VM 上的任何 SAP 系統。
  • 根據預設,Deployment Manager 會使用 ACQUIRE 資源建立政策。如果專案中已經有另一個 VM 使用您指定的 VM 名稱,Deployment Manager 不會建立新 VM,而是將現有 VM 加到您的新部署。如果您的原始 VM 是上次執行 Deployment Manager 時建立的,則 VM 會與兩個部署相關聯。

    要是您隨後刪除了新的部署,則系統也會從最初建立 VM 的部署中刪除這個已擷取的 VM。為避免這種情況,請將 Deployment Manager 資源政策設為 CREATE,或是確保您在新部署中使用專屬的資源名稱。

    如要進一步瞭解透過 Deployment Manager 建立資源時可使用的政策,以及指定政策的方式,請參閱 Deployment Manager 說明文件

使用 Deployment Manager 為 IBM Db2 HA 叢集部署 VM

  1. 在 Cloud Shell 中,將 template_ha.yaml 設定檔範本下載到您的工作目錄:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/template_ha.yaml
  2. 如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆 () 圖示。

  3. 或者,您也可以重新命名 template_ha.yaml 檔案,藉此識別其定義的設定。例如:db2_ha_s123_dh1.yaml

  4. 按兩下 template_ha.yaml,在程式碼編輯器中開啟該檔案。

  5. template_ha.yaml 檔案中定義 VM 和永久磁碟。template_ha.yaml 檔案包含兩個部分:sap_db2_primarysap_db2_secondary。每個部分都包含一組屬性/值,後面加上包含較少用屬性的註解。

    當您填寫 instanceNamezoneotherHost 屬性以外的各個部分時,每個 VM 的定義都必須相同。

    下表說明每個部分包含的屬性。如要使用某個屬性,請將預留位置文字和括號改成用於安裝的值。

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

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

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

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

    instanceName 字串 要安裝 IBM Db2 的 VM 執行個體名稱。名稱不得超過 13 個半形字元,且應使用小寫英文字母、數字或連字號。
    instanceType 字串 要安裝 IBM Db2 的 Compute Engine 虛擬機器類型。請指定具有兩個以上 vCPU 的機器類型。例如:n1-standard-4
    zone 字串 要部署 IBM Db2 執行個體的區域。這個區域必須位於您為子網路選取的地區內。
    subnetwork 字串 您在前一個步驟建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 shared-vpc-project/SUBNETWORK。例如:myproject/network1
    linuxImage 字串 與 IBM Db2 搭配使用的 Linux 作業系統映像檔或映像檔系列名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置詞。例如 family/rhel-7-sap-appsfamily/sles-12-sp3-sap。如要指定圖片,請只輸入圖片名稱。如需可用的映像檔系列清單,請參閱 Google Cloud 控制台中的「映像檔」頁面。
    linuxImageProject 字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案,例如 rhel-sap-cloudsuse-sap-cloud。如需 Google Cloud 映像檔專案清單,請參閱 Compute Engine 說明文件中的「映像檔」頁面。
    db2SID 字串 資料庫執行個體 ID。
    db2sidSize 整數 /db2/DBSID 的大小 (以 GB 為單位),這是資料庫執行個體的根目錄。db2sidSize 的最小值和預設值都是 8 GB。
    db2homeSize 整數 資料庫執行個體主目錄 /db2/db2db2sid 的大小 (以 GB 為單位)。db2homeSize 的最小值和預設值都是 8 GB。
    db2dumpSize 整數 /db2/DBSID/db2dump 的大小 (以 GB 為單位),這個目錄包含用於診斷問題的 DB2 傾印檔案。db2dumpSize 的最小值和預設值都是 8 GB。
    db2saptmpSize 整數 /db2/DBSID/saptmp 的大小 (以 GB 為單位),這個目錄包含資料庫暫時資料表空間。db2saptmpSize 的最小值和預設值都是 8 GB。
    db2sapdataSize 整數 /sapdb/DBSID/sapdata 的大小,這個目錄包含資料庫資料檔案。db2sapdataSize 的最小值和預設值都是 30 GB。
    db2logSize 整數 /db2/DBSID/logdir 的大小,這個目錄包含資料庫交易記錄。db2logSize 的最小值和預設值都是 8 GB。
    db2backupSize 整數 /db2backup 磁碟區的大小。這是選用屬性。如果設為 0 或省略這個屬性,則不會建立任何磁碟。
    db2sapdataSSD 布林值 指定資料磁碟使用的是 SSD 永久磁碟 (Yes) 還是 HDD 永久磁碟 (No)。預設值為 Yes
    db2logSSD 布林值 指定記錄磁碟使用 SSD 永久磁碟 (Yes) 還是 HDD 永久磁碟 (No)。預設為 Yes。建議使用 SSD 做為記錄磁碟。
    usrsapSize 整數 若安裝 IBM Db2 是要在相同 VM 執行個體上與 SAP NetWeaver 搭配執行,則此為必要屬性。
    sapmntSize 整數 若安裝 IBM Db2 是要在相同 VM 執行個體上與 SAP NetWeaver 搭配執行,則此為必要屬性。
    swapSize 整數 若安裝 IBM Db2 是要在相同 VM 執行個體上與 SAP NetWeaver 搭配執行,則此為必要屬性。
    otherHost 字串 IBM Db2 HA 叢集中其他 VM 執行個體的名稱。VM 執行個體必須定義於相同 template_ha.yaml 檔案的另一組屬性中。
    networkTag 字串 (選用) 代表您 VM 執行個體的網路標記,供防火牆或轉送使用。如果您指定了 publicIP: No 但未使用網路標記,請務必提供其他能存取網際網路的方式。
    publicIP 布林值 (非必要) 指定是否可將公開 IP 位址加到您的 VM 執行個體。預設為 Yes
    serviceAccount 字串 (非必要) 如果您自行建立了具有鎖定權限的服務帳戶,請在此輸入帳戶的名稱。根據預設,系統會使用預設專案服務帳戶部署 VM。請注意,如果服務帳戶定義錯誤,部署就會失敗。以下是自訂服務帳戶的範例:myserviceuser@myproject.iam.gserviceaccount.com
    sap_deployment_debug 布林值 (非必要) 如果此值設為 Yes,部署會產生詳細部署記錄。除非 Google 支援工程師要求您啟用偵錯功能,否則請勿開啟此設定。
    post_deployment_script 字串 (非必要) 指定部署完成後要執行的指令碼所在位置。指令碼應在網路伺服器或 Cloud Storage 值區中託管。網址開頭應為 http://https://gs://。請注意,這個指令碼將在範本建立的所有 VM 上執行。如果只要在主要執行個體上執行,請在指令碼頂部加上一個勾號。

    以下 template_ha.yaml 設定檔中的 VM 定義範例會為 IBM Db2 HA 叢集建立兩個 VM。針對各個 VM,設定檔會引導 Deployment Manager 部署執行 SLES 12 SP3 映像檔系列中作業系統的 n1-standard-4 VM。這個 VM 包含執行 IBM Db2 HA 叢集所需的所有目錄。由於目錄大小是設為 0,因此 Deployment Manager 不會建立 SAP NetWeaver 目錄。

    resources:
    - name: sap_db2_primary
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/sap_db2.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/202103310846/dm-templates/sap_db2/sap_db2.py
      #
      properties:
        instanceName: db2-ha-s1
        instanceType: n1-standard-4
        zone: us-central1-c
        subnetwork: example-sap-subnetwork
        linuxImage: family/sles-12-sp3-sap
        linuxImageProject: suse-sap-cloud
        db2SID: DH1
        db2sidSize: 16
        db2dumpSize: 16
        db2saptmpSize: 16
        db2sapdataSize: 50
        db2logSize: 16
        db2backupSize: 50
        db2sapdataSSD: Yes
        db2logSSD: Yes
        usrsapSize: 0
        sapmntSize: 0
        swapSize: 0
        otherHost: db2-ha-s2
    #
    # (Comment section omitted from example)
    #
    - name: sap_db2_secondary
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/sap_db2.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/202103310846/dm-templates/sap_db2/sap_db2.py
      #
      properties:
        instanceName: db2-ha-s2
        instanceType: n1-standard-4
        zone: us-central1-f
        subnetwork: example-sap-subnetwork
        linuxImage: family/sles-12-sp3-sap
        linuxImageProject: suse-sap-cloud
        db2SID: DH1
        db2sidSize: 16
        db2dumpSize: 16
        db2saptmpSize: 16
        db2sapdataSize: 50
        db2logSize: 16
        db2backupSize: 50
        db2sapdataSSD: Yes
        db2logSSD: Yes
        usrsapSize: 0
        sapmntSize: 0
        swapSize: 0
        otherHost: db2-ha-s1
  6. 使用 Deployment Manager 部署 VM 執行個體。

    gcloud deployment-manager deployments create DEPLOYMENT-NAME --config TEMPLATE-NAME.yaml
    

    其中:

    • DEPLOYMENT-NAME 代表您為目前部署選擇的名稱。這個名稱是用來在 Google Cloud 主控台的「Deployments」頁面中識別此部署。
    • TEMPLATE-NAME 代表您為設定檔指定的名稱,如果您未變更預設檔案的名稱,則為 template_ha.yaml

    Deployment Manager 會讀取 template_ha.yaml 檔案中的規格,並據此設定 VM 和永久磁碟。此程序可能需要幾分鐘才能完成。如要查看部署的進度,請按照下一節的步驟操作。

驗證部署作業

如要驗證部署作業,請查看 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 的 IBM DB2 規劃指南中所列出不符 IBM DB2 規定的任何配額。

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

      3. 重新執行部署。

檢查 VM 的設定

  1. VM 部署完成後,使用 ssh 連線到每個 VM。您可以在 Compute Engine 的「VM instances」(VM 執行個體) 頁面中,按一下各個 VM 執行個體的 SSH 按鈕,也可以使用您偏好的 SSH 方法。

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

  2. 變更為超級使用者:

    sudo su -
  3. 在命令提示字元中輸入 df -h。並確保您看到如下的輸出:

    db2-ha-s1:~ # df -h
    Filesystem                     Size  Used Avail Use% Mounted on
    devtmpfs                       7.4G     0  7.4G   0% /dev
    tmpfs                           12G     0   12G   0% /dev/shm
    tmpfs                          7.4G   18M  7.4G   1% /run
    tmpfs                          7.4G     0  7.4G   0% /sys/fs/cgroup
    /dev/sda1                       30G  2.2G   26G   8% /
    /dev/mapper/vg_db2sid-vol       16G   33M   16G   1% /db2/DH1
    /dev/mapper/vg_db2dump-vol      16G   33M   16G   1% /db2/DH1/db2dump
    /dev/mapper/vg_db2sapdata-vol   50G   33M   50G   1% /db2/DH1/sapdata
    /dev/mapper/vg_db2saptmp-vol    16G   33M   16G   1% /db2/DH1/saptmp
    /dev/mapper/vg_db2log-vol       16G   33M   16G   1% /db2/DH1/log_dir
    /dev/mapper/vg_db2home-vol      16G   33M   16G   1% /db2/db2dh1
    /dev/mapper/vg_db2backup-vol    50G   33M   50G   1% /db2backup
    tmpfs                          1.5G     0  1.5G   0% /run/user/1001

如有任何驗證步驟指出安裝失敗,請採取以下步驟:

  1. 修正錯誤。
  2. 在「Deployments」頁面上,刪除部署以清除安裝失敗的 VM 與永久磁碟。
  3. 重新執行部署。

保留浮動 IP 位址

您必須選擇一個 IP 位址做為浮動 IP 位址。之後當您設定主機 VM 執行個體中繼資料,以及安裝和設定 IBM db2 與 HA 叢集時,都會用到這個 IP 位址。

視您為浮動 IP 位址選擇的是路徑還是 IP 實作類型而定,浮動 IP 位址的需求也會不同。

如果您要針對浮動 IP 位址使用靜態路徑實作,則該 IP 位址必須位在子網路 IP 位址範圍之外,且不得由您機構延伸網路中的任何其他項目使用。請諮詢您的網路管理員,決定適合使用的 IP 位址。

如果您要針對浮動 IP 位址使用別名 IP 位址實作,就必須從主機所用子網路的 IP 位址範圍中,保留某個 IP 位址。

保留別名 IP 位址的步驟如下 (僅適用於別名 IP 位址實作):

  1. 在主機 VM 上開啟終端機,或開啟 Cloud Shell。

    前往 Cloud Shell

  2. 保留 IP 位址。

    gcloud compute addresses create vip-name --region region --subnet subnet-name \
      --addresses ip-addr-optional

    您不一定要指定位址屬性。如果您未輸入 IP 位址,Compute Engine 會為您從子網路中選擇 IP 位址。

  3. 顯示並記下要在安裝資料庫伺服器和設定 HA 叢集時使用的保留 IP 位址。

    gcloud compute addresses describe vip-name --region=region

    例如:

    db2-ha-s1:~ # gcloud compute addresses describe db2-ha-vip-dh1 --region=us-central1
    address: 10.1.0.30
    addressType: INTERNAL
    creationTimestamp: '2018-11-28T11:34:14.478-08:00'
    description: ''
    id: '6558342813288977241'
    kind: compute#address
    name: db2-ha-vip-dh1
    region: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1/addresses/db2-ha-vip-dh1
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1/subnetworks/example-sap-   subnetwork

將浮動 IP 位址新增至每個主機 VM 執行個體的中繼資料

您可以將浮動 IP 位址資訊 (包括您選擇的路徑或別名 IP 實作類型),指定為叢集中每個 VM 執行個體的自訂中繼資料。如要進一步瞭解如何為浮動 IP 位址選擇實作類型,請參閱 Google Cloud上的 IBM Db2 HA 叢集浮動 IP 位址

視您的實作類型而定,您設定的中繼資料參數會有所不同。在下列兩節中,請根據您的浮動 IP 位址實作類型,按照相關一節的指示操作。

為浮動 IP 位址的路徑實作設定中繼資料

如果您要針對浮動 IP 位址使用路徑實作,請使用下表中的參數和表格下方的程序設定執行個體中繼資料。

參數 目的
sap_ibm_vip_solution route 表示這是多區域部署,使用 Google Cloud 靜態路徑支援在主機之間切換浮動 IP 位址。
sap_ibm_db2_vip ip-address 指定您在上一步中保留的浮動 IP 位址。
sap_ibm_db2_routename route-name 指定任意的靜態路徑名稱。例如,您可以使用 db2-dh1-vip-route
sap_ibm_db2_routenet vpc-network-name 指定包含 IBM Db2 HA 叢集的虛擬私人雲端網路。

如要為浮動 IP 位址的靜態路徑實作設定執行個體中繼資料,請按照下列步驟操作:

  1. 在主機 VM 上開啟終端機,或開啟 Cloud Shell。

    前往 Cloud Shell

  2. 針對叢集中的每個主機 VM 執行個體,為浮動 IP 位址的路徑實作指定相同中繼資料。

    gcloud compute instances add-metadata instance-name \
    --metadata sap_ibm_vip_solution=route,sap_ibm_db2_vip=ip-address,\
    sap_ibm_db2_routename=route-name,sap_ibm_db2_routenet=vpc-network-name \
    --zone instance-zone

針對浮動 IP 位址的別名 IP 位址實作設定中繼資料

如果您要針對浮動 IP 位址使用別名 IP 位址實作,請使用下表中的參數和表格下方的程序設定執行個體中繼資料。

參數 目的
sap_ibm_vip_solution alias 表示這是單區域部署,使用 Google Cloud 別名 IP 位址支援在主機之間切換浮動 IP 位址。
sap_ibm_db2_vip ip-address 指定您在上一步中保留的浮動 IP 位址。
sap_ibm_db2_vip_range alias-ip-range-name (選用) 指定任意的別名 IP 範圍名稱。例如,您可以使用 db2-dh1-vip-alias。預設值為子網路名稱。

如要為浮動 IP 位址的別名 IP 實作設定執行個體中繼資料,請按照下列步驟操作:

  1. 在主機 VM 上開啟終端機,或開啟 Cloud Shell。

    前往 Cloud Shell

  2. 針對叢集中的每個主機 VM 執行個體,為浮動 IP 位址的別名 IP 位址實作指定相同中繼資料。

    gcloud compute instances add-metadata instance-name \
    --metadata sap_ibm_vip_solution=alias,sap_ibm_db2_vip=ip-address,\
    sap_ibm_db2_vip_range=alias-ip-range-name --zone instance-zone

查看或變更執行個體中繼資料

如要查看您設定的執行個體中繼資料,請使用以下指令。

gcloud compute instances describe instance-name --zone instance-zone

如要變更自訂中繼資料,請使用以下指令。

gcloud compute instances add-metadata instance-name --metadata  parm-name=parm-value

將主機名稱和 IP 位址新增到 /etc/hosts

在叢集設定期間,SAP 叢集設定工具會驗證每個主機 VM 和浮動 IP 位址的主機名稱和內部 IP 位址。如要確認是否驗證成功,請使用您偏好的編輯器,將每個主機 VM 的 IP 位址、主機名稱和虛擬私人雲端內部 DNS 名稱以及浮動 IP 位址,新增到每個主機 VM 的 /etc/hosts 檔案中。

例如,以下範例會以 root 權限更新 /etc/hosts

echo "#Db2 HA floating IP additions" >> /etc/hosts
echo 10.2.0.24 db2-ha-vip-dh1 db2-ha-vip-dh1.c.solutions-writers.internal >> /etc/hosts
echo 10.1.0.3 db2-ha-s1 db2-ha-s1.us-central1-c.c.db2-ha-project.internal >> /etc/hosts
echo 10.1.0.2 db2-ha-s2 db2-ha-s2.us-central1-f.c.db2-ha-project.internal >> /etc/hosts

在上述範例的每一行中,主機名稱和 >> 之間的字串是虛擬私人雲端內部 DNS 名稱,這個名稱會由虛擬私人雲端內部 DNS 服務使用。

主機 VM 是使用「區域」內部 DNS 名稱,該名稱包含區域的欄位。浮動 IP 位址是使用「全域」內部 DNS 名稱,該名稱不包括區域欄位。

針對 VM 主機,您可以在主機 VM 上透過終端機輸入以下指令,藉此擷取內部 DNS 名稱:

curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" \
-H "Metadata-Flavor: Google"

針對浮動 IP 位址,您可以使用以下格式自行輸入。

vip-host-name.c.project-name.internal

更新 /etc/hosts 檔案後,/etc/hosts 檔案中的相關資訊應如以下範例所示:

#Db2 HA floating IP additions
10.2.0.24 db2-ha-vip-dh1 db2-ha-vip-dh1.c.solutions-writers.internal
10.1.0.3 db2-ha-s1 db2-ha-s1.us-central1-c.c.db2-ha-project.internal
10.1.0.2 db2-ha-s2 db2-ha-s2.us-central1-f.c.db2-ha-project.internal

準備作業系統

建立 VM 後,請為 IBM Db2 HA 叢集準備作業系統。

相關需求是由 SAP 和 IBM 所定義。SAP 說明文件會要求您安裝 Perl 和 Korn Shell 等軟體,這些軟體可能未預先安裝在 Compute Engine 主機 VM 上。

請參閱下列文件,瞭解最新需求:

安裝資料庫伺服器並建立 IBM Db2 HA 叢集

在開始按照 IBM Db2 高可用性解決方案:IBM Tivoli System Automation for Multiplatforms 中的指示安裝及設定 IBM Db2 和 HA 叢集之前,請查看下列程序的總覽,並特別留意附註。

如要安裝 SAP NetWeaver 和主要應用程式伺服器,請參閱 Google Cloud SAP NetWeaver 說明文件SAP 說明入口網站提供的適用 SAP 安裝指南。

以下步驟是安裝程序的總覽,詳情請參閱 SAP 說明文件。

  1. 依 SAP 說明文件的指示,在主要和次要執行個體之間,以及在各個執行個體和其本身之間,建立金鑰式 SSH 連線。SAP 叢集設定工具會使用 SSH。接著在每個主機上測試所有連線,例如,在 db2-ha-s1 上測試以下兩者。

    • ssh db2-ha-s1
    • ssh db2-ha-s2
  2. SAP 支援入口網站將 Db2 的完整 SAP 媒體集下載或複製到 VM。

  3. 在主要主機 VM 上,使用 SAP Software Provisioning Manager (SWPM) 安裝 IBM Db2 資料庫伺服器。

  4. 在次要主機 VM 上,使用 SAP 同質系統複本等方法設定備用資料庫。

  5. 在這兩個主機 VM 上,安裝 IBM Db2 和 IBM TSAMP 的授權檔案。如要進一步瞭解如何安裝您從 SAP 取得的 IBM 授權,請參閱 SAP 注意事項 816773 - DB6:安裝 SAP 原始設備製造商 (OEM) 授權

  6. 在這兩個主機 VM 上,安裝您資料庫版本和作業系統版本支援的最新版 TSAMP。

  7. 在主要主機 VM 上,使用最新版 SAP 叢集設定工具 sapdb2cluster.sh 設定及建立 IBM Db2 HA 叢集。

  8. 建立叢集後,在主要主機上,使用 DB2 高可用性執行個體設定公用程式 (db2haicu) 測試叢集是否可容錯移轉。

    1. 退出 SAP 叢集設定工具和 Korn 殼層。

    2. 在主要執行個體上,確認主要資料庫伺服器已上線。

      lssam

      在以下 lssam 輸出範例摘錄內容中,主要資料庫執行個體已上線:

      Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
              '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                      |- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                      '- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2

    3. 切換到資料庫執行個體使用者。

      sudo su - db2sid

    4. 啟動 db2haicu 公用程式。

      db2haicusid

    5. 在 db2haicu 介面中,選取選項 [5] 並按照提示操作。

    6. 退出 db2haicu 公用程式。

    7. 在主要主機上,檢查次要主機現在是否已上線。

      lssam

      在以下 lssam 輸出範例摘錄內容中,次要資料庫執行個體已上線:

      Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
              '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                      |- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                      '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2

如要完成叢集設定,請按照下一節的操作說明,為浮動 IP 位址建立自訂 TSAMP 資源,並在 TSAMP 中將其與 IBM Db2 執行個體資源建立關聯。

為浮動 IP 位址建立 TSAMP 自訂資源

如要讓 TSAMP 管理浮動 IP 位址,您必須為其建立 TSAMP 自訂資源。如要讓 TSAMP 在管理浮動 IP 位址資源時與Google Cloud 互動,您必須下載並設定 Google Cloud的輔助指令碼。

下載 Google Cloud 輔助指令碼

在叢集中的每個主機上,下載 Google Cloud 輔助指令碼並設定其權限。

  1. 在主要和備用主機上,以超級使用者的身分從主要 VM 上的 /root 目錄下載指令碼。

    針對未使用共用虛擬私人雲端 (VPC) 設定的執行個體:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_db2/utility/gcp_floating_ip.sh -O gcp_floating_ip.sh
    如果執行個體使用共用虛擬私有雲端設定:
    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_db2/utility/gcp_floating_ip_svpc.sh -O gcp_floating_ip.sh

  2. 在這兩個主機上,設定指令碼的權限。

    chmod 744 gcp_floating_ip.sh

為浮動 IP 位址建立和設定 TSAMP 自訂資源

在叢集中的任一主機上,為浮動 IP 位址建立和設定 TSAMP 自訂資源。

  1. 在任一主機上,使用您偏好的方法建立名稱為 cluster_res.conf 的設定檔,並使用 NodeNameList 參數更新主機名稱,然後在設定檔中貼上以下文字。

    PersistentResourceAttributes::
      Name="gcp_floating_ip-rs"
      ResourceType=1
      StartCommand="/root/gcp_floating_ip.sh start"
      StopCommand="/root/gcp_floating_ip.sh stop"
      MonitorCommand="/root/gcp_floating_ip.sh status"
      MonitorCommandPeriod=30
      MonitorCommandTimeout=30
      StartCommandTimeout=600
      StopCommandTimeout=600
      UserName="root"
      RunCommandsSync=1
      ProtectionMode=0
      NodeNameList={"host-1","host-2"}

  2. 在主要主機上以超級使用者的身分,使用以下指令建立 TSAMP 自訂資源。

    export CT_MANAGEMENT_SCOPE=2
    mkrsrc -f cluster_res.conf IBM.Application
    mkrg -l None gcp_floating_ip-rg
    chrg -o Online gcp_floating_ip-rg
    addrgmbr -g gcp_floating_ip-rg -m F IBM.Application:gcp_floating_ip-rs
    rgreq -o start gcp_floating_ip-rg

  3. 在主要主機上以超級使用者的身分,確認已上線的 Db2 執行個體資源與已上線的浮動 IP 資源位在相同主機上。

    lssam

    在輸出中,已上線資源應該全都在同一個主機 VM 上:

    Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
            '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                    |- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                    '- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2
    Online IBM.ResourceGroup:gcp_floating_ip.sh_rg Nominal=Online
            '- Online IBM.Application:gcp_floating_ip.sh_rs
                    |- Online IBM.Application:gcp_floating_ip.sh_rs:db2-ha-s1
                    '- Offline IBM.Application:gcp_floating_ip.sh_rs:db2-ha-s2

    如果已上線的浮動 IP 位址資源與資料庫執行個體不在同一主機上,請移動浮動 IP 位址資源。

    rgreq -o move -n host-to-move-from gcp_floating_ip-rg

  4. 在主要主機上以超級使用者的身分,於 TSAMP 中建立資料庫執行個體資源和浮動 IP 位址資源之間的關係。

    rgreq -o lock gcp_floating_ip-rg
    rgreq -o lock db2_db2sid_db2sid_SID-rg
    mkrel -o NoCondition -p Collocated \
      -S IBM.Application:gcp_floating_ip-rs -G IBM.Application:db2_db2sid_db2sid_SID-rs \
      db2hadr_colo_gcp_floating_ip
    rgreq -o unlock db2_db2sid_db2sid_SID-rg
    rgreq -o unlock gcp_floating_ip-rg

    在資料庫執行個體資源和浮動 IP 位址資源之間建立關係後,您可以再次測試容錯移轉,如下一節所述。

驗證在 Google Cloud上部署的 SAP 適用 Db2 HA 叢集

如要確認 IBM Db2 HA 叢集是否設定正確,請觸發容錯移轉,並檢查已上線資源是否全都會從某個主機 VM 移至另一個主機 VM。

如要執行容錯移轉測試,請按照下列步驟操作。

  1. 在主要主機上以超級使用者的身分,記下已上線資源目前是在哪個主機 VM 上。

    lssam

  2. 在主要主機上,變更至 db2 執行個體使用者。

    sudo su - db2sid

  3. 啟動 db2haicu 公用程式。

    db2haicu

  4. 在 db2haicu 公用程式介面中,選取選項 [5] 並按照提示操作,藉此觸發容錯移轉。

  5. db2haicu 公用程式處理完畢後,退出公用程式。

  6. 切換到超級使用者。

    sudo su -

  7. 確認已上線資源已移至另一個主機 VM。

驗證 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

執行部署後工作

在 Google Cloud上使用 IBM Db2 高可用性系統前,建議您完成 IBM Db2 高可用性解決方案:IBM Tivoli System Automation for Multiplatforms 中所述的所有安裝後活動,包括:

  1. 驗證資料庫叢集。

  2. 備份 TSAMP 核心政策。

  3. 更新資料庫修正套件。

  4. 更新 Db2 用戶端連線,以使用浮動 IP 位址的主機名稱和 IP 位址。例如,更新 SAP ABAP 應用程式伺服器上的 db2cli.ini 檔案。

如要搭配 NAT 閘道使用 DB2 HA 叢集,請參閱適用於 SAP 的 IBM Db2 部署指南中的「完成 NAT 閘道安裝程序」一節,並按照當中的指示完成 NAT 閘道的設定程序。