搭配 Windows Server 容錯移轉叢集和 Azure 共用磁碟的 SAP ASCS/SCS 執行個體多重 SID 高可用性

Windows OS Windows

本文將著重於如何將單一 SAP ASCS/SCS 安裝移至多重 SAP 系統 ID 設定 (SID),方法是使用 Azure 共用磁碟,將其他 SAP ASCS/SCS 叢集執行個體安裝至現有 Windows Server 容錯移轉叢集 (WSFC) 叢集。 完成此流程之後,您將已設定 SAP 多重 SID 叢集。

先決條件與限制

您可使用 Azure 進階 SSD 磁碟作為 SAP ASCS/SCS 執行個體的 Azure 共用磁碟。 目前有下列限制:

  • Azure Ultra 磁碟儲存體磁碟Azure 標準 SSD 磁碟不支援作為 SAP 工作負載的 Azure 共用磁碟。
  • 可用性設定組和可用性區域中的 SAP 部署支援具有進階 SSD 磁碟Azure 共用磁碟
  • 使用進階 SSD 磁碟的 Azure 共用磁碟隨附兩個儲存體選項:
    • 可用性設定組中的部署支援進階 SSD 共用磁碟 (Premium_LRSskuName 值) 的本地備援儲存體 (LRS)。
    • 可用性區域中的部署支援進階 SSD 共用磁碟 (Premium_ZRSskuName 值) 的 ZRS。
  • Azure 共用磁碟的值 maxShares 會判斷可使用共用磁碟的叢集節點數目。 針對 SAP ASCS/SCS 執行個體,通常會在 WSFC 中設定兩個節點。 然後,將 maxShares 的值設定為 2
  • Azure 共用磁碟不需要 Azure 鄰近放置群組 (PPG)。 但對於使用 PPG 的 SAP 部署,請遵循以下指導方針:
    • 如果您為了一個區域中部署的 SAP 系統使用 PPG,那麼共用磁碟的所有虛擬機器必定屬於相同的 PPG。
    • 如果您像區域性部署的鄰近放置群組中所述,為跨區域部署的 SAP 系統使用 PPG,您可以將 Premium_ZRS 儲存體附加到共用磁碟的虛擬機器。

如需詳細資訊,請參閱 Azure 共用磁碟文件的限制章節。

進階 SSD 共用磁碟的重要考量

請考慮下列有關 Azure 進階 SSD 共用磁碟的重點:

  • 進階 SSD 共用磁碟的 LRS:

    • 若 SAP 部署的進階 SSD 共用磁碟使用 LRS,則會在一個儲存體叢集上使用單一 Azure 共用磁碟作業。 若 Azure 共用磁碟所部署的儲存體叢集發生問題,SAP ASCS/SCS 執行個體會受到影響。
  • 進階 SSD 共用磁碟的 ZRS:

    • 由於資料會跨區域複製,因此 ZRS 的寫入延遲會高於 LRS 的寫入延遲。
    • 不同區域中各可用性區域間的距離有所差異,各可用性區域的 ZRS 磁碟延遲也是如此。 對磁碟進行基準測試,以識別您區域中 ZRS 磁碟延遲。
    • 進階 SSD 共用磁碟的 ZRS 會在該區域中的三個可用性區域之間同步複寫資料。 若其中一個儲存體叢集發生問題,SAP ASCS/SCS 執行個體將會繼續執行,因為對應用程式層而言,儲存體容錯移轉清晰可見。
    • 如需詳細資訊,請參閱受控磁碟 ZRS 文件的限制章節。

重要

安裝程式必須符合下列條件︰

  • 每個資料庫管理系統 (DBMS) SID 必須有自己專用的 WSFC 叢集。
  • SAP 應用程式伺服器屬於必須擁有自己專用虛擬機器 (VM) 的一個 SAP SID。
  • 不支援在相同叢集中混用加入佇列複寫伺服器 1 (ERS1) 和加入佇列複寫伺服器 2 (ERS2)。

支援的 OS 版本

支援 Windows Server 2016、2019 及更新版本。 使用最新的資料中心映像。

