时间:2022-12-08 10:30:01 | 来源:信息时代
时间:2022-12-08 10:30:01 来源:信息时代
运行日志 : 数据库运行过程中,数据库管理系统的运行记录。运行日志用来记录事务对数据的更新操作,系统使用专门的日志文件来进行记录。按照登记的内容不同,运行日志文件主要分为两种格式: 以记录为单位的运行日志文件和以数据块为单位的运行日志文件。
以记录为单位的日志文件需要登记的内容包括: 各个事务的开始标记,各个事务的结束标记,各个事务的所有更新操作。每个事务开始的标记、结束标记和每个更新操作均作为日志文件中的一个日志记录。日志记录的内容包括: 事务标识、操作的类型(插入、删除或者修改)、操作对象(记录内部标识)、更新前数据的旧值、更新后数据的新值。
以数据块为单位的日志文件记录的内容包括事务标识和被更新的数据块。由于将更新前的整个块和更新后的整个块都放入日志文件中,操作的类型和操作对象等信息就不必放入日志记录中。
1. 日志的作用
日志在数据库运行管理中,对维护数据的完整性、安全性,以及数据的转储备份等方面有着非常重要的作用,具体归纳如下:
(1)恢复个别的事务。使用日志记录,前滚未完成的事务所做的修改。
(2)数据库启动时恢复所有未完成的事务。当启动数据库实例时,它对每个数据库执行恢复操作。前滚日志中记录的、可能尚未写入数据文件的每个修改。在事务日志中找到的每个未完成的事务都将回滚,以确保数据库的完整性。
(3)将还原的数据库、文件、文件组或页前滚到故障点。在数据丢失或磁盘故障影响到数据库文件后,可以将数据库还原到故障点。先还原上次完整数据库备份和上次差异数据库备份,然后将后续的事务日志备份序列还原到故障点。当还原每个日志备份时,数据库引擎重新应用日志中记录的所有修改,以前滚所有事务。当最后的日志备份还原后,数据库引擎将使用日志信息回滚到该点未完成的所有事务。
(4)支持事务复制。日志读取器代理程序监视已为事务复制配置的每个数据库的事务日志,并将已设复制标记的事务从事务日志复制到分发数据库中。
(5)支持备用服务器解决方案。备用服务器解决方案、数据库镜像和日志传送极大地依赖于事务日志。在日志传送方案中,主服务器将主数据库的活动事务日志发送到一个或多个目标服务器。每个辅助服务器将该日志还原为其本地的辅助数据库。在数据库镜像方案中,数据库(主体数据库)的每次更新都在独立的、完整的数据库(镜像数据库)副本中立即重新生成。主体服务器实例立即将每个日志记录发送到镜像服务器实例,镜像服务器实例将传入的日志记录应用于镜像数据库,从而将其继续前滚。
2. 日志记录类型
(1)循环日志记录:是缺省日志记录策略。一旦日志目录中最后一个主日志文件被写满了,就会将新的事务写到第一个日志文件中,从而覆盖现有的日志数据。这些新事务会继续依次覆盖每个旧日志文件。这种日志记录方法确保了所有已提交事务的数据一致性,这样就可以执行应急恢复。
(2) 归档日志记录:与循环日志记录相比,当最后一个日志文件写满时,归档日志记录过程会创建一个新的日志文件,这样将来的事务就不会覆盖现有的日志文件。当初始化数据库时,系统会在活动日志目录中分配一定数量和指定大小的主日志文件。这个数量由数据库配置参数控制。当主日志文件都写满时,就会“根据需要”创建辅助日志文件,直到创建了最大数量的辅助日志文件为止。一旦达到了这个数量,如果需要附加的日志空间,就会发出一个错误,指出没有更多的可用日志文件,所有数据库活动停止。分两种归档日志: 联机归档日志:它们是驻留在数据库日志目录(“online”)中、普通数据库活动不再需要的日志文件; 脱机归档日志: 它们是已经从数据库日志目录移到脱机存储位置(如备份服务器)、普通数据库活动不需要的日志文件。
3. 日志的管理
日志的管理分简单恢复、完整恢复和大容量日志恢复三种模式:
(1)简单恢复模式:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。最新备份之后的更改不受保护。在发生灾难时,这些更改需要重做。
(2)完整恢复模式:需要日志备份。数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时间点(例如,应用程序或用户错误之前)。如果日志尾部损坏,则必须重做自最新日志备份之后所做的更改。如果备份在接近特定的时间点完成,则可以恢复到该时间点。
(3)大容量日志恢复模式:需要日志备份。它是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过大容量日志记录大多数大容量操作,减少日志空间使用量。如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。否则不丢失任何工作。可以恢复到任何备份的结尾。不支持时间点恢复。