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 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" 도구에서 최신 로그 백업에 대한 오류를 보고하는 경우 최신 로그 백업 세트를 제거하거나 삭제해야 합니다.