強烈建議您至少使用 Windows Server 2019 Datacenter,原因如下:

  • Windows Server 2019 中的 WSFC 可感知 Azure。
  • Windows Server 2019 Datacenter 包含 Azure 主機維護的整合和感知功能,可監視 Azure 排程事件,進而改善體驗。
  • 您可以使用分散式網路名稱。 (這是預設選項。)不需要叢集網路名稱專用的 IP 位址。 此外,也無須在 Azure 內部負載平衡器上設定 IP 位址。

架構

多重 SID 設定支援 ERS1 和 ERS2。 但在相同叢集中不支援混用 ERS1 和 ERS2。

以下範例顯示兩個 SAP SID。 兩者都有 ERS1 架構,其中:

  • SAP SID1 部署在具有 ERS1 的共用磁碟上。 ERS 執行個體安裝在本機主機和本機磁碟上。

    在 Azure 內部負載平衡器上,SAP SID1 具有專用 (虛擬) IP 位址 (SID1 (A) SCS IP1)。

  • SAP SID2 部署在具有 ERS1 的共用磁碟上。 ERS 執行個體安裝在本機主機和本機磁碟上。

    在 Azure 內部負載平衡器上,SAP SID2 具有專用 (虛擬) IP 位址 (SID2 (A)SCS IP2)。

具有 ERS1 設定的兩個高可用性 SAP ASCS/SCS 執行個體圖表。

下一個範例也會顯示兩個 SAP SID。 兩者都有 ERS2 架構,其中:

  • SAP SID1 部署在具有 ERS2 的分區磁碟上 (已建立叢集並部署在本機磁碟機上)。

    在 Azure 內部負載平衡器上,SAP SID1 具有專用 (虛擬) IP 位址 (SID1 (A) SCS IP1)。

    在 Azure 內部負載平衡器上,SAP ERS2 具有專用 (虛擬) IP 位址 (SID1 ERS2 IP2)。

  • SAP SID2 部署在具有 ERS2 的分區磁碟上 (已建立叢集並部署在本機磁碟機上)。

    在 Azure 內部負載平衡器上,SAP SID2 具有專用 (虛擬) IP 位址 (SID2 (A) SCS IP3)。

    在 Azure 內部負載平衡器上,SAP ERS2 具有專用 (虛擬) IP 位址 (SID2 ERS2 IP4)。

  • 在此共有四個虛擬 IP 位址:

    • SID1 (A)SCS IP1
    • SID2 ERS2 IP2
    • SID2 (A)SCS IP3
    • SID2 ERS2 IP4

具有 ERS1 和 ERS2 設定的兩個高可用性 SAP ASCS/SCS 執行個體圖表。

基礎結構準備

除了現有的叢集 SAP PR1 ASCS/SCS 執行個體之外,您還會安裝新的 SAP SID PR2 執行個體。

主機名稱和 IP 位址

根據部署類型,此案例的主機名稱和 IP 位址將如以下範例。

以下是 Azure 可用性設定組中 SAP 部署的詳細資料:

主機名稱角色 主機名稱 靜態 IP 位址 可用性設定組 磁碟 SkuName
第一個叢集節點 ASCS/SCS 叢集 pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
第二個叢集節點 ASCS/SCS 叢集 pr1-ascs-11 10.0.0.5 pr1-ascs-avset
叢集網路名稱 pr1clust 10.0.0.42 (僅適用於 Windows Server 2016 叢集) 不適用
SID1 ASCS 叢集網路名稱 pr1-ascscl 10.0.0.43 不適用
SID1 ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.44 不適用
SID2 ASCS 叢集網路名稱 pr2-ascscl 10.0.0.45 不適用
SID2 ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.46 不適用

以下是 Azure 可用性區域中的 SAP 部署詳細資料:

主機名稱角色 主機名稱 靜態 IP 位址 可用性區域 磁碟 SkuName
第一個叢集節點 ASCS/SCS 叢集 pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
第二個叢集節點 ASCS/SCS 叢集 pr1-ascs-11 10.0.0.5 AZ02
叢集網路名稱 pr1clust 10.0.0.42 (僅適用於 Windows Server 2016 叢集) 不適用
SID1 ASCS 叢集網路名稱 pr1-ascscl 10.0.0.43 不適用
SID2 ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.44 不適用
SID2 ASCS 叢集網路名稱 pr2-ascscl 10.0.0.45 不適用
SID2 ERS 叢集網路名稱 (僅適用於 ERS2) pr1-erscl 10.0.0.46 不適用

