1、HANA 的备份、恢复与高可用性by 胡珏1. Hana 的 backup 说明在 hana 中,对于小量的数据备份,可以使用导入导出的方式,如果是需要是 HANA 数据库级的备份,那么就必须是 backup。Backup 包括数据的备份,日志的备份这两部分,数据的备份包括数据库的所有内容,如用户、角色、模型、视图等等,数据的备份是针对hana 数据库的全备份,在 studio 中可以手动操作数据的备份,也可以在安装 client 后,通过 shell 语句进行自动备份;日志的备份可以视为是增量备份,通过备份操作日志的方法进行数据库从备份中恢复和重启系统是相似的,都是从硬盘中读取数据和日志。但
2、是它们的差别是,数据库从备份中恢复需要的是外部备份文件。由于 SAP HANA 中数据和日志(redo)存储在不同的分区中,因此数据库的备份也分为日志备份和数据备份两个部分,这两个部分的过程是相互独立的。SAP HANA 的备份需要注意一下几点:1、 SAP HANA 的备份所需要的授权见下表。授权名称 注释BACKUP ADMIN 执行备份的授权CATALOG READ 备份时搜集信息的授权2、 在 SAP HANA 进行第一次数据备份以前,日志备份是不会进行的(log mode 处于overwrite 模式) 。3、 备份和恢复都是应用于整个数据库的,不可以备份和恢复数据库中的某一个对象。
3、4、 Hana 数据恢复是按时间点进行,系统会自动根据时间点选择数据备份与日志备份进行恢复。5、 最好使用共享存储设备进行备份,因为它不仅可以让所有节点访问到备份数据,而且系统更容易管理共享设备。2. Hana studio 备份2.1. 数据备份在 studio 中选择系统,右键选择 BACKUP,需要注意的是,用户需要有 BACKUP ADMIN 和CATALOG READ 权限(BACKUP OPERATOR 也可以进行操作)需要注意的是 backup 的目录,需要 hana 操作系统用户(即 hdbadm)有读写权限。备份进行前的备份信息一览点击 finish 后,开始进行备份备份完成
4、备份从 15:22:31 开始,到 15:29:30 结束,约为 420s,查看备份文件如下图,可以得出备份速度约为 2G/min2.2. 日志备份日志备份是 hana 系统自动进行的,需要在 Configuration-golobal.ini-persistence-log_mode 和enable_auto_log_backup d 这 2 个参数进行设置。Log mode 有两种模式可选:1、 Normal(默认) ,在该模式下,如果 enable_auto_log_backup=yes,log segment 会被自动的备份,这种方式的好处是:备份后的 log segment 文件可以
5、被重新利用,从而避免了log volume 慢导致数据库崩溃。2、 Overwrite,在该模式下,log segment 不会被进行备份,进行了 savepoint 之后,free 状态的 log segment 会被直接覆盖。由于没有日志的备份,这种模式不推荐在生产系统中使用。如果使用 Overwrite 模式,数据将只能通过数据备份进行恢复了,不能达到恢复到 point-in-time 的效果,只能恢复到某个 savepoint。在 SAP HANA 中,默认情况下,系统自动备份日志,前提必须是做过一次数据备份。在自动备份的模式下,三种情况会触发一个 log segment 备份:1、
6、Log segment 满了。2、 超过 log 备份 timeout 设置时间,log segment 关闭。3、 数据库启动。在/usr/sap/HDB/HDB00/backup/log 下,可以查看到 log 日志备份已经自动开始需要注意的是,日志备份增长很快,如果日志备份目录已满,将会造成 hana 服务挂起2.3. HANA 参数备份HANA 的参数设置都是以 ini 文件形式存储在 $instance_home/exe/config/ 目录下,包括 SDA 中所需要的 property 文件,备份该目录下文件即可2.4. 要点说明1、 数据备份和日志备份只能是在 HANA 数据库在
7、线的情况下进行(所有的服务运行的时候) ;2、 在数据备份和日志备份的时候,HANA 数据库照常使用(注意:全备份可能会影响数据库性能) ;3、 数据备份和日志备份运行时是分别独立的;4、 在数据备份中,只有实际的数据才被备份,数据备份包括数据库需要存储的所有数据结构,其中包含用户数据、模型、目录拓扑信息以及安全存储文件系统(SSFS) 。不包含数据库参数配置信息;5、 只有初始数据备份完成后,日志备份才会开始;6、 备份和恢复总是作用于整个数据库,不可能备份或恢复某一个数据库对象;7、 HANA 数据库可以备份到文件系统中(裸设备应该不被支持) ,或者使用第三方的备份工具。3. Hana s
8、tudio 恢复在 studio 中选择系统,右键选择 Recover,需要注意的是,用户需要有 BACKUP ADMIN 和CATALOG READ 权限(BACKUP OPERATOR 也可以进行操作)因为 Recover 操作的时候,需要停止 hana 服务,因此,在这里需要输入 hana 专属的系统操作用户信息(即 hdbadm)系统提示,hana 系统将会在恢复开始前 offline开始关闭 hana 系统系统关闭完成后,开始恢复过程,在这里需要选择恢复的类型恢复的类型有 4 种,分别如下:选项 描述 备注恢复数据库到最近的状态此选项将恢复数据库到离当前最近的状态,需要以下数据: 最
9、近的数据备份(File, Backint, 或存储适用于 hana 数据区损坏的情况快照) 数据备份后的日志备份 日志区数据恢复数据库到指定时间点需要以下数据: 最近的数据备份(File, Backint, 或存储快照) 数据备份后的日志备份(包括此时间点之后的日志备份) 日志区数据 适用于逻辑错误导致数据库需要被重置到一个特定的时间点恢复数据库到指定数据备份或者存储快照需要以下数据: 指定数据备份(File, Backint, 或存储快照)适用于数据库拷贝的情况恢复数据库到某个 log 位置此选项是用来处理之前的恢复失败的情况,需要以下数据: Log 位置之前的数据备份(File, Backint, 或存储快照) 数据备份后的日志备份 日志区数据适用于单独对某个service 进行恢复整个备份的过程首先用数据备份恢复到全库备份的时间点状态,然后采用日志备份进行数据恢复,最后再应用日志区中日志进行数据恢复,经过这三步,基本可以完整的恢复数据。对于不同的恢复方式,适用于不同的情况。在本文档中,选择第二项进行恢复,如下选择指定的时间点。如果选择的时间点之前没有数据备份,下一步将会报错,提示无法找到数据备份。在这里,会让你选择日志备份的路径,默认会有当前的日志备份路径,如果存在有多