SAP HANA - 持久层


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

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

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

  • 主存储器是易失性的,因此在重新启动或断电期间数据会丢失。

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

  • 可以进行备份和恢复。

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

数据和事务日志卷

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

数据卷存储 SQL 数据和撤消日志信息以及 SAP HANA 信息建模数据。这些信息存储在数据页中,称为块。这些块以固定的时间间隔写入数据卷,这称为保存点。

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

保存点

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

属于保存点的数据表明磁盘上数据的一致状态,并保留在那里,直到下一个保存点操作完成。对于持久数据的所有更改,重做日志条目都会写入日志卷。如果数据库重新启动,可以从数据卷中读取上次完成的保存点的数据,并将重做日志条目写入日志卷。

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

更改系统保存点

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

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

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

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

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