本文中的步驟對於這兩種部署類型都保持不變。 但是,如果您的叢集是在可用性設定組中執行,您必須為 Azure 進階 SSD 共用磁碟部署 LRS (Premium_LRS)。 如果您的叢集是在可用性區域中執行,您必須為 Azure 進階 SSD 共用磁碟部署 ZRS (Premium_ZRS)。

建立 Azure 內部負載平衡器

針對 SAP SID、PR2 的多 SID 設定,您可以使用針對 SAP SID、PR1 系統所建立的相同內部負載平衡器。 針對 Windows 上的 ENSA1 架構,您只需要 SAP ASCS/SCS 的一個虛擬 IP 位址。 另一方面,ENSA2 架構需要兩個虛擬 IP 位址 -- 一個用於SAP ASCS,另一個用於 ERS2。

使用下列指導方針,在現有負載平衡器上設定 SAP SID、PR2 系統的其他前端IP 和負載平衡規則。 本節假設 SAP SID、PR1 的標準內部負載平衡器設定已就緒,如建立負載平衡器中所述。

  1. 開啟您為 SAP SID、PR1 系統建立的相同標準內部負載平衡器。
  2. 前端 IP 設定:建立前端 IP (例如 10.0.0.45)。
  3. 後端集區:後端集區與 SAP SID PR1 系統的相同。
  4. 輸入規則:建立負載平衡規則。
    • 前端 IP 位址:選取前端 IP
    • 後端集區:選取後端集區
    • 檢查「高可用性連接埠」
    • 通訊協定:TCP
    • 健全狀態探查:使用下列詳細資料建立健全狀態探查
      • 通訊協定:TCP
      • 連接埠:[例如:適用於 SAP SID、PR2 ASCS 的 620 <執行個體 - 號碼。>]
      • 間隔:5
      • 探查閾值:2
    • 閒置逾時 (分鐘):30
    • 檢查「啟用浮動 IP」
  5. 僅適用於 ENSA2 架構:建立額外的前端 IP (10.0.0.44),負載平衡規則 (針對 ERS2 健康情況探查連接埠使用 621< 執行個體-號碼>),如第 1 點和第 3 點所述。

注意

未遵守健全狀態探查設定屬性 numberOfProbes,在入口網站中又名為「狀況不良閾值」。 若要控制連續探查成功或失敗的數目,請將屬性「probeThreshold」設定為 2。 目前無法使用 Azure 入口網站來設定此屬性,因此請使用 Azure CLIPowerShell 命令。

注意

當沒有公用 IP 位址的 VM 放在內部 (沒有公用 IP 位址) Standard Azure Load Balancer 的後端集區時,除非您執行另外設定來允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需如何實現輸出連線能力的詳細資料,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實現虛擬機器的公用端點連線能力

建立並連結第二個 Azure 共用磁碟

在叢集的其中一個節點上執行此命令。 針對資源群組、Azure 區域和 SAP SID 等詳細資料來調整值。

$ResourceGroupName = "MyResourceGroup"
$location = "MyRegion"
$SAPSID = "PR2"
$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"
$NumberOfWindowsClusterNodes = 2

# For SAP deployment in an availability set, use this storage SkuName value
$SkuName = "Premium_LRS"
# For SAP deployment in an availability zone, use this storage SkuName value
$SkuName = "Premium_ZRS"

$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName  -CreateOption Empty  -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
    
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig
##################################
## Attach the disk to cluster VMs
##################################
# ASCS cluster VM1
$ASCSClusterVM1 = "pr1-ascs-10"
# ASCS cluster VM2
$ASCSClusterVM2 = "pr1-ascs-11"
# Next free LUN
$LUNNumber = 1

# Add the Azure shared disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1 
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $LUNNumber
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

# Add the Azure shared disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $LUNNumber
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

