阅读(2294) (0)

SAP HANA 持久层

2017-01-07 10:42:06 更新

SAP HANA数据库持久层负责管理所有事务的日志,以提供标准数据备份和系统恢复功能。

它确保数据库可以在重新启动或系统崩溃后恢复到最近的已提交状态,并且事务已完全执行或完全撤销。SAP HANA持久层是索引服务器的一部分,它具有HANA系统的数据和事务日志卷,而内存中的数据会定期保存到这些卷中。HANA系统中的服务器有其自己的持久性。它还为上次保存点的所有数据库事务提供保存点和日志。

为什么SAP HANA数据库需要一个持久层?

  • 主内存是易失性的,因此在重启或断电期间数据会丢失

  • 数据需要存储在持久的介质中。

  • 备份和恢复可用。

  • 它确保数据库在重新启动后恢复到最近提交的状态,并且该事务完全执行或完全撤消

数据和事务日志卷

数据库可以始终恢复到其最近的状态,以确保这些对数据库中数据的更改定期复制到磁盘。包含数据更改和一些事务事件的日志文件也定期保存到磁盘。系统的数据和日志存储在日志卷中。

数据卷存储SQL数据和撤销日志信息以及SAP HANA信息建模数据。这些信息存储在称为块的数据页面中。这些块以规则的时间间隔写入数据卷,也就是保存点。

日志卷存储有关数据更改的信息。在两个日志点之间进行的更改将写入日志卷并称为日志条目。当事务提交时,它们将被保存到日志缓冲区。

保存点

在SAP HANA数据库中,已更改的数据将自动从内存保存到磁盘。这些常规间隔称为保存点,默认情况下它们每五分钟设置一次。SAP HANA数据库中的持久层以定期间隔执行这些保存点。在此操作期间,已更改的数据将写入磁盘,重做日志也会保存到磁盘

属于保存点的数据告知磁盘上的数据的一致状态,并保持到下一个保存点操作完成。重做日志条目将写入日志卷以进行对持久数据的所有更改。在数据库重新启动的情况下,可以从数据卷读取上次完成的保存点的数据,并将重做日志条目写入日志卷。

保存点的频率可以由global.ini文件配置。保存点可以通过其他操作启动,如数据库关闭或系统重启。你还可以通过执行以下命令运行保存点 -

ALTER系统SAVEPOINT

要将数据和重做日志保存到日志卷,应确保有足够的磁盘空间来捕获这些日志卷,否则系统将发出磁盘已满事件,数据库将停止工作。

在HANA系统安装期间,将创建以下默认目录作为数据和日志卷的存储位置:

  • /usr/sap/<SID>/SYS/global/hdb/data
  • /usr/sap/<SID>/SYS/global/hdb/log

这些目录在global.ini文件中定义,并且可以在以后阶段更改。

请注意,保存点不会影响在HANA系统中执行的事务的执行情况。在保存点操作期间,事务继续正常运行。HANA系统运行在合适的硬件上,保存点对系统性能的影响可以忽略不计。