数据库系统在正常停止时,会将内存中的所有日志信息、被更新过的数据写入磁盘,然后在日志文件的最后写入检查点记录 。这样,所有已提交事务的更新全部落实到磁盘中,数据库中的数据就处于一致状态。如果数据库系统异常中止,那么仍旧在内存中的日志信息、被更新的数据就全部丢失。在这种情况下,一些事务的更新处理可能只是部分落实到磁盘中,从而导致数据库处于不一致状态。重新启动时,在用户能够访问数据库中的数据之前,数据库系统要首先使用日志信息,使数据库处于一致状态。这就是崩溃恢复。
1. 崩溃恢复的处理方式
崩溃恢复就是数据库系统在异常中止后重新启动,使用数据库日志文件,恢复数据库到一致状态的过程。其关键点就是:决定那些事务需要重做,那些事务需要回滚。通过重做已提交事务,避免事务的丢失;通过回滚未完成事务,删除造成数据不一致的部分事务更新 。所有这些操作,是依靠日志文件以及文件中的最后一个检查点记录 来实现的。
数据库系统在执行检查点操作时,暂停所有事务的更新处理,将内存中的所有日志信息、被更新过的数据写入磁盘,作永久性的保存。基于日志文件的最后一个检查点记录,系统中的事务有以下三种状态:
( 1 )在此之前已经提交。这些事务的更新,肯定已经落实到磁盘,不需要考虑。
( 2 )在此之前已开始执行,但还没有提交。这些事务的更新,在此之前的部分已经落实到磁盘,但无从确定在此之后的部分是否落实到磁盘。
( 3 )在此之后开始。这些事务的更新,不能确定是否落实到磁盘。
因此,在崩溃恢复时,系统只要基于日志文件中的最后一个检查点记录,找到所有无法确定其更新全部写入磁盘的事务。对这些事务,由最后一个检查点记录开始,正向扫描日志文件,重新执行有提交记录的事务,没有提交记录的事务就进行回滚 ,这样就可以使数据库处于一致状态。
2. 崩溃恢复的处理步骤
对崩溃恢复,数据库系统大体上采用以下步骤进行处理:
( 1 )从日志文件的最后一条记录开始,由后至前扫描日志记录,找到日志文件中的最后一个检查点记录。
( 2 )找出该检查点操作发生时,正在执行、还没有提交的事务清单。然后由该检查点记录开始,正向扫描日志文件,找到该检查点操作发生后开始的新事务和提交的事务。由此我们可以得到两个事务清单:
① 有提交标识的事务清单。这些事务需要重新执行。
② 没有提交标识的事务清单。这些事务需要回滚。
( 3 )对需要重新执行的事务,从最后的检查点操作记录开始,正向扫描日志文件,找出这些事务的操作记录重新执行。对需要回滚的事务,从日志文件的最后开始,由后向前扫描,找出这些事务的操作,执行反向处理。
经过以上的崩溃恢复处理,数据库恢复到一致状态,系统就正常运行,允许用户访问数据库中的数据。
3. 崩溃恢复的使用说明
崩溃恢复由数据库系统自动完成,和数据库使用的日志归档模式无关。只要系统非正常关闭,再次启动时就要执行崩溃恢复。数据库系统在异常中止后重新启动,往往需要更长的时间才能够访问,就是因为系统要执行崩溃恢复的缘故。
崩溃恢复不需要使用数据库备份。从第 7 章我们知道:日志文件可处于活动和不活动两种状态。崩溃恢复需要使用处于活动状态的日志文件,因而它们不能被归档、删除。一旦这些活动的日志文件不小心被删除或者遭到破坏,无法完成崩溃恢复,无法恢复数据库一致性,那么整个数据库系统就遭到破坏。如果出现这种情况,就只能使用数据库备份,进行数据库的不完整恢复,从而造成数据的丢失。
如果为了提高数据库系统的处理性能,不要求事务提交前将日志信息写入磁盘,那么系统的异常中止可能会造成已提交事务的丢失,崩溃恢复不会重新执行这些事务。在这种应用环境下,在系统异常中止、重新启动后,需要进行人工检查,发现而重新执行那些丢失的事务。
转自: http://blog.chinaunix.net/u2/70714/showart_1004038.html
分享到:
相关推荐
因此,在系统崩溃的时候,如何恢复原有的数据就成为一个极其重要的问题了。 1. 数据库崩溃后的恢复步骤 在数据库崩溃后,理想的情况是数据文件和日志文件都完好无损的,这样只需要使用 sp_attach_db,把数据文件...
金蝶数据库服务突然崩溃时的数据恢复 金蝶数据库服务突然崩溃时的数据恢复是指在服务器崩溃的情况下,如何恢复数据库实体文件并将其重新附加到 SQL Server 中的过程。该过程需要熟悉金蝶数据库服务的构成规则和自动...
【标题】"psp系统恢复.zip"涉及到的主要知识点是关于PlayStation Portable(PSP)游戏机的系统恢复过程。这通常是指当PSP遇到软件问题,如无法启动、系统崩溃或者需要降级固件时,用户采取的一种修复方法。 【描述...
文件可能因多种原因丢失,包括意外删除、格式化磁盘、硬盘故障、系统崩溃、病毒感染等。 二、文件恢复方法 1. 回收站恢复:误删的文件通常会被移动到回收站,只要没有清空回收站,可以直接从回收站找回。 2. 文件...
* 快速恢复:ABB机器人系统恢复可以快速恢复ABB机器人系统,避免了由于系统崩溃或其他故障导致的停机时间。 * 方便维护:ABB机器人系统恢复可以方便地维护和维修ABB机器人系统。 * 提高效率:ABB机器人系统恢复可以...
4. 如果重装迅雷无效,可以考虑回退浏览器版本,例如将IE恢复到IE8,因为某些兼容性问题可能导致迅雷崩溃。 5. 如果回退浏览器版本仍然出现问题,可以将Flash插件降级到前一个稳定版本,因为有时新版本的Flash与迅雷...
标题中的“1710828944845_恢复.zip”很可能是一个包含数据恢复相关资料的压缩文件,而描述中的内容与标题完全相同,暗示这可能是一个关于数据恢复过程或教程的文件。由于没有提供具体的标签,我们只能根据文件名来...
在这个"数据恢复.zip"压缩包中,很可能包含了一些关于如何恢复图片文件的工具、教程或者指南。 首先,我们要理解数据恢复的基本原理。数据在存储设备(如硬盘、SD卡、U盘等)上并不是立即被删除或覆盖,而是标记...
**数据库在崩溃状态下的恢复**:当数据库因某些原因崩溃后进行的恢复操作。 3. **丢失数据文件的恢复**:针对丢失的数据文件进行恢复。 4. **在崩溃状态下对数据库进行的恢复**:当数据库崩溃时,对其进行恢复的...
数据丢失的原因多种多样,包括硬件故障、软件错误、病毒感染、人为失误、格式化、系统崩溃等。在这种情况下,数据恢复软件通常通过扫描磁盘表面,寻找未被新数据覆盖的旧文件碎片,来尝试恢复文件。ReneeUndeleter_...
"数据恢复软件(免费)硬盘恢复.rar" 提供的是一款用于恢复丢失或删除数据的免费工具,特别针对硬盘驱动器。在本文中,我们将深入探讨数据恢复的基本原理、常见的数据丢失原因、免费数据恢复软件的工作方式以及如何...
"内存卡数据恢复.rar" 提供了一个解决方案,即 "tenorshare-card-data-recovery-trial.exe" 这款软件。Tenorshare Card Data Recovery 是一款专业级的数据恢复工具,专为从各种类型的内存卡中恢复丢失数据而设计。它...
- 恢复:恢复技术的目标是在数据库崩溃后,将数据库状态恢复到一致且可使用的状态,即在崩溃前的某个已知良好状态。 2. 数据库恢复的基本原理: - 事务原子性:事务的所有操作要么全部完成,要么全部不完成,确保...
为了提供一个稳定、可靠的运行环境,"Android-App崩溃恢复框架!" 提供了一种解决方案,名为"Recovery"。这个框架旨在自动化处理运行时的程序崩溃,确保即使在错误发生时也能尽快恢复正常运行或者至少提供有用的错误...
5. **重置浏览器设置**: 如果所有常规解决方案都无效,可以考虑恢复Chrome的默认设置。这将删除所有的个性化设置和第三方扩展,但保留书签和其他重要数据。 6. **系统还原或重装**: 如果上述所有方法都无法解决问题...
标题中的“极光硬盘数据恢复.zip”提示我们这是一个关于数据恢复软件的压缩包,极光数据恢复软件可能是其中的主要内容。这个软件很可能用于帮助用户在硬盘出现故障或数据丢失的情况下找回重要的文件。以下是对相关...
标题中的“U盘,电脑数据恢复.zip”表明这是一个关于数据恢复的软件压缩包,主要针对U盘和电脑硬盘的数据丢失情况进行修复。描述中提到,这个软件包包含一个教程,用户在安装软件后可以按照教程操作,进行数据恢复。...