使用 PowerShell 格式化共用磁碟

  1. 取得磁碟編號。 在這其中一個叢集節點上執行 PowerShell 命令:

     Get-Disk | Where-Object PartitionStyle -Eq "RAW"  | Format-Table -AutoSize 
     # Example output
     # Number Friendly Name     Serial Number HealthStatus OperationalStatus Total Size Partition Style
     # ------ -------------     ------------- ------------ ----------------- ---------- ---------------
     # 3      Msft Virtual Disk               Healthy      Online                512 GB RAW            
    
    
  2. 將磁碟格式化。 在此範例中,磁碟編號為 3:

     # Format SAP ASCS disk number 3, with drive letter S
     $SAPSID = "PR2"
     $DiskNumber = 3
     $DriveLetter = "S"
     $DiskLabel = "$SAPSID" + "SAP"
    
     Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru |  New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume  -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose
     # Example outout
     # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining      Size
     # ----------- --------------- ---------- --------- ------------ ----------------- -------------      ----
     # S           PR2SAP          ReFS       Fixed     Healthy      OK                    504.98 GB 511.81 GB
    
  3. 確認磁碟現在已顯示為叢集磁碟:

     # List all disks
     Get-ClusterAvailableDisk -All
     # Example output
     # Cluster    : pr1clust
     # Id         : c469b5ad-d089-4d8f-ae4c-d834cbbde1a2
     # Name       : Cluster Disk 2
     # Number     : 3
     # Size       : 549755813888
     # Partitions : {\\?\GLOBALROOT\Device\Harddisk3\Partition2\}
    
  4. 在該叢集中註冊磁碟:

     # Add the disk to the cluster 
     Get-ClusterAvailableDisk -All | Add-ClusterDisk
     # Example output 
     # Name           State  OwnerGroup        ResourceType 
     # ----           -----  ----------        ------------ 
     # Cluster Disk 2 Online Available Storage Physical Disk
    

建立叢集 SAP ASCS/SCS 執行個體的虛擬主機名稱

  1. 在 Windows DNS 管理員中為 ASCS/SCS 執行個體的虛擬主機名稱建立 DNS 項目。

    您在 DNS 中指派給虛擬主機名稱的 IP 位址,必須與指派給 Azure Load Balancer 的 IP 位址相同。

    此螢幕擷取畫面顯示定義 SAP ASCS/SCS 叢集虛擬名稱和 IP 位址的 DNS 項目選項。

  2. 如果您使用 SAP ERS2 的叢集執行個體,則必須在 DNS 中保留 ERS2 的虛擬主機名稱。

    您在 DNS 中指派給 ERS2 虛擬主機名稱的 IP 位址,必須與指派給 Azure Load Balancer 的 IP 位址相同。

    此螢幕擷取畫面顯示針對 SAP ERS2 叢集虛擬名稱和 IP 位址定義 DNS 項目的選項。

  3. 若要定義指派給虛擬主機名稱的 IP 位址,選取 [DNS 管理員]>[網域]

    此螢幕擷取畫面顯示 SAP ASCS/SCS 和 ERS2 叢集設定的新虛擬名稱和 IP 位址。

SAP 安裝

安裝 SAP 的第一個叢集節點

請遵循 SAP 描述的安裝程序進行。 請務必選取第一個叢集節點作為開始安裝的選項。 選取叢集共用磁碟作為設定選項。 選擇新建立的共用磁碟。

修改 ASCS/SCS 執行個體的 SAP 設定檔

如果您正在執行 ERS1,請新增 SAP 設定檔參數 enque/encni/set_so_keepalive。 此設定檔參數可避免 SAP 工作程序與加入佇列伺服器之間的連線在閒置時間太長時關閉。 ERS2 不需要 SAP 參數。

  1. 若使用 ERS1,將此設定檔參數新增至 SAP ASCS/SCS 執行個體設定檔:

    enque/encni/set_so_keepalive = true
    

    針對 ENSA1 和 ENSA2,請確定已如 SAP 附註 1410736 中所述設定 keepalive OS 參數。

  2. 若要套用 SAP 設定檔參數變更,請重新啟動 SAP ASCS/SCS 執行個體。

在叢集資源上設定探查連接埠

使用內部負載平衡器探查功能,讓整個叢集組態使用 Azure Load Balancer。 Azure 內部負載平衡器通常會在參與的虛擬機器之間,平均分配內送的工作負載。

