4.2. 执行初始 HANA 实例备份
只有在计划的 SAP HANA 系统复制设置的主实例上存在 SAP HANA 实例的初始备份时,才能启用 HANA 系统复制。
您可以使用 SAP HANA 工具创建备份并跳过手动过程。如需更多信息,请参阅 SAP HANA 管理指南 - SAP HANA 数据库备份和恢复。
先决条件
-
您有一个可写目录,其中为 SAP HANA 管理用户 <
sid>adm保存备份文件。 - 您有足够的可用空间存储在备份文件的文件系统中。
流程
可选:在合适的路径中为备份创建一个专用目录,例如:
[root]# mkdir <path>/<SID>-backup将
<path> 替换为您的系统的路径,该路径有足够的可用空间用于初始备份文件。如果目标目录尚未由 HANA 用户拥有或写入,请将备份路径的所有者更改为用户 <
sid>adm,例如:[root]# chown <sid>adm:sapsys <path>/<SID>-backup对于剩余的步骤,切换到 <
;sid>adm用户:[root]# su - <sid>adm以 <
sid>adm用户身份创建SYSTEMDB的备份。指定备份将存储在的文件的路径。确定目标文件系统有足够的可用空间,然后创建备份:rh1adm $ hdbsql -i ${TINSTANCE} -u system -p '<HANA_SYSTEM_PASSWORD>' -d SYSTEMDB \ "BACKUP DATA USING FILE ('<path>/${SAPSYSTEMNAME}-backup/bkp-SYS')" 0 rows affected (overall time xx.xxx sec; server time xx.xxx sec)-
TINSTANCE和SAPSYSTEMNAME是作为 <sid>adm用户 shell 环境一部分的环境变量。TINSTANCE是实例号,SAPSYSTEMNAME是.这两个值都会自动设置为与 <sid>adm用户相关的实例值。 -
使用
<sid>adm用户具有写入访问权限的路径替换 <path>,其中有足够的可用空间。
-
以 <
sid>adm 用户身份,创建所有租户数据库的备份。指定备份将存储在的文件的路径。确保目标文件系统有足够可用空间。创建租户 DB 备份:rh1adm $ hdbsql -i ${TINSTANCE} -u system -p '<HANA_SYSTEM_PASSWORD>' -d SYSTEMDB \ "BACKUP DATA FOR ${SAPSYSTEMNAME} USING FILE ('<path>/${SAPSYSTEMNAME}-backup/bkp-${SAPSYSTEMNAME}')" 0 rows affected (overall time xx.xxx sec; server time xx.xxx sec)使用
<sid>adm用户具有写入访问权限的路径替换 <path>,其中有足够的可用空间。
验证
列出生成的备份文件。使用
/hana/log/RH1-backup作为目录来存储初始备份的示例:rh1adm $ ls -lh /hana/log/RH1-backup/ total 7.2G -rw-r-----. 1 rh1adm sapsys 156K May 8 08:40 bkp-RH1_databackup_0_1 -rw-r-----. 1 rh1adm sapsys 81M May 8 08:40 bkp-RH1_databackup_2_1 -rw-r-----. 1 rh1adm sapsys 3.6G May 8 08:40 bkp-RH1_databackup_3_1 -rw-r-----. 1 rh1adm sapsys 160K May 8 08:35 bkp-SYS_databackup_0_1 -rw-r-----. 1 rh1adm sapsys 3.6G May 8 08:35 bkp-SYS_databackup_1_1使用 HANA 命令
hdbbackupcheck确认您创建的每个实例备份文件的健全:rh1adm $ for i in $(ls /hana/log/RH1-backup/*); do hdbbackupcheck $i; done ... Loaded library 'libhdblivecache' Backup '/hana/log/RH1-backup/RH1_databackup_0_1' successfully checked. Loaded library 'libhdbcsaccessor' ... Loaded library 'libhdblivecache' Backup '/hana/log/RH1-backup/system_databackup_0_1' successfully checked. Loaded library 'libhdbcsaccessor' Loaded library 'libhdblivecache' Backup '/hana/log/RH1-backup/system_databackup_1_1' successfully checked.
故障排除
备份失败,因为 &
lt;sid>adm用户无法写入目标目录:* 447: backup could not be completed: [2001003] createDirectory(path= '/tmp/RH1-backup/', access= rwxrwxr--, recursive= true): Permission denied (rc= 13, 'Permission denied') SQLSTATE: HY000确保 &
lt;sid>adm用户可以在您在备份命令中定义的目标目录内创建文件。修复权限,例如使用流程的第 2 步。备份失败,因为目标文件系统耗尽空间:
* 447: backup could not be completed: [2110001] Generic stream error: $msg$ - , rc=$sysrc$: $sysmsg$. Failed to process item 0x00007fc5796e0000 - '<root>/.bkp-RH1_databackup_3_1' ((open, mode= W, file_access= rw-r-----, flags= ASYNC|DIRECT|TRUNCATE|UNALIGNED_SIZE, size= 4096), factory= (root= '/tmp/RH1-backup/' (root_access= rwxr-x---, flags= AUTOCREATE_PATH|DISKFULL_ERROR, usage= DATA_BACKUP, fs= xfs, config= (async_write_submit_active=on,async_write_submit_blocks=all,async_read_submit=on,num_submit_queues=1,num_completion_queues=1,size_kernel_io_queue=512,max_parallel_io_requests=64,min_submit_batch_size=16,max_submit_batch_size=64)) SQLSTATE: HY000检查目标目录所在的文件系统的可用空间。增加文件系统大小,或者选择不同的路径,有足够的可用空间用于备份文件。