为了保证最佳的性能,SAP HANA把数据存储在内存中,然而,SAP HANA也使用持久化的存储系统来进行故障的恢复。上一篇文章讲过,数据库进行正常操作时,数据和undo日志在保存点(Savepoint)过程中会自动地持久化到硬盘中,数据的变化被记录在redo日志中。Savepoint和写日志操作可以防止突然的断电对数据库的影响,但是当持久性存储设备(如硬盘)发生故障后,它们就无能为力了。为了防止硬件故障导致的数据丢失,数据库备份是必须的。备份操作过程对SAP HANA的性能影响是可以忽略不计的,用户可以继续正常工作。
数据库从备份中恢复和重启系统是相似的,都是从硬盘中读取数据和日志。但是它们的差别是,数据库从备份中恢复需要的是外部备份文件。由于SAP HANA中数据和日志(redo)存储在不同的分区中,因此数据库的备份也分为日志备份和数据备份两个部分,这两个部分的过程是相互独立的。SAP HANA的备份需要注意一下几点:
授权名称 | 注释 |
BACKUP ADMIN | 执行备份的授权 |
CATALOG READ | 备份时搜集信息的授权 |
在SAP HANA中,默认情况下,系统自动备份日志,前提必须是做过一次数据备份。在自动备份的模式下,三种情况会触发一个log segment备份:
系统用户可设置备份模式,设置 HANA studio中Configuration->golobal.ini->persistence->log_mode和enable_auto_log_backup,如下图所示:
Log mode有两种模式可选:
我们也可以设定log备份的时间间隔,Configuration->golobal.ini->persistence->log_backup_timeout_s。系统默认时间间隔为900s,如果发生介质故障需要从备份恢复且日志日志区不能被用来进行恢复,这段时间内的系统数据改变将会丢失。如果此处设为0,那么系统只有在log segment满或者系统重启时才会备份log。
SAP HANA数据区的备份包含了数据库的所有内容:事务数据已经管理数据(例如:用户,角色,模型和视图)。只有真正的数据会被备份,数据库中未使用的空间不会被备份。数据区进行备份时,会备份每一个SAP HANA服务的数据。如果SAP HANA运行在多个主机上,那么数据备份会包含所有主机上的以服务为单位的备份。
默认情况下,SAP HANA的数据备份目录为$DIR_INSTANCE/backup/data。注意这个目录以及日志备份目录$DIR_INSTANCE/backup/log与SAP HANA的日志区和数据区要放在不同的硬盘上,这样即使SAP HANA系统发生介质故障,也不会影响日志硬盘。
数据备份可通过三种工具进行备份:SAP HANA studio, SQL命令,批处理模式。
管理用户可以在SAP HANA Studio中的SQL 控制台或者hdbsql中使用SQL命令进行备份。推荐在批处理情况下,才使用SQL命令进行备份。SQL 命令为:
BACKUP DATA USING FILE ('<path><prefix>')
其中<path><prefix>为绝对路径。例如:
BACKUP DATA USING FILE ('/backup/data/MONDAY/COMPLETE_DATA_BACKUP')
该语句会在/backup/data/MONDAY中创建
COMPLETE_DATA_BACKUP_databackup_0_1 (name server topology)
COMPLETE_DATA_BACKUP_databackup_1_1 (name server)
COMPLETE_DATA_BACKUP_databackup_2_1 (for example, index server)
...
用户可以在操作系统级别使用SAP HANA的命令行工具HDBSQL进行备份。HDBSQL可以让用户通过crontab来让数据库在固定时间固定间隔进行备份。
hdbinst –a client (default location: /usr/sap/hdbclient)
/usr/sap/hdbclient/hdbuserstore set <KEY> <host>:3<instance id>15 <user> <password>
例如:
/usr/sap/hdbclient/hdbuserstore set BACKUP vebwtests1:30015 user password
/usr/sap/hdbclient/hdbsql –U<KEY> "BACKUP DATA USING FILE ('<path><prefix>')"
例如:
/usr/sap/hdbclient/hdbsql -U BACKUP "BACKUP DATA USING FILE ('MONDAY')"
本文的测试案例所使用的SAP HANA版本为SAP HANA SPS7 Revision 70.00。想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
5 |