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 데이터 볼륨 백업 저장점으로 복구
최신 백업 저장점에 대한 복구는 pr1adm 사용자로 다음 명령을 사용하여 실행됩니다.
-
시스템 데이터베이스
recoverSys.py --command "RECOVER DATA USING SNAPSHOT CLEAR LOG”
-
테넌트 데이터베이스
Within hdbsql: RECOVER DATA FOR PR1 USING SNAPSHOT CLEAR LOG
또한 HANA Studio 또는 Cockpit을 사용하여 시스템 및 테넌트 데이터베이스 복구를 실행할 수도 있습니다.
다음 명령 출력에서는 복구 실행을 보여 줍니다.
시스템 데이터베이스 복구
pr1adm@vm-pr1:/usr/sap/PR1/HDB01> HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG" [139702869464896, 0.008] >> starting recoverSys (at Fri Feb 19 14:32:16 2021) [139702869464896, 0.008] args: () [139702869464896, 0.009] keys: {'command': 'RECOVER DATA USING SNAPSHOT CLEAR LOG'} using logfile /usr/sap/PR1/HDB01/vm-pr1/trace/backup.log recoverSys started: ============2021-02-19 14:32: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-19 14:32:16 stopped system: 2021-02-19 14:32:16 creating file recoverInstance.sql restart database restart master nameserver: 2021-02-19 14:32:21 start system: vm-pr1 sapcontrol parameter: ['-function', 'Start'] sapcontrol returned successfully: 2021-02-19T14:32:56+00:00 P0027646 177bab4d610 INFO RECOVERY RECOVER DATA finished successfully recoverSys finished successfully: 2021-02-19 14:32:58 [139702869464896, 42.017] 0 [139702869464896, 42.017] << ending recoverSys, rc = 0 (RC_TEST_OK), after 42.009 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>
이제 테넌트 복구가 hdbsql을 사용하여 실행됩니다.
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 DATA FOR PR1 USING SNAPSHOT CLEAR LOG 0 rows affected (overall time 66.973089 sec; server time 66.970736 sec) hdbsql SYSTEMDB=>
이제 HANA 데이터베이스가 가동 및 실행되고 HANA 데이터베이스용 재해 복구 워크플로우가 테스트되었습니다.
로그/카탈로그 백업을 사용한 정방향 복구를 사용한 복구
로그 백업과 HANA 백업 카탈로그가 소스 시스템에서 복제되고 있습니다.
사용 가능한 모든 로그 백업을 사용한 복구는 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-20 00:00:00' CLEAR LOG USING SNAPSHOT" [140404915394368, 0.008] >> starting recoverSys (at Fri Feb 19 16:06:40 2021) [140404915394368, 0.008] args: () [140404915394368, 0.008] keys: {'command': "RECOVER DATABASE UNTIL TIMESTAMP '2021-02-20 00:00:00' CLEAR LOG USING SNAPSHOT"} using logfile /usr/sap/PR1/HDB01/vm-pr1/trace/backup.log recoverSys started: ============2021-02-19 16:06:40 ============ testing master: vm-pr1 vm-pr1 is master shutdown database, timeout is 120 stop system stop system on: vm-pr1 stopping system: 2021-02-19 16:06:40 stopped system: 2021-02-19 16:06:41 creating file recoverInstance.sql restart database restart master nameserver: 2021-02-19 16:06:46 start system: vm-pr1 sapcontrol parameter: ['-function', 'Start'] sapcontrol returned successfully: 2021-02-19T16:07:19+00:00 P0009897 177bb0b4416 INFO RECOVERY RECOVER DATA finished successfully, reached timestamp 2021-02-19T15:17:33+00:00, reached log position 38272960 recoverSys finished successfully: 2021-02-19 16:07:20 [140404915394368, 39.757] 0 [140404915394368, 39.758] << ending recoverSys, rc = 0 (RC_TEST_OK), after 39.749 secs
테넌트 데이터베이스 복구
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-20 00:00:00' CLEAR LOG USING SNAPSHOT 0 rows affected (overall time 63.791121 sec; server time 63.788754 sec) hdbsql SYSTEMDB=>
이제 HANA 데이터베이스가 가동 및 실행되고 HANA 데이터베이스용 재해 복구 워크플로우가 테스트되었습니다.
최신 로그 백업의 일관성을 확인합니다
로그 백업 볼륨 복제는 SAP HANA 데이터베이스에서 실행되는 로그 백업 프로세스와 독립적으로 수행되기 때문에 재해 복구 사이트에 일관되지 않은 로그 백업 파일이 열려 있을 수 있습니다. 최신 로그 백업 파일만 정합성이 보장되지 않을 수 있으며, 이러한 파일은 "hdbbackupcheck" 도구를 사용하여 재해 복구 사이트에서 정방향 복구를 수행하기 전에 확인해야 합니다.
"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" 도구에서 최신 로그 백업에 대한 오류를 보고하는 경우 최신 로그 백업 세트를 제거하거나 삭제해야 합니다.