Skip to main content
NetApp Solutions SAP
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

HANA資料庫恢復

貢獻者

以下是HANA資料庫還原的步驟。

啟動所需的SAP服務。

vm-pr1:~ # systemctl start sapinit

下列輸出顯示所需的程序。

vm-pr1:/ # ps -ef | grep sap
root     23101     1  0 11:29 ?        00:00:00 /usr/sap/hostctrl/exe/saphostexec pf=/usr/sap/hostctrl/exe/host_profile
pr1adm   23191     1  3 11:29 ?        00:00:00 /usr/sap/PR1/HDB01/exe/sapstartsrv pf=/usr/sap/PR1/SYS/profile/PR1_HDB01_vm-pr1 -D -u pr1adm
sapadm   23202     1  5 11:29 ?        00:00:00 /usr/sap/hostctrl/exe/sapstartsrv pf=/usr/sap/hostctrl/exe/host_profile -D
root     23292     1  0 11:29 ?        00:00:00 /usr/sap/hostctrl/exe/saposcol -l -w60 pf=/usr/sap/hostctrl/exe/host_profile
root     23359  2597  0 11:29 pts/1    00:00:00 grep --color=auto sap

以下小節將說明使用複寫記錄備份進行轉送恢復的恢復程序。使用系統資料庫的HANA恢復指令碼和租戶資料庫的hdbsql命令來執行恢復。

本章將說明執行還原至最新資料儲存點的命令 "恢復至最新的HANA Data Volume Backup Savepoint"

使用記錄備份進行轉送恢復

使用所有可用的記錄備份進行還原時、會以使用者pr1adm的身分執行下列命令:

  • 系統資料庫

recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2021-02-20 00:00:00' CLEAR LOG USING SNAPSHOT"
  • 租戶資料庫

Within hdbsql: RECOVER DATABASE FOR PR1 UNTIL TIMESTAMP '2021-02-20 00:00:00' CLEAR LOG USING SNAPSHOT
註 若要使用所有可用的記錄進行還原、您可以在未來的任何時間將其用作恢復陳述中的時間戳記。

您也可以使用HANA Studio或Cockpit來執行系統和租戶資料庫的還原。

下列命令輸出顯示恢復執行。

系統資料庫恢復

pr1adm@vm-pr1:/usr/sap/PR1/HDB01> HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2021-02-24 00:00:00' CLEAR LOG USING SNAPSHOT"
[139792805873472, 0.008] >> starting recoverSys (at Tue Feb 23 12:05:16 2021)
[139792805873472, 0.008] args: ()
[139792805873472, 0.008] keys: {'command': "RECOVER DATABASE UNTIL TIMESTAMP '2021-02-24 00:00:00' CLEAR LOG USING SNAPSHOT"}
using logfile /usr/sap/PR1/HDB01/vm-pr1/trace/backup.log
recoverSys started: ============2021-02-23 12:05:16 ============
testing master: vm-pr1
vm-pr1 is master
shutdown database, timeout is 120
stop system
stop system on: vm-pr1
stopping system: 2021-02-23 12:05:17
stopped system: 2021-02-23 12:05:18
creating file recoverInstance.sql
restart database
restart master nameserver: 2021-02-23 12:05:23
start system: vm-pr1
sapcontrol parameter: ['-function', 'Start']
sapcontrol returned successfully:
2021-02-23T12:07:53+00:00  P0012969      177cec93d51 INFO    RECOVERY RECOVER DATA finished successfully, reached timestamp 2021-02-23T09:03:11+00:00, reached log position 43123520
recoverSys finished successfully: 2021-02-23 12:07:54
[139792805873472, 157.466] 0
[139792805873472, 157.466] << ending recoverSys, rc = 0 (RC_TEST_OK), after 157.458 secs
pr1adm@vm-pr1:/usr/sap/PR1/HDB01>

租戶資料庫恢復

如果尚未在來源系統上為pr1adm使用者建立使用者存放區金鑰、則必須在目標系統上建立金鑰。金鑰中設定的資料庫使用者必須擁有執行租戶還原作業的權限。

pr1adm@vm-pr1:/usr/sap/PR1/HDB01> hdbuserstore set PR1KEY vm-pr1:30113 <backup-user> <password>
pr1adm@vm-pr1:/usr/sap/PR1/HDB01> hdbsql -U PR1KEY
Welcome to the SAP HANA Database interactive terminal.
Type:  \h for help with commands
       \q to quit
hdbsql SYSTEMDB=> RECOVER DATABASE FOR PR1 UNTIL TIMESTAMP '2021-02-24 00:00:00' CLEAR LOG USING SNAPSHOT
0 rows affected (overall time 98.740038 sec; server time 98.737788 sec)
hdbsql SYSTEMDB=>

檢查最新記錄備份的一致性

由於記錄備份磁碟區複寫是獨立於SAP HANA資料庫執行的記錄備份程序、因此災難恢復站台可能會有開放且不一致的記錄備份檔案。只有最新的記錄備份檔案可能不一致、在災難恢復站台使用「hdbbackupcheck」工具執行轉送恢復之前、應先檢查這些檔案。

pr1adm@hana-10: > hdbbackupcheck /hanabackup/PR1/log/SYSTEMDB/log_backup_0_0_0_0.1589289811148
Loaded library 'libhdbcsaccessor'
Loaded library 'libhdblivecache'
Backup '/mnt/log-backup/SYSTEMDB/log_backup_0_0_0_0.1589289811148' successfully checked.

必須針對系統和租戶資料庫的最新記錄備份檔案執行檢查。

如果「hdbbackupcheck」工具回報最新記錄備份錯誤、則必須移除或刪除最新的記錄備份集。