Linux 適用的 SAP MaxDB 部署指南

本部署指南說明如何部署並連線到 Compute Engine 虛擬機器 (VM),此 VM 已事先準備就緒,以便我們在 Linux 作業系統上安裝 SAP MaxDB。

本指南中的操作說明使用 Cloud Deployment Manager 部署及設定 SAP MaxDB 的 VM、Linux 作業系統以及所需磁碟區。

如要瞭解如何規劃部署,請參閱 SAP MaxDB 規劃指南

必要條件

如果您希望 SAP 工作負載能遵循資料落地、存取權控管、支援人員或法規規定執行,就必須建立必要的 Assured Workloads 資料夾。詳情請參閱「SAP on Google Cloud的符合性和主權控管措施」。

如果您還沒有啟用計費功能的 Google Cloud 專案,則必須先建立一個這樣的專案,才能為 SAP MaxDB 安裝部署 VM。

建立專案:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 設定 gcloud 指令環境

    以下操作說明使用 Cloud Shell 輸入 gcloud 指令,以部署或設定 Google Cloud 資源。您可以透過瀏覽器的Google Cloud 主控台存取 Cloud Shell。

    您每次啟動 Cloud Shell 時,Cloud Shell 都會在 GCP 佈建的 VM 上執行。 Google Cloud 第一次使用 Cloud Shell 時,Google Cloud 也會為您建立永久的 $HOME 目錄,此目錄會在您每次開啟 Cloud Shell 時復原。

    您佈建的 VM 含有最新版 Google Cloud CLI。因此,您在 Cloud Shell 中使用的 gcloud 指令與您在本機安裝的 gcloud CLI 執行個體中使用的指令相同。

    如果您已安裝 gcloud CLI,即可從本機電腦發出此操作說明使用的 gcloud 指令。但是,如果您已在本機安裝 gcloud CLI,請務必確保您使用的是最新版的 gcloud CLI。

    無論您使用 Cloud Shell 或 gcloud CLI,都可以設定並變更 gcloud 指令環境的屬性,並將其儲存為「設定」。「設定」是指鍵/值組合的集合,可影響 gcloud 指令的行為。

    您透過這類設定可在 Cloud Shell 中採取的動作包括:

    • 初始化設定:

      gcloud init
    • 檢查目前的 gcloud 設定:

      gcloud config list
    • 切換至所需的 Google Cloud 專案。將 PROJECT_ID 替換為您的 Google Cloud 專案 ID。

      gcloud config set project PROJECT_ID
    • 設定預設區域。將 REGION 替換為Google Cloud 區域。

      gcloud config set compute/region REGION
    • 設定預設區域。將 ZONE 替換為Google Cloud 區域。

      gcloud config set compute/zone ZONE
    • 建立新的設定。將 NAME 替換為設定名稱。

      gcloud config configurations create NAME

    如要進一步瞭解如何使用設定,請參閱「管理 gcloud CLI 設定」。

    建立網路

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

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

    在部署期間,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 位址的情況下,安全地存取網際網路。

    使用 Deployment Manager 部署 SAP MaxDB 的 Linux VM

    以下操作說明使用 Deployment Manager 部署使用 Linux 的 VM 以及 SAP MaxDB 需要的所有永久磁碟。

    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 說明文件

    部署程序

    1. 開啟 Cloud Shell。

      前往 Cloud Shell

    2. 在 Cloud Shell 中輸入以下指令,下載 template.yaml 設定檔案範本到您的工作目錄:

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

    4. 在 Cloud Shell 程式碼編輯器中開啟 template.yaml 檔案。

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

    5. 在 template.yaml 檔案中,使用安裝的值來取代括號及其內容,即可更新下列屬性值。

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

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

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

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

      instanceName 字串 將要安裝 SAP MaxDB 的 VM 執行個體名稱。名稱不得超過 13 個半形字元,且應使用小寫英文字母、數字或連字號。
      instanceType 字串 SAP MaxDB 安裝所在的 Compute Engine 虛擬機器類型。請指定具有兩個以上 vCPU 的機器類型。例如 `n1-standard-4`。如果您在相同 VM 上執行具備 SAP MaxDB 的 SAP ASE,請選擇包含足夠 CPU 和記憶體支援兩種系統的機器類型。請參閱 SAP NetWeaver 規劃指南
      可用區 字串 部署 SAP MaxDB 的區域。這個區域必須位於您為子網路選取的地區內。
      子網路 字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 [SHAREDVPC_PROJECT]/[SUBNETWORK]。例如:myproject/network1
      linuxImage 字串 要用於 SAP MaxDB 的 Linux 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置詞,例如 family/rhel-7family/sles-12-sp3-sap。如要指定特定映像檔,請只指定映像檔名稱。如需可用的映像檔系列清單,請參閱 Cloud Console 中的「映像檔」頁面。
      linuxImageProject 字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像專案,例如 rhel-sap-cloudsuse-sap-cloud。如需 Google Cloud映像檔專案清單,請參閱 Compute Engine 說明文件中的「映像檔」頁面。
      maxdbSID 字串 資料庫執行個體 ID。
      maxdbRootSize 整數 /sapdb 的大小 (以 GB 為單位),這是資料庫執行個體的根目錄。maxdbRootSize 的最小值和預設值都是 8 GB。
      maxdbDataSize 整數 /sapdb/[DBSID]/sapdata 的大小,這個目錄包含資料庫資料檔案。maxdbDataSize 的最小值和預設值都是 30 GB。
      maxdbLogSize 整數 /sapdb/[DBSID]saplog 的大小,這個目錄包含資料庫交易記錄。maxdbLogSize 的最小值和預設值都是 8 GB。
      maxdbBackupSize 整數 /maxdbbackup 磁碟區的大小。這是選用屬性。如果設為 0 或省略,則不會建立任何磁碟。
      maxdbDataSSD 布林值 指定資料磁碟使用的是 SSD 永久磁碟 (`Yes`) 還是 HDD 永久磁碟 (`No`)。預設值為 `Yes`。
      maxdbLogSSD 布林值 指定記錄磁碟使用的是 SSD 永久磁碟 (`Yes`) 還是 HDD 永久磁碟 (`No`)。預設值為 `Yes`。建議使用 SSD 做為記錄磁碟。
      usrsapSize 整數 只有在您要安裝 SAP MaxDB 以便在相同 VM 執行個體上執行 SAP NetWeaver 時,才需要填寫這個欄位。
      sapmntSize 整數 只有在您要安裝 SAP MaxDB 以便在相同 VM 執行個體上執行 SAP NetWeaver 時,才需要填寫這個欄位。
      swapSize 整數 只有在安裝 SAP MaxDB 時,要與相同 VM 執行個體上的 SAP NetWeaver 搭配執行時,此欄位才是必要欄位。

      下列設定檔會建立 VM,可設定為執行 SAP MaxDB 資料庫伺服器與 SAP NetWeaver。此設定檔會引導 Deployment Manager 部署執行 SLES 12 SP3 作業系統的 n1-standard-16 VM。這個 VM 包含執行具備 NetWeaver 的 SAP MaxDB 時需要的所有目錄。

      resources:
      - name: sap_maxdb
        type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_maxdb/sap_maxdb.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_maxdb/sap_maxdb.py
        #
        properties:
          instanceName: xmp-maxdb-lin
          instanceType: n1-standard-16
          zone: us-central1-f
          subnetwork: example-sub-network
          linuxImage: family/sles-12-sp3-sap
          linuxImageProject: suse-sap-cloud
          maxdbSID: MD1
          maxdbRootSize: 10
          maxdbDataSize: 50
          maxdbLogSize: 30
          maxdbBackupSize: 100
          maxdbDataSSD: Yes
          maxdbLogSSD: Yes
          usrsapSize: 15
          sapmntSize: 15
          swapSize: 24
    6. 建立 VM 執行個體:

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

      上述指令會叫用 Deployment Manager,依據 template.yam 檔案中的規格部署 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. 分析篩選過的記錄:

    檢查 VM 的設定

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

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

    2. 變更為超級使用者:

      sudo su -
    3. 在命令提示字元中輸入 df -h。請確認看到類似以下畫面的輸出內容,例如 //sapdb/[DBSID]/sapdata 目錄。

      指令碼建立的資料量。

    4. 如果您在與 SAP NetWeaver 相同的 VM 上安裝 SAP MaxDB,請輸入下列指令以確認已建立更換目錄:

      cat /proc/meminfo | grep Swap

      您會看到像是下面範例的結果:

      當更換目錄存在時終端機輸出的範例。

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

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

    安裝資料庫

    作業系統設定現在已經完成,可以安裝 SAP MaxDB 資料庫。MaxDB 通常會連同整合的 SAP 產品一起安裝。

    如要在 VM 上安裝 SAP MaxDB:

    1. 與以 Linux 為基礎的 VM 建立 SSH 連線。
    2. 根據 SAP 安裝指南,下載 SAP Software Provisioning Manager (SWPM)、SAP 產品安裝媒體與 MaxDB 安裝媒體。
    3. 根據 SAP 產品的 SAP 安裝指南,安裝 SAP 產品與 SAP MaxDB 資料庫。如需其他指引,請參閱 SAP MaxDB 說明文件

    SAP 在 SAP 附註 1020175 - 常見問題:SAP MaxDB 安裝、升級或套用修補程式中提供其他安裝資訊。

    驗證 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 MaxDB 執行個體之前,建議您執行下列部署後步驟:

    1. 如果有最新的修補程式,請利用這些程式更新 SAP MaxDB 軟體。
    2. 安裝任何額外的元件。
    3. 設定並備份新的 SAP MaxDB 資料庫。

    詳情請參閱 SAP MaxDB 資料庫管理

    疑難排解

    本章節提供有關如何修正一般問題的資訊。

    連線到 VM 的疑難排解

    如您在透過 SSH 連線到 VM 時出現問題,請確認您已經建立防火牆規則,以在使用的 Google Cloud 網路開啟通訊埠 22。

    如為其他可能的問題,請參閱透過瀏覽器使用 SSH 的已知問題