不過,此方法對某些叢集設定不會產生作用,因為只有一個執行個體是主動的。 另一個執行個體是被動的,而且不接受任何工作負載。 探查功能可協助 Azure 內部負載平衡器偵測到作用中的執行個體,且只以作用中的執行個體為目標。

重要

在此範例設定中,探查連接埠已設為 620nr。 對於 SAP ASCS 搭配執行個體編號 02,則是 62002。

您必須調整設定以比對 SAP 執行個體號碼和 SAP SID。

若要新增探查連接埠,請在其中一個叢集 VM 上執行此 PowerShell 模組:

  • 如果您使用 SAP ASC/SCS 搭配執行個體編號 02:

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID PR2 -ProbePort 62002
    
  • 如果您使用 ERS2 搭配執行個體編號 12,請設定探查連接埠。 不需要設定 ERS1 的探查連接埠。 執行個體編號 12 的 ERS2 已建立叢集,而 ERS1 並未建立叢集。

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID PR2 -ProbePort 62012 -IsSAPERSClusteredInstance $True
    

函式 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource 的程式碼如以下範例所示:

 function Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource {
 <#
 .SYNOPSIS 
 Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer health probe port on the SAP $SAPSID IP cluster resource.
    
 .DESCRIPTION
 Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer health probe port on the SAP $SAPSID IP cluster resource.
 It will also restart the SAP cluster group (default behavior), to activate the changes. 
    
 You need to run it on one of the SAP ASCS/SCS Windows cluster nodes.
    
 The expectation is that the SAP group is installed with the official SWPM installation tool, which will set the default expected naming convention for:
 - SAP cluster group:               SAP $SAPSID
 - SAP cluster IP address resource: SAP $SAPSID IP 
    
 .PARAMETER SAPSID 
 SAP SID - three characters, starting with a letter.
    
 .PARAMETER ProbePort 
 Azure Load Balancer health check probe port.
    
 .PARAMETER RestartSAPClusterGroup 
 Optional parameter. Default value is $True, so the SAP cluster group will be restarted to activate the changes.
    
 .PARAMETER IsSAPERSClusteredInstance 
 Optional parameter. Default value is $False.
 If it's set to $True, then handle the clustered new SAP ERS2 instance.
    
    
 .EXAMPLE 
 # Set the probe port to 62000 on SAP cluster resource SAP AB1 IP, and restart the SAP cluster group SAP AB1 to activate the changes.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 
    
 .EXAMPLE 
 # Set the probe port to 62000 on SAP cluster resource SAP AB1 IP. SAP cluster group SAP AB1 is not restarted, so the changes are not active.
 # To activate the changes, you need to manually restart the SAP AB1 cluster group.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -RestartSAPClusterGroup $False
    
 .EXAMPLE 
 # Set the probe port to 62001 on SAP cluster resource SAP AB1 ERS IP. SAP cluster group SAP AB1 ERS is restarted to activate the changes.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -IsSAPERSClusteredInstance $True
        
 #> 
    
     [CmdletBinding()]
     param(
            
         [Parameter(Mandatory=$True)]
         [ValidateNotNullOrEmpty()]  
         [ValidateLength(3,3)]      
         [string]$SAPSID,

         [Parameter(Mandatory=$True)]
         [ValidateNotNullOrEmpty()]        
         [int] $ProbePort,
    
         [Parameter(Mandatory=$False)] 
         [bool] $RestartSAPClusterGroup = $True,
    
         [Parameter(Mandatory=$False)] 
         [bool] $IsSAPERSClusteredInstance = $False
      
     )
  
     BEGIN{}
        
     PROCESS{
         try{                                      
                
             if($IsSAPERSClusteredInstance){
                 #Handle clustered SAP ERS instance
                 $SAPClusterRoleName = "SAP $SAPSID ERS"
                 $SAPIPresourceName = "SAP $SAPSID ERS IP"            
             }else{
                 #Handle clustered SAP ASCS/SCS instance
                 $SAPClusterRoleName = "SAP $SAPSID"
                 $SAPIPresourceName = "SAP $SAPSID IP"
             }

             $SAPIPResourceClusterParameters =  Get-ClusterResource $SAPIPresourceName | Get-ClusterParameter
             $IPAddress = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Address" }).Value
             $NetworkName = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Network" }).Value
             $SubnetMask = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "SubnetMask" }).Value
             $OverrideAddressMatch = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "OverrideAddressMatch" }).Value
             $EnableDhcp = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "EnableDhcp" }).Value
             $OldProbePort = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "ProbePort" }).Value
    
             $var = Get-ClusterResource | Where-Object {  $_.name -eq $SAPIPresourceName  }
    
             #Write-Host "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:" -ForegroundColor Cyan
             Write-Output "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:" 
   
             Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
    
             Write-Output " "
             Write-Output "Current probe port property of the SAP cluster resource '$SAPIPresourceName' is '$OldProbePort'." 
             Write-Output " "
             Write-Output "Setting the new probe port property of the SAP cluster resource '$SAPIPresourceName' to '$ProbePort' ..." 
             Write-Output " "
    
             $var | Set-ClusterParameter -Multiple @{"Address"=$IPAddress;"ProbePort"=$ProbePort;"Subnetmask"=$SubnetMask;"Network"=$NetworkName;"OverrideAddressMatch"=$OverrideAddressMatch;"EnableDhcp"=$EnableDhcp}
    
             Write-Output " "
    
             #$ActivateChanges = Read-Host "Do you want to take restart SAP cluster role '$SAPClusterRoleName', to activate the changes (yes/no)?"
    
             if($RestartSAPClusterGroup){
                 Write-Output ""
                 Write-Output "Activating changes..." 
    
                 Write-Output " "
                 Write-Output "Taking SAP cluster IP resource '$SAPIPresourceName' offline ..."
                 Stop-ClusterResource -Name $SAPIPresourceName
                 sleep 5
    
                 Write-Output "Starting SAP cluster role '$SAPClusterRoleName' ..."
                 Start-ClusterGroup -Name $SAPClusterRoleName
    
                 Write-Output "New ProbePort parameter is active." 
                 Write-Output " "
    
                 Write-Output "New configuration parameters for SAP IP cluster resource '$SAPIPresourceName':" 
                 Write-Output " " 
                 Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
             }else
             {
                 Write-Output "SAP cluster role '$SAPClusterRoleName' is not restarted, therefore changes are not activated."
             }
         }
         catch{
            Write-Error  $_.Exception.Message
        }
    
     }
    
     END {}
 }

