本指南說明如何使用 Google Cloud的 SAP 代理程式,透過磁碟快照功能備份及復原 SAP HANA 資料庫。
如要瞭解這項功能,請參閱「使用磁碟快照備份及復原 SAP HANA」。
事前準備
- 驗證 Google Cloud的 Agent for SAP 安裝作業。如需操作說明,請參閱「在 Compute Engine 執行個體上安裝及設定 Google Cloud的 Agent for SAP」。
驗證 SAP HANA 系統是否已部署在 Compute Engine 執行個體上,如下所示:
- 不會與主機自動容錯移轉解決方案一併部署。詳情請參閱「使用快照搭配橫向擴展部署作業」。
- 採用 SAP 認證的作業系統 (OS)。詳情請參閱 Google Cloud上 SAP HANA 的作業系統支援
/hana/data
磁碟區會獨立代管在一或多個以 SSD 為基礎的 Persistent Disk 或 Hyperdisk 磁碟區。這些磁碟不得代管其他 SAP HANA 磁碟區。如 SAP 注意事項 2039883 - 常見問題:SAP HANA 資料庫和資料快照 (儲存空間快照)所述,為了能夠復原 SAP HANA 資料庫,儲存空間快照不得包含資料庫的記錄區。
如果您使用多個磁碟來代管
/hana/data
磁碟區,則只有在底層磁碟為 Hyperdisk 磁碟區時,您才能使用代理程式的磁碟快照功能。/hana/data
磁碟區會對應至邏輯磁碟區。這可讓代理程式在磁碟快照型備份或復原作業期間正確處理掛載點。- 底層基礎架構並未使用基礎架構即程式碼 (IaC) 工具 (例如 Terraform) 部署。詳情請參閱使用快照與 IaC 工具為基礎的部署作業。
設定權限
如要使用 Google Cloud的 SAP 代理程式磁碟快照功能備份及復原 SAP HANA 資料庫,您必須設定下列權限:
如要建立磁碟快照,請授予下列 IAM 權限:
使用一個資料磁碟擴充
如果
/hana/data
磁碟區是託管在一個永久磁碟或 Hyperdisk 磁碟區中,請將下列權限授予 Compute Engine 執行個體:compute.disks.create compute.disks.createSnapshot compute.disks.get compute.disks.setLabels compute.disks.use compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.snapshots.create compute.snapshots.get compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
使用資料磁碟區條紋擴充
如果
/hana/data
磁碟區是在多個永久磁碟或 Hyperdisk 磁碟區上託管,請為 Compute Engine 執行個體授予下列權限:compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
向外擴充 (不含主機自動容錯移轉)
如要進行擴大部署,請授予 Compute Engine 執行個體下列權限:
compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.resourcePolicies.delete compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
如要建立以磁碟快照為基礎的備份,代理程式使用的 SAP HANA 資料庫使用者必須具備
BACKUP OPERATOR
或BACKUP ADMIN
權限。詳情請參閱 SAP 文件「備份與復原作業所需的授權」如要備份及復原 SAP HANA 資料庫,執行代理程式指令的作業系統使用者必須是
root
使用者,或是具備sudo
存取權,才能執行下列指令。您也可以在/etc/sudoers.d
目錄中建立群組,藉此提供sudo
存取權,例如:%sapagent_snapshot_sudoers ALL=(ALL:ALL) NOPASSWD:/sbin/lvdisplay, /sbin/vgscan, /sbin/dmsetup, /sbin/lvscan, /usr/sbin/xfs_freeze, /usr/bin/google_cloud_sap_agent
驗證以磁碟快照為基礎的備份和復原作業設定
您可以驗證是否已正確 Google Cloud 設定代理程式,以便為 SAP HANA 系統執行磁碟快照備份和復原作業。方法是執行代理程式的 status
指令,這個指令自代理程式 3.7 版起就已支援。
如要這樣做,請按照下列步驟進行:
- 與 Compute Engine 執行個體或 Bare Metal 解決方案伺服器建立 SSH 連線。
執行下列指令:
sudo /usr/bin/google_cloud_sap_agent status
如果您已正確設定磁碟快照備份和復原功能,輸出內容就會包含下列內容。您的設定可能包含
default
以外的值。Agent Status: ... Systemd Service Enabled: True Systemd Service Running: True Cloud API Full Scopes: True Configuration File: /etc/google-cloud-sap-agent/configuration.json Configuration Valid: True ... ---------------------------------------------------------------------------- Disk Snapshot: Enabled Status: Fully Functional IAM Permissions: All granted ...
建立磁碟一致性群組
如果 /hana/data
磁碟區位於單一磁碟上,請略過本節。
如果 /hana/data
磁碟區位於多個磁碟上,您必須建立一致性群組,並將代管 /hana/data
磁碟區的磁碟新增至該一致性群組。您必須在與磁碟相同的地區中建立一致性群組。
如要進一步瞭解如何執行這項操作,請參閱「建立一致性群組」。
請記下一致性群組名稱,代理程式在建立快照型備份時會使用這個值。
建立以磁碟快照為基礎的備份
如要為 SAP HANA 資料庫的 /hana/data
磁碟分割區建立以磁碟快照為基礎的備份,請執行 Google Cloud的 SAP 代理程式 hanadiskbackup
指令:
使用一個資料磁碟擴充
如要為 SAP HANA 資料庫的 /hana/data
磁區建立以磁碟快照為基礎的備份,請執行 Google Cloud的 SAP 代理程式 hanadiskbackup
指令:
自 3.3 版起,-source-disk
和 -source-disk-zone
引數可選用,可與 hanadiskbackup
指令搭配使用。這是因為代理程式可以自動偵測代管 /hana/data
目錄的磁碟。不過,如果您指定這些引數,則會覆寫代理程式的自動偵測功能。
- 如果您想使用
hdbuserstore
金鑰進行 SAP HANA 驗證,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- 如果您想使用使用者名稱和 Secret Manager 密鑰進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- 如果您想使用使用者名稱和密碼進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
更改下列內容:
DESTINATION_PROJECT_ID
:您要建立磁碟快照的Google Cloud 專案 IDHANA_HOST_ADDRESS
:託管 SAP HANA 資料庫的 Compute Engine 執行個體的主機名稱或 IP 位址在高可用性 (HA) 系統中,請在主要 SAP HANA 節點中指定本機主機的主機名稱或 IP 位址。請勿使用叢集中使用的虛擬 IP (VIP) 來識別主要節點。在災難復原 (DR) 部署中,請在主要 SAP HANA 執行個體中指定本機主機的主機名稱或 IP 位址。
HANA_PORT_NUMBER
:接受備份和復原要求的 SAP HANA 通訊埠SID
:SAP HANA 系統的 SAP 系統 ID (SID)HANA_USERNAME
:您要用來建立備份的 SAP HANA 資料庫使用者名稱HDB_USERSTORE_KEY
:如果您已建立hdbuserstore
金鑰來驗證指定的 SAP HANA 使用者,請指定該金鑰HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 來儲存 SAP HANA 資料庫使用者的密碼,請指定相應的密鑰名稱HANA_PASSWORD
:如果您要使用純文字密碼進行 SAP HANA 驗證,請指定該密碼
下表說明 hanadiskbackup
指令支援的引數:
引數 | 說明 |
---|---|
-port |
指定接受備份和復原要求的 SAP HANA 通訊埠。 |
-sid |
指定 SAP HANA 系統的 SAP 系統 ID (SID)。 |
-hana-db-user |
指定要用來建立備份的 SAP HANA 資料庫使用者名稱。 如果您指定 |
-password |
指定您用來建立備份的 SAP HANA 資料庫使用者密碼。 如果您使用 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-password-secret |
(非必要) 如果您使用 Secret Manager 儲存 SAP HANA 資料庫使用者的密碼,請指定對應的機密名稱。 在 Secret Manager 中,請確認密鑰值 (即密碼) 至少包含 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-hdbuserstore-key |
如要安全地連線至 SAP HANA 系統,請指定您為該系統建立的 安全使用者儲存庫 ( 如要使用
這個設定參數自 3.3 版開始支援。 如果您指定 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-host |
(非必要) 指定託管 SAP HANA 系統的 Compute Engine 執行個體 IP 位址。預設值為 localhost 。 |
-project |
(非必要) 指定 SAP HANA 執行個體執行所在的 Google Cloud 專案 ID。 |
-abandon-prepared |
(非必要) 指定是否要忽略任何現有的快照式備份。預設值為 false 。 |
-snapshot-name |
(非必要) 指定要建立的磁碟快照名稱。只有在 根據預設,快照的命名格式如下: |
-snapshot-description |
(非必要) 指定磁碟快照的說明。這個引數僅適用於 /hana/data 磁碟區位於單一磁碟的情況。 |
-snapshot-type |
(非必要) 指定要為代管 根據預設,代理程式會建立標準快照。這個引數支援的值: 這個引數自 3.6 版代理程式起開始支援。 |
-group-snapshot-name |
(非必要) 為代管 根據預設,快照群組名稱會使用以下格式設定: 這個引數自 3.6 版代理程式起開始支援。 |
-labels |
(非必要) 指定一或多個標籤-值組合,以便與您要建立的磁碟快照建立關聯。例如:-labels="label1=value1,label2=value2" 。 |
-storage-location |
(非必要) 指定要儲存磁碟快照的 Cloud Storage 多地區或 Cloud Storage 地區。 |
-freeze-file-system |
(非必要) 指定代理程式是否要凍結 SAP HANA 資料庫的檔案系統。預設值為 這個引數自 3.2 版代理程式起開始支援。 |
-send-metrics-to-monitoring |
(非必要) 指定是否要將快照建立作業的執行狀態傳送至 Cloud Monitoring。預設值為 TRUE 。 |
-loglevel |
(非必要) 指定快照建立作業的記錄層級。預設的記錄層級為 info 。可用的記錄層級為:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
(非必要) 如果您想在快照建立完成後立即確認快照是否已建立至 SAP HANA,但不確認是否已上傳至為 預設值為 這個引數自 3.4 版的代理程式起開始支援。 |
使用資料磁碟區條紋擴充
如要為 SAP HANA 資料庫的 /hana/data
磁區建立以磁碟快照為基礎的備份,請執行 Google Cloud的 SAP 代理程式 hanadiskbackup
指令:
自 3.3 版起,-source-disk
和 -source-disk-zone
引數可選用,可與 hanadiskbackup
指令搭配使用。這是因為代理程式可以自動偵測代管 /hana/data
目錄的磁碟。不過,如果您指定這些引數,則會覆寫代理程式的自動偵測功能。
- 如果您想使用
hdbuserstore
金鑰進行 SAP HANA 驗證,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- 如果您想使用使用者名稱和 Secret Manager 密鑰進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- 如果您想使用使用者名稱和密碼進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
更改下列內容:
DESTINATION_PROJECT_ID
:您要建立磁碟快照的Google Cloud 專案 IDHANA_HOST_ADDRESS
:託管 SAP HANA 資料庫的 Compute Engine 執行個體的主機名稱或 IP 位址在高可用性 (HA) 系統中,請在主要 SAP HANA 節點中指定本機主機的主機名稱或 IP 位址。請勿使用叢集中使用的虛擬 IP (VIP) 來識別主要節點。在災難復原 (DR) 部署中,請在主要 SAP HANA 執行個體中指定本機主機的主機名稱或 IP 位址。
HANA_PORT_NUMBER
:接受備份和復原要求的 SAP HANA 通訊埠SID
:SAP HANA 系統的 SAP 系統 ID (SID)HANA_USERNAME
:您要用來建立備份的 SAP HANA 資料庫使用者名稱HDB_USERSTORE_KEY
:如果您已建立hdbuserstore
金鑰來驗證指定的 SAP HANA 使用者,請指定該金鑰HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 來儲存 SAP HANA 資料庫使用者的密碼,請指定相應的密鑰名稱HANA_PASSWORD
:如果您要使用純文字密碼進行 SAP HANA 驗證,請指定該密碼
下表說明 hanadiskbackup
指令支援的引數:
引數 | 說明 |
---|---|
-port |
指定接受備份和復原要求的 SAP HANA 通訊埠。 |
-sid |
指定 SAP HANA 系統的 SAP 系統 ID (SID)。 |
-hana-db-user |
指定要用來建立備份的 SAP HANA 資料庫使用者名稱。 如果您指定 |
-password |
指定您用來建立備份的 SAP HANA 資料庫使用者密碼。 如果您使用 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-password-secret |
(非必要) 如果您使用 Secret Manager 儲存 SAP HANA 資料庫使用者的密碼,請指定對應的機密名稱。 在 Secret Manager 中,請確認密鑰值 (即密碼) 至少包含 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-hdbuserstore-key |
如要安全地連線至 SAP HANA 系統,請指定您為該系統建立的 安全使用者儲存庫 ( 如要使用
這個設定參數自 3.3 版開始支援。 如果您指定 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-host |
(非必要) 指定託管 SAP HANA 系統的 Compute Engine 執行個體 IP 位址。預設值為 localhost 。 |
-project |
(非必要) 指定 SAP HANA 執行個體執行所在的 Google Cloud 專案 ID。 |
-abandon-prepared |
(非必要) 指定是否要忽略任何現有的快照式備份。預設值為 false 。 |
-snapshot-name |
(非必要) 指定要建立的磁碟快照名稱。只有在 根據預設,快照的命名格式如下: |
-snapshot-description |
(非必要) 指定磁碟快照的說明。這個引數僅適用於 /hana/data 磁碟區位於單一磁碟的情況。 |
-snapshot-type |
(非必要) 指定要為代管 根據預設,代理程式會建立標準快照。這個引數支援的值: 這個引數自 3.6 版代理程式起開始支援。 |
-group-snapshot-name |
(非必要) 為代管 根據預設,系統會使用以下格式設定快照群組名稱: 這個引數自 3.6 版代理程式起開始支援。 |
-labels |
(非必要) 指定一或多個標籤-值組合,以便與您要建立的磁碟快照建立關聯。例如:-labels="label1=value1,label2=value2" 。 |
-source-disks |
選用。 在部署中指定代管 /hana/data 磁碟區的磁碟名稱。請使用半形逗號分隔磁碟名稱。例如:-source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
(非必要) 指定要儲存磁碟快照的 Cloud Storage 多地區或 Cloud Storage 地區。 |
-freeze-file-system |
(非必要) 指定代理程式是否要凍結 SAP HANA 資料庫的檔案系統。預設值為 這個引數自 3.2 版代理程式起開始支援。 |
-send-metrics-to-monitoring |
(非必要) 指定是否要將快照建立作業的執行狀態傳送至 Cloud Monitoring。預設值為 TRUE 。 |
-loglevel |
(非必要) 指定快照建立作業的記錄層級。預設的記錄層級為 info 。可用的記錄層級為:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
(非必要) 如果您想在快照建立完成後立即確認快照是否已建立至 SAP HANA,但不確認是否已上傳至為 預設值為 這個引數自 3.4 版的代理程式起開始支援。 |
向外擴充 (不含主機自動容錯移轉)
如要為 SAP HANA 資料庫的 /hana/data
磁區建立以磁碟快照為基礎的備份,請執行 Google Cloud的 SAP 代理程式 hanadiskbackup
指令:
- 如果您想使用
hdbuserstore
金鑰進行 SAP HANA 驗證,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- 如果您想使用使用者名稱和 Secret Manager 密鑰進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- 如果您想使用使用者名稱和密碼進行 SAP HANA 驗證,請執行下列指令:
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
更改下列內容:
DESTINATION_PROJECT_ID
:您要建立磁碟快照的Google Cloud 專案 IDHANA_HOST_ADDRESS
:託管 SAP HANA 資料庫的 Compute Engine 執行個體的主機名稱或 IP 位址在高可用性 (HA) 系統中,請在主要 SAP HANA 節點中指定本機主機的主機名稱或 IP 位址。請勿使用叢集中使用的虛擬 IP (VIP) 來識別主要節點。在災難復原 (DR) 部署中,請在主要 SAP HANA 執行個體中指定本機主機的主機名稱或 IP 位址。
HANA_PORT_NUMBER
:接受備份和復原要求的 SAP HANA 通訊埠SID
:SAP HANA 系統的 SAP 系統 ID (SID)HANA_USERNAME
:您要用來建立備份的 SAP HANA 資料庫使用者名稱HDB_USERSTORE_KEY
:如果您已建立hdbuserstore
金鑰來驗證指定的 SAP HANA 使用者,請指定該金鑰HANA_USER_PWD_SECRET_NAME
:如果您使用 Secret Manager 來儲存 SAP HANA 資料庫使用者的密碼,請指定相應的密鑰名稱HANA_PASSWORD
:如果您要使用純文字密碼進行 SAP HANA 驗證,請指定該密碼COMMA_SEPARATED_DISK_NAMES
:以逗號分隔的磁碟名稱清單,這些磁碟會在橫向擴展系統中代管/hana/data
磁碟分割區
下表說明 hanadiskbackup
指令支援的引數:
引數 | 說明 |
---|---|
-port |
指定接受備份和復原要求的 SAP HANA 通訊埠。 |
-sid |
指定 SAP HANA 系統的 SAP 系統 ID (SID)。 |
-hana-db-user |
指定要用來建立備份的 SAP HANA 資料庫使用者名稱。 如果您指定 |
-password |
指定您用來建立備份的 SAP HANA 資料庫使用者密碼。 如果您使用 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-password-secret |
(非必要) 如果您使用 Secret Manager 儲存 SAP HANA 資料庫使用者的密碼,請指定對應的機密名稱。 在 Secret Manager 中,請確認密鑰值 (即密碼) 至少包含 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-hdbuserstore-key |
如要安全地連線至 SAP HANA 系統,請指定您為該系統建立的 安全使用者儲存庫 ( 如要使用
這個設定參數自 3.3 版開始支援。 如果您指定 針對 SAP HANA 驗證,代理程式會使用以下偏好順序:如果已指定,系統會優先使用 |
-host |
(非必要) 指定託管 SAP HANA 系統的 Compute Engine 執行個體 IP 位址。預設值為 localhost 。 |
-project |
(非必要) 指定執行 SAP HANA 執行個體的 Google Cloud 專案 ID。 |
-abandon-prepared |
(非必要) 指定是否要忽略任何現有的快照式備份。預設值為 false 。 |
-snapshot-name |
(非必要) 指定要建立的磁碟快照名稱。只有在 根據預設,快照的命名格式如下: |
-snapshot-description |
(非必要) 指定磁碟快照的說明。這個引數僅適用於 /hana/data 磁碟區位於單一磁碟的情況。 |
-snapshot-type |
(非必要) 指定要為代管 根據預設,代理程式會建立標準快照。這個引數支援的值: 這個引數自 3.6 版代理程式起開始支援。 |
-group-snapshot-name |
(非必要) 為代管 根據預設,系統會使用以下格式設定快照群組名稱: 這個引數自 3.6 版代理程式起開始支援。 |
-labels |
(非必要) 指定一或多個標籤-值組合,以便與您要建立的磁碟快照建立關聯。例如:-labels="label1=value1,label2=value2" 。 |
-source-disks |
在 擴大規模部署中指定代管 /hana/data 磁碟區的磁碟名稱。請使用半形逗號分隔磁碟名稱。例如:-source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
(非必要) 指定要儲存磁碟快照的 Cloud Storage 多地區或 Cloud Storage 地區。 |
-freeze-file-system |
(非必要) 指定代理程式是否要凍結 SAP HANA 資料庫的檔案系統。預設值為 這個引數自 3.2 版代理程式起開始支援。 |
-send-metrics-to-monitoring |
(非必要) 指定是否要將快照建立作業的執行狀態傳送至 Cloud Monitoring。預設值為 TRUE 。 |
-loglevel |
(非必要) 指定快照建立作業的記錄層級。預設的記錄層級為 info 。可用的記錄層級為:debug 、info 、warn 和 error 。 |
-confirm-data-snapshot-after-create |
(非必要) 如果您想在快照建立完成後立即確認快照是否已建立至 SAP HANA,但不確認是否已上傳至為 預設值為 這個引數自 3.4 版的代理程式起開始支援。 |
驗證磁碟快照
您可以使用下列選項,確認磁碟快照是否已建立:
在 Google Cloud 控制台中,前往 Compute Engine 的「Snapshots」(快照) 頁面,然後使用磁碟名稱篩選項目。如果
/hana/data
磁碟區位於單一磁碟上,您也可以使用快照名稱進行篩選。如果/hana/data
磁碟區位於多個磁碟上,您也可以使用快照群組名稱進行篩選。或者,您也可以在代理程的下列記錄檔案中查看磁碟快照詳細資料:
/var/log/google-cloud-sap-agent/hanadiskbackup.log
查看 SAP HANA 備份目錄
除了建立以磁碟快照為基礎的備份外,hanadiskbackup
指令也會在 SAP HANA 備份目錄中建立相關項目。以下是 SQL 查詢範例,可用於在 SAP HANA 備份目錄中查看快照式備份項目:
SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot'
輸出結果會與下列範例相似:
BACKUP_ID,STATE_NAME,COMMENT BACKUP_ID,"successful","SNAPSHOT_IDENTIFIER"
輸出內容包含下列值:
BACKUP_ID
:在 SAP HANA 備份目錄中,指派給以磁碟快照為基礎的備份的備份 IDSNAPSHOT_IDENTIFIER
:- 對於磁碟上的
/hana/data
音量,此 ID 的值會根據-snapshot-name
引數與hanadiskbackup
指令的使用方式決定。如果您未指定此引數,則會設定引數的預設值,即:snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS
。 - 如果
/hana/
磁碟區位於多個磁碟上,則此 ID 的值會根據-group-snapshot-name
引數與hanadiskbackup
指令的使用方式而定。如果您未指定此引數,則會設定引數的預設值,即CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMMSS
。
- 對於磁碟上的
SOURCE_DISK_NAME
:這個值取決於-source-disk
引數與hanadiskbackup
指令的使用方式。CONSISTENCY_GROUP_NAME
:這個值取決於-group-snapshot-name
引數與hanadiskbackup
指令的使用方式YYYYMMDD-HHMMMSS
:快照建立的日期和時間。
使用磁碟快照備份還原資料庫
如要使用Google Cloud的 SAP 代理程式磁碟快照功能來復原 SAP HANA 資料庫,請參閱適用於您情況的指示:
復原擴大系統的資料庫
如要為部署在Google Cloud上的 SAP HANA 向上擴充系統復原資料庫,請完成下列步驟:
執行代理程式的
hanadiskrestore
指令,找回代管/hana/data
磁碟的磁碟:如果
/hana/data
磁碟區位於單一磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果
/hana/data
磁碟區位於多個磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁碟快照所在的Google Cloud 專案 IDSID
:SAP HANA 系統的 SAP 系統 ID (SID)SOURCE_SNAPSHOT_NAME
:如果/hana/data
磁區位於單一磁碟上,請指定您要用來建立新磁碟的磁碟快照名稱SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
磁區位於多個磁碟上,請指定您要用來建立新磁碟的快照群組名稱NEW_DISK_NAME
:您要為新磁碟設定的名稱。詳情請參閱「磁碟還原作業支援的引數」一文中-new-disk-name
的說明。NEW_DISK_TYPE
:您要建立的磁碟類型。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-type
說明。NEW_DISK_PREFIX
:要新增至新磁碟名稱的前置字串COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:以半形逗號分隔的清單,列出您要使用快照式備份還原的磁碟名稱
如要進一步瞭解可搭配
hanadiskrestore
指令使用的引數,請參閱「支援的磁碟還原引數」。使用必要選項復原 SAP HANA 資料庫:
復原至快照時間
如要還原 SAP HANA 資料庫,請按照下列步驟操作,將資料庫還原至建立磁碟快照的時間點:
- 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,即可復原租用戶資料庫:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
將
TENANT_SID
替換為租用戶資料庫的 SID。
復原至特定時間點
如要還原 SAP HANA 資料庫至特定時間點,請按照下列步驟操作:
- 請使用 Google Cloud的 SAP 代理程式,透過 Backint 功能,確認您已為 Cloud Storage 中的
/hana/log
磁碟區建立備份。如要進一步瞭解這項功能,請參閱「使用 Backint 備份及復原 SAP HANA」。 - 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,還原租用戶資料庫:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
將
TENANT_SID
替換為租用戶資料庫的 SID。
- 切換至
為擴充 HA 系統復原資料庫
如要針對在 Google Cloud上高可用性 (HA) 叢集中部署的 SAP HANA 擴充系統復原資料庫,請完成下列步驟:
請確認您在主要 SAP HANA 節點中,有代管
/hana/data
磁碟的磁碟快照。以超級使用者身分,將 HA 叢集設為維護模式。如果您使用 Pacemaker,請執行下列指令:
RHEL
pcs property set maintenance-mode=true
SLES
crm configure property maintenance-mode=true
請在 HA 叢集的主節點和待機節點上執行下列指令,停止 SAP HANA 資料庫執行個體:
HDB stop
切換至 SAP HANA HA 系統的主要節點。
執行代理程式的
hanadiskrestore
指令,找回代管/hana/data
磁碟的磁碟:如果
/hana/data
磁碟區位於單一磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果
/hana/data
磁碟區位於多個磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁碟快照所在的Google Cloud 專案 IDSID
:SAP HANA 系統的 SAP 系統 ID (SID)SOURCE_SNAPSHOT_NAME
:如果/hana/data
磁區位於單一磁碟上,請指定要用來建立新磁碟的磁碟快照名稱SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
磁區位於多個磁碟上,請指定您要用來建立新磁碟的快照群組名稱NEW_DISK_NAME
:您要為新磁碟設定的名稱。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-name
說明。NEW_DISK_TYPE
:您要建立的磁碟類型。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-type
說明。NEW_DISK_PREFIX
:要新增至新磁碟名稱的前置字串COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:以半形逗號分隔的清單,列出您要使用快照式備份還原的磁碟名稱
如要進一步瞭解可搭配
hanadiskrestore
指令使用的引數,請參閱「支援的磁碟還原引數」。取消註冊 SAP HANA HA 系統的次要節點:
hdbnsutil -sr_unregister
在 SAP HANA HA 系統的主節點上,停用 SAP HANA 系統複製:
hdbnsutil -sr_disable
在主要節點上,使用必要選項復原 SAP HANA 資料庫:
復原至快照時間
如要還原 SAP HANA 資料庫,請按照下列步驟操作,將資料庫還原至建立磁碟快照的時間點:
- 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,即可復原租用戶資料庫:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
將
TENANT_SID
替換為租用戶資料庫的 SID。
復原至特定時間點
如要還原 SAP HANA 資料庫至特定時間點,請按照下列步驟操作:
- 請使用 Google Cloud的 SAP 代理程式,透過 Backint 功能,確認您已為 Cloud Storage 中的
/hana/log
磁碟區建立備份。如要進一步瞭解這項功能,請參閱「使用 Backint 備份及復原 SAP HANA」。 - 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,還原租用戶資料庫:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
將
TENANT_SID
替換為租用戶資料庫的 SID。
- 切換至
在主要節點上啟用 SAP HANA 系統複製:
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
將待命節點重新註冊至主要節點:
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
確認待命節點中的資料庫已與主要節點中的資料庫完全同步。
以根使用者身分,退出 HA 叢集維護模式。如果您使用 Pacemaker,請執行下列指令:
RHEL
pcs property set maintenance-mode=false
SLES
crm configure property maintenance-mode=false
為擴大規模的 DR 部署作業復原資料庫
如要為在 Google Cloud上以災難復原解決方案部署的 SAP HANA 向上擴充系統復原資料庫,請完成下列步驟:
在 DR 部署的預設和備用執行個體上執行下列指令,即可停止 SAP HANA 資料庫:
HDB stop
切換至 SAP HANA DR 部署作業的主要執行個體。
執行代理程式的
hanadiskrestore
指令,找回代管/hana/data
磁碟的磁碟:如果
/hana/data
磁碟區位於單一磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
如果
/hana/data
磁碟區位於多個磁碟上,請執行下列指令:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁碟快照所在的Google Cloud 專案 IDSID
:SAP HANA 系統的 SAP 系統 ID (SID)SOURCE_SNAPSHOT_NAME
:如果/hana/data
磁區位於單一磁碟上,請指定您要用來建立新磁碟的磁碟快照名稱SOURCE_SNAPSHOT_GROUP_NAME
:如果您的/hana/data
磁區位於多個磁碟上,請指定您要用來建立新磁碟的快照群組名稱NEW_DISK_NAME
:您要為新磁碟設定的名稱。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-name
說明。NEW_DISK_TYPE
:您要建立的磁碟類型。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-type
說明。NEW_DISK_PREFIX
:要新增至新磁碟名稱的前置字串COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:以半形逗號分隔的清單,列出您要使用快照式備份還原的磁碟名稱
如要進一步瞭解可搭配
hanadiskrestore
指令使用的引數,請參閱「支援的磁碟還原引數」。在主要執行個體上停用 SAP HANA 系統複製:
hdbnsutil -sr_disable
在主要執行個體上,使用必要選項復原 SAP HANA 資料庫:
復原至快照時間
如要還原 SAP HANA 資料庫,請按照下列步驟操作,將資料庫還原至建立磁碟快照的時間點:
- 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,即可復原租用戶資料庫:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
將
TENANT_SID
替換為租用戶資料庫的 SID。
復原至特定時間點
如要還原 SAP HANA 資料庫至特定時間點,請按照下列步驟操作:
- 請使用 Google Cloud的 SAP 代理程式,透過 Backint 功能,確認您已為 Cloud Storage 中的
/hana/log
磁碟區建立備份。如要進一步瞭解這項功能,請參閱「使用 Backint 備份及復原 SAP HANA」。 - 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,還原租用戶資料庫:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
將
TENANT_SID
替換為租用戶資料庫的 SID。
- 切換至
在主要執行個體上啟用 SAP HANA 系統複製:
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
將待命執行個體註冊至主要執行個體:
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
確認待命執行個體中的資料庫與主要執行個體中的資料庫完全同步。
復原向外擴充系統的資料庫
如要在Google Cloud 上部署 SAP HANA 向外擴充系統,但沒有主機自動容錯移轉解決方案,請完成下列步驟:
在向外擴充部署作業中的每個節點上,停止 SAP HANA:
HDB STOP
在每個節點上,以根使用者身分卸載
/hana/data
磁碟區。如要進一步瞭解如何執行這項操作,請參閱 SAP HANA 版本的 SAP 說明文件。
執行代理程式的
hanadiskrestore
指令,復原代管/hana/data
磁碟的磁碟: 取代下列內容:sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ -source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ [-new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
:磁碟快照所在的Google Cloud 專案 IDSID
:SAP HANA 系統的 SAP 系統 ID (SID)SOURCE_SNAPSHOT_GROUP_NAME
:要用來建立新磁碟的快照群組名稱NEW_DISK_TYPE
:您要建立的磁碟類型。詳情請參閱「磁碟還原作業支援的引數」中的-new-disk-type
說明。NEW_DISK_PREFIX
:要新增至新磁碟名稱的前置字串COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
:以半形逗號分隔的清單,列出您要使用快照式備份還原的磁碟名稱
如要進一步瞭解可搭配
hanadiskrestore
指令使用的引數,請參閱「支援的磁碟還原引數」。在每個 worker 節點上,以 root 使用者身分重新掃描磁區群組:
/sbin/dmsetup remove_all /sbin/vgscan -v --mknodes /sbin/vgchange -ay /sbin/lvscan mount -av
在每個 worker 節點上,以 root 使用者身分使用必要選項復原 SAP HANA 資料庫:
復原至快照時間
如要還原 SAP HANA 資料庫,請按照下列步驟操作,將資料庫還原至建立磁碟快照的時間點:
- 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,即可復原租用戶資料庫:
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
將
TENANT_SID
替換為租用戶資料庫的 SID。
復原至特定時間點
如要還原 SAP HANA 資料庫至特定時間點,請按照下列步驟操作:
- 請使用 Google Cloud的 SAP 代理程式,透過 Backint 功能,確認您已為 Cloud Storage 中的
/hana/log
磁碟區建立備份。如要進一步瞭解這項功能,請參閱「使用 Backint 備份及復原 SAP HANA」。 - 切換至
SIDadm
使用者:su - SID_LCadm
將
SID_LC
替換為 SAP HANA 系統的 SID。請使用小寫字母。 - 執行下列指令,還原系統資料庫:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- 連結至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
SYSTEM_DB_PASSWORD
:系統資料庫密碼INSTANCE_NUMBER
:您的 SAP HANA 執行個體編號
- 針對每個租用戶資料庫執行下列指令,還原租用戶資料庫:
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
將
TENANT_SID
替換為租用戶資料庫的 SID。
- 切換至
在每個 worker 節點上啟動 SAP HANA 資料庫。
針對外推部署中的主節點重複執行步驟 3 至 5。
支援的磁碟還原引數
下表說明代理程式 hanadiskrestore
指令支援的引數:
引數 | 說明 |
---|---|
-sid |
指定 SAP HANA 系統的 SAP 系統 ID (SID)。 |
-data-disk-name |
(非必要) 指定代管 /hana/data 磁碟區的來源磁碟名稱。自 3.4 版起, |
-source-disks |
指定在部署中代管 Google Cloud的 SAP 代理程式自 3.7 版起支援此引數。這個引數是復原橫向擴展系統的必要條件。對於使用條紋磁碟來代管 |
-data-disk-zone |
(非必要) 指定部署代管 /hana/data 磁碟區的區域。自 3.4 版起, |
-source-snapshot |
如果 /hana/data 磁碟區位於單一磁碟上,請指定要用來執行復原作業的磁碟快照名稱。 |
-new-disk-name |
指定要為新磁碟設定的名稱。如果 /hana/data 磁碟區位於多個磁碟上,則此引數不適用。 |
-group-snapshot-name |
指定要用來執行復原作業的快照群組名稱。 這個引數自代理程式 3.6 版起受支援。對於使用單一磁碟來主機 |
-project |
(非必要) 指定來源磁碟快照所在的 Google Cloud 專案 ID。根據預設,快照會在執行 SAP HANA 系統的 Google Cloud 專案中建立。 |
-csek-key-file |
(非必要) 如果您使用 -source-disk-key-file 引數搭配 hanadiskbackup 指令來加密來源磁碟快照,請指定與來源磁碟快照相對應的 RSA 包裝客戶提供的加密金鑰 JSON 檔案的絕對路徑。以下是金鑰檔案範例:
[ { "uri": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ] 這個引數自 3.2 版代理程式起開始支援。 |
-new-disk-type |
(非必要) 指定要建立的 Persistent Disk 或 Hyperdisk 類型。根據預設,新磁碟的類型與來源磁碟相同。 請務必指定已獲 SAP 認證,可搭配 SAP HANA 使用的 SSD 磁碟類型。詳情請參閱「支援的磁碟類型」。 |
-new-disk-prefix |
(非必要) 指定要新增至新磁碟名稱的前置字串。 這個引數自 3.7 版代理程式起開始支援。在復原使用單一磁碟來主機 |
-hana-sidadm |
(非必要) 指定 SIDadm - SAP HANA 系統的作業系統使用者。 |
-force-stop-hana |
(非必要) 如果您想在啟動復原作業前強制停止 SAP HANA,請指定這個引數,並將其值設為 true 。預設值為 false 。 |
-provisioned-iops |
(非必要) 如果您要建立 Hyperdisk 磁碟區,請指定該磁碟區必須處理的 IOPS (每秒輸入/輸出作業數)。 |
-provisioned-throughput |
(非必要) 如果您要建立 Hyperdisk 磁碟區,請指定該磁碟區必須支援的吞吐量。 |
-labels-on-detached-disk |
(非必要) 如果您要建立新磁碟來代管已復原的 這個引數自 3.4 版的代理程式起開始支援。 |
-send-metrics-to-monitoring |
(非必要) 指定是否要將快照還原作業的時間長度傳送至 Cloud Monitoring。預設值為 這個引數自 3.4 版的代理程式起開始支援。 |
-disk-size-gb |
(非必要) 指定新磁碟的大小 (以 GB 為單位)。根據預設,新磁碟的大小會與現有磁碟相同。 新磁碟的大小不得小於現有磁碟。 |
-loglevel |
(非必要) 指定 hanadiskrestore 指令執行的所有動作的記錄層級。預設的記錄層級為 info 。可用的記錄層級包括:debug 、info 、warn 和 error 。 |
執行系統複製或系統重新整理作業
如要使用 SAP HANA 系統的磁碟快照備份來復原另一個 SAP HANA 系統,請完成下列步驟:
- 在來源系統中,執行代理程式的
hanadiskbackup
指令,建立快照式備份。如需操作說明,請參閱「建立以磁碟快照為基礎的備份」。 如果來源和目標系統的 SID 不同,請將來源系統中的
/hana/data/SID
目錄重新命名,以便與目標系統相符:mv /hana/data/SOURCE_SID /hana/data/TARGET_SID
更改下列內容:
SOURCE_SID
:來源 SAP HANA 系統的 SIDTARGET_SID
:目標 SAP HANA 系統的 SID
在目標系統中,執行代理程式的
hanadiskrestore
指令,還原代管/hana/data
磁碟區的磁碟。如果您已為來源 SAP HANA 系統啟用資料加密功能,則在執行復原作業前,您必須將加密金鑰匯入目標系統。如果您尚未在來源系統中啟用資料加密功能,請略過這個步驟。
如要將資料加密金鑰匯入目標系統,請完成下列步驟:
建立系統資料庫加密金鑰的備份:
hdbnsutil -backupRootKeys FILE_NAME_SYS.rkb --type=ALL --database_name=SYSTEMDB
將
FILE_NAME_SYS
替換為您要為系統資料庫加密金鑰備份設定的名稱。您可以視需要加入要儲存此檔案的路徑。在來源系統中,針對每個租用戶資料庫執行下列指令,為租用戶資料庫的加密金鑰建立備份:
hdbnsutil -backupRootKeys FILE_NAME_TENANT.rkb --type=ALL --database_name=TENANT_DB_NAME
更改下列內容:
FILE_NAME_TENANT
:您要為租用戶資料庫的加密金鑰備份設定的名稱。您可以選擇加入要儲存此檔案的路徑。TENANT_DB_NAME
:租用戶資料庫名稱
驗證備份:
ls -ltr *.rkb
輸出結果會與下列範例相似:
-rw-r----- 1 sbxadm sapsys 1440 Mar 24 21:09 sbxkeys.rkb -rw-r----- 1 sbxadm sapsys 1440 Mar 24 21:12 systemkeys.rkb
在目標系統中,匯入系統資料庫的備份加密金鑰:
hdbnsutil -recoverRootKeys FILE_NAME_SYS.rkb --dbid=SYSTEM_DB_ID --password=SYSTEM_DB_PASSWORD
更改下列內容:
SYSTEM_DB_ID
:系統資料庫 IDSYSTEM_DB_PASSWORD
:系統資料庫密碼
針對每個租用戶資料庫執行下列指令,匯入租用戶資料庫的備份加密金鑰:
hdbnsutil -recoverRootKeys FILE_NAME_TENANT.rkb --dbid=TENANT_DB_ID --password=TENANT_DB_PASSWORD
更改下列內容:
TENANT_DB_ID
:租用戶資料庫 IDTENANT_DB_PASSWORD
:租用戶資料庫密碼
在目標系統中復原系統資料庫:
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SOURCE 'SYSTEMDB@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT"
如果您希望租用戶資料庫具有來源系統的 SID,請按照 SAP HANA 文件「重新命名租用戶資料庫」中的指示重新命名。
在目標系統中,連線至系統資料庫。例如,您可以執行下列指令:
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
將
INSTANCE_NUMBER
替換為 SAP HANA 系統資料庫的執行個體編號。在目標系統中,針對每個用戶群資料庫執行下列指令,即可復原用戶群資料庫:
RECOVER DATABASE FOR TARGET_SID UNTIL TIMESTAMP '2023-12-08 23:59:00' CLEAR LOG USING SOURCE 'TARGET_SID@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT
在目標系統中,針對每個租用戶資料庫執行下列指令,連線至租用戶資料庫:
hdbsql -d TENANT_SID -u system -p "TENANT_DB_PASSWORD" -i INSTANCE_NUMBER
更改下列內容:
TENANT_SID
:租用戶資料庫 SIDINSTANCE_NUMBER
:租用戶資料庫例項編號
完成下列步驟,驗證目標資料庫中的資料一致性:
停止目標系統:
HDB stop
以
SIDadm
使用者身分執行hdbpersdiag
工具:hdbpersdiag -c 'check all' -e HANA_DATA_DIRECTORY
將
HANA_DATA_DIRECTORY
替換為 SAP HANA 資料磁碟區目錄,例如:/hana/data/SBX/mnt00001/hdb00001
。
如果資料一致性驗證失敗,請完成下列步驟:
針對目標系統,確認系統資料庫和所有租用戶資料庫已啟用資料加密功能:
SELECT * FROM SYS.M_ENCRYPTION_OVERVIEW
如果任何資料庫的資料加密功能為
FALSE
,請啟用資料加密功能:ALTER SYSTEM PERSISTENCE ENCRYPTION ON; ALTER SYSTEM LOG ENCRYPTION ON; ALTER SYSTEM BACKUP ENCRYPTION ON;
使用
hdbpersdiag
工具重新驗證資料一致性。
驗證快照一致性
本節說明如何使用 SAP 的 hdbpersdiag
工具,驗證磁碟快照中資料的一致性。如要瞭解 Google Cloud 建議的其他最佳做法,以便執行磁碟快照備份與復原作業,請參閱「最佳做法」。
如要驗證快照的一致性,請完成下列步驟:
使用代理程式的
hanadiskbackup
指令,從您建立的快照建立磁碟。使用gcloud compute disks create
指令:gcloud compute disks create DISK_NAME \ --size=SIZE \ --source-snapshot=SNAPSHOT_NAME \ --type=DISK_TYPE \ --zone=ZONE
更改下列內容:
DISK_NAME
:暫時磁碟的名稱SIZE
:暫時磁碟的大小SNAPSHOT_NAME
:來源快照的名稱DISK_TYPE
:臨時磁碟的磁碟類型ZONE
:要部署臨時磁碟的 Compute Engine 區域
將磁碟連結至 SAP HANA 主機以外的 Compute Engine 執行個體。使用
gcloud compute instances attach-disk
指令:gcloud compute instances attach-disk COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
更改下列內容:
COMPUTE_INSTANCE_NAME
:您要部署所建立磁碟的 Compute Engine 執行個體名稱DISK_NAME
:您建立的磁碟名稱ZONE
:部署運算執行個體的 Compute Engine 區域
使用您偏好的 SSH 方法連線至運算執行個體。
將新磁碟掛載為暫時性檔案系統:
在作業系統層級,找出沒有任何有效邏輯磁碟區的磁碟區群組:
vgdisplay
輸出結果會與下列範例相似:
--- Volume group --- VG Name vg_hana_data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 250.00 GiB PE Size 4.00 MiB Total PE 63999 Alloc PE / Size 63999 / 250.00 GiB Free PE / Size 0 / 0 VG UUID Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
使用 VG UUID 重新命名音量群組。在上述範例中為
Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
。vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
啟用磁碟區群組和邏輯磁碟區:
vgchange -a y vg_hana_data_temp lvchange -a y /dev/vg_hana_data_temp/data
在暫時性檔案系統中掛接邏輯磁碟區,例如
/hana/data_temp
:mkdir /hana/data_temp mount /dev/vg_hana_data_temp/data /hana/data_temp
確認所有磁碟是否已正確掛載:
lsblk
輸出結果會與下列範例相似:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 350G 0 disk └─vg_hana_data_temp-data 254:5 0 250G 0 lvm /hana/data_temp sdc 8:32 0 104G 0 disk └─vg_hana_log-log 254:2 0 104G 0 lvm /hana/log sdd 8:48 0 208G 0 disk └─vg_hana_shared-shared 254:0 0 208G 0 lvm /hana/shared sde 8:64 0 32G 0 disk └─vg_hana_usrsap-usrsap 254:3 0 32G 0 lvm /usr/sap sdf 8:80 0 416G 0 disk └─vg_hanabackup-backup 254:4 0 416G 0 lvm /hanabackup sdh 8:112 0 250G 0 disk └─vg_hana_data-data 254:1 0 250G 0 lvm /hana/data
以
SIDadm
使用者身分,針對臨時檔案系統中的資料卷執行hdbpersdiag
工具:for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
驗證
hdbpersdiag
工具的輸出內容。如果您打算日後執行這項一致性檢查,可以保留新的磁區群組。如果不打算執行,請刪除該群組。
從運算執行個體卸離磁碟。使用
gcloud compute instances detach-disk
指令:COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
刪除磁碟。使用
gcloud compute disks delete
指令:gcloud compute disks delete DISK_NAME \ --zone=ZONE
疑難排解
雖然 Google Cloud的 SAP 代理程式可處理 SAP HANA 磁碟快照備份與復原作業期間可能發生的大部分問題,但仍有少數情況需要手動介入。
如要排解Google Cloud的 SAP 代理程式磁碟快照功能相關問題,請參閱「以磁碟快照為基礎的備份或復原作業問題」。
取得支援
如果您需要協助解決 Google Cloud的 Agent for SAP 相關問題,請收集必要的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。如需詳細資訊,請參閱 Google Cloud的 SAP 代理程式,瞭解 SAP HANA 的診斷資訊。