繼續安裝 SAP 作業

  1. 請依照 SAP 安裝指南中所述的程序安裝資料庫執行個體。

  2. 請依照 SAP 安裝指南中所述,在第二個叢集上安裝 SAP。

  3. 在指派來裝載 PAS 的虛擬機器上,安裝 SAP 主要應用程式伺服器 (PAS) 執行個體。

    請遵循 SAP 安裝指南中所述的程序。 在 Azure 上沒有相依性。

  4. 在指派來裝載 SAP 應用程式伺服器執行個體的虛擬機器上,安裝其他 SAP 應用程式伺服器。

    請遵循 SAP 安裝指南中所述的程序。 在 Azure 上沒有相依性。

測試 SAP ASCS/SCS 執行個體容錯移轉

概述的容錯移轉測試會假設 SAP ASCS 在節點 A 上的狀態為作用中。

  1. 確認 SAP 系統可以成功從節點 A 容錯移轉至節點 B。在此範例中,會針對 SAP SID PR2 執行測試。

    請確認每個 SAP SID 都可以成功移至其他叢集節點。 使用下列其中一個選項以起始將 SAP <SID> 叢集群組從叢集節點 A 到叢集節點 B 的容錯移轉:

    • 容錯移轉叢集管理員
    • 容錯移轉叢集的 PowerShell 命令
    $SAPSID = "PR2"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. 重新啟動 Windows 客體作業系統內的叢集節點 A。 此步驟會起始 SAP <SID> 叢集群組從節點 A 到節點 B 的自動容錯移轉。

  3. 從 Azure 入口網站重新啟動叢集節點 A。 此步驟會起始 SAP <SID> 叢集群組從節點 A 到節點 B 的自動容錯移轉。

  4. 使用 Azure PowerShell 重新啟動叢集節點 A。 此步驟會起始 SAP <SID> 叢集群組從節點 A 到節點 B 的自動容錯移轉。

下一步