事务日志与自动恢复

[复制链接]

该用户从未签到

0

主题

0

回帖

258

积分

[INTOHARD]排长

Rank: 3Rank: 3

积分
258
发表于 2005-6-15 11:51:03 | 显示全部楼层 |阅读模式
  Informix RDBMS将在每次启动时自动执行恢复操作。这种数据库管理系统可对表空间文件内容是否与逻辑和物理日志内容相一致进行校验。如果两者不一致,Informix就会将逻辑和物理日志内容应用于表空间文件(前滚),然后,将已经发现且未提交处理的事务删除。Informix不会将逻辑日志归档,直到日志中的所有事务均已提交处理。

在已附着数据库或将数据库从备份中恢复出来之前(最后一步),Microsoft SQL Server 2000还可通过在每次启动时对系统中的每个数据库进行检查的方式自动执行数据恢复操作。由SQL Server在启动时执行的恢复操作被称作重启恢复。在恢复过程中,SQL Server将首先检查master数据库,然后,启动对系统中的其它全部数据库予以恢复的线程。自动恢复机制将检查与每个SQL Server数据库相对应的事务日志。如果事务日志包含任何尚未提交处理的事务,就会将相关事务回滚。接着,恢复机制将检查事务日志,以便发现尚未被写出至数据库但已提交处理的事务对象。如果恢复机制发现了这种事务对象,就会再次执行它们(也就是“前滚”)。

SQL Server事务日志的功能特性与Informix逻辑和物理日志完全相同。所不同的是,Informix拥有一整套与实例中的全部数据库相对应的逻辑和物理日志,而每个SQL Server数据库本身均具备将针对数据库所进行的修改全部记录在内并可供该数据库全体用户共享的事务日志。当事务处理开始和数据修改发生时,BEGIN TRANSACTION事件(以及修改事件)将被记入日志。这个事件会在自动恢复过程中得到使用,以便确定事务处理起点。随着每条数据修改语句的逐一接收,相关修改将在被写入数据库自身之前,先被写入事务日志。如需了解更多相关信息,请查阅本文后面的“事务、锁定与同步”小节。

与Informix相似,SQL Server具备自动检查点机制,以确保定期将处理完毕的事务对象从SQL Server磁盘缓存写入事务日志文件。在先后两个检查点之间已经过修改的任何缓存页都将被写入数据库。基于数据库对这些被称作“脏页”的缓存页设点检查的方法可确保将所有已经处理完毕的事务对象写至磁盘。上述处理过程有助于缩短系统故障(如断电等)恢复时间。您可借助SQL Server企业管理器或Transact-SQL(sp_configure系统存储过程)调整恢复操作间隔时间,以期达到修改此项设置的目的。

数据备份与恢复
Microsoft SQL Server提供了以下几种数据备份选择:

完整数据库备份

数据库备份将生成一个完整的数据库拷贝。并非所有页都将被复制到备份集,只有那些实际包含数据的页才会得到复制。数据页和事务日志页都将被复制到备份集。

数据库备份集可供用来按照BACKUP语句执行完毕时的状况重建相关数据库。如果某个数据库只剩下了数据库备份,那么,它只能被恢复到服务器或数据库故障发生前最后一次执行数据库备份时的状态。如需执行完整数据库备份,请使用BACKUP DATABASE语句或备份向导。

差异备份

在对数据库进行全面备份后,只需定期使用BACKUP DATABASE WITH DIFFERENTIAL语句或备份向导对接受过修改的数据和索引页执行备份。由于一项增强特性可在范围级别上对数据库修改情况实施跟踪,因此,SQL Server 2000中的差异备份执行速度更快。

事务日志备份

Microsoft SQL Server中的事务日志与个别数据库相关。事务日志的填写将持续到它接受备份或被截断之时。SQL Server 2000的缺省配置为,事务日志内容将自动增长,直至占据全部可用磁盘空间或达到最大配置容量。当事务日志内容过多时,系统就会生成一条出错信息,并阻止继续进行数据修改,直到事务日志接受备份或被截断之时。其它数据库将不受影响。您可借助BACKUP LOG语句或备份向导对事务日志进行备份。

数据库面临的另一个威胁来自于用户输入无效数据或破坏有效数据的可能性。在这种情况下,您需要对出现问题的事务起始时间加以确定。您可在SQL Server 2000中对日志记载的事务对象进行标记。这样一来,如果您需要执行恢复操作,则可参照在事务处理执行时所使用的标记,而不必抬头看墙上的挂钟。如需实现上述目的,就请使用一个名为BEGIN TRANSACTION的语句和WITH MARK [description]子句。上述标记存储在msdb数据库中。恢复操作可能在含有标记的事务处理执行前包含或终止相关权限。

SQL Server 2000将尽可能压缩日志容量,并在此基础上标明进一步收缩能否在日志备份后成为可能。

文件备份、文件组备份

文件或文件组备份可对某一特定数据库的一或多个文件进行复制,并允许将数据库备份到容量更小的单元:在文件或文件组级别。如需了解更多相关信息,请查看SQL Server联机丛书。

日志传送

您可根据一贯性原则,在Microsoft? SQL Server? 2000企业版中利用日志传送功能将事务日志从一个数据库馈送到另一个数据库。持续从源数据库中备份事务日志并将日志恢复到目标数据库的做法有助于在目标数据库和源数据库之间保持同步。这种做法允许您拥有一台备份服务器,并提供了一条将查询处理任务从主机(源服务器)卸载到只读目标服务器的途径。SQL Server 2000企业版必须被安装在日志传送中所使用的所有服务器上。

恢复模式

恢复模式已被添加至SQL Server 2000,以期为数据保护规划提供便利。它们明确界定了性能表现、日志空间需求与介质(磁盘)故障保护之间的权衡关系。这里共有三种恢复模式:简单恢复、全面恢复和大容量日志。

恢复模式的选择主要根据数据库使用情况和可用性需求做出,有助于确定适当的备份与恢复处理过程。恢复模式仅适用于介质恢复,也就是说,从备份对象中恢复。重启恢复操作将恢复所有已经提交处理的工作。如需了解更多相关信息,请查阅SQL Server 2000在线图书中题为“选取恢复模式”的章节。

您可在不同恢复模式之间轻而易举地进行转换。举例来说,您既可在超大型数据库上使用全面恢复或大容量日志模式,又可同时使用这两种恢复模式。您可在包含大容量插入和重建索引的数据加载过程中,白天使用全面恢复模式,晚上使用大容量日志模式。您还可在运行数据加载任务的同时切换到大容量日志模式,然后,切回全面恢复模式,运行事务日志备份,并在无需运行全面数据库备份的前提下恢复到相关时点状态。上述特性允许您以更加快捷高效的方式执行大容量处理任务;您所需要做的全部事情就是接续生成事务日志备份。

如需改变恢复模式,请使用下列语法:

ALTER DATABASE SET RECOVERY RecoveryModel

如需了解更多相关信息,请查阅SQL Server 2000在线图书中题为“切换恢复模式”的章节。

简单恢复模式

简单恢复模式通常需要较小的日志空间,但在数据或日志文件受损的情况下,就会引发最为严重的潜在工作损失。只有基本恢复所必需的事件才会被纳入日志。在使用简单恢复模式的情况下,只有全面数据库备份和差异数据库备份可供使用。在发生故障的情况下,自上次备份起已经提交处理的所有工作都必须重新执行。这种模式最易于接受管理,但却不是无法容忍已提交工作损失的任务关键应用的理想选择。

全面恢复模式

在全面恢复模式下,一切都将被纳入日志。全面恢复模式提供了从受损数据文件中挽救工作损失的周密保护。如果事务日志已经受损,那么,自最近一次日志备份以来已提交处理的工作将被丢失,并且必须以人工方式重新执行。

即使在使用全面恢复模式的情况下,为防止数据损失而使用事务日志容错磁盘的做法仍十分重要。全面恢复模式还允许恢复到任意特定时间。

大容量日志恢复模式

大容量日志恢复模式为大容量操作赋予了最佳性能表现。这些操作还将耗用较之全面恢复模式更少的日志空间。举例来说,新页的分配将被纳入日志,但已被插入页的数据却不会纳入日志。在SQL Server 2000中,大容量操作由大容量负载(BCP与BULK INSERT,包括在DTS软件包内运行时)、SELECT INTO、CREATE INDEX、WRITETEXT和UPDATETEXT构成。

与全面恢复模式相比,大容量日志恢复模式可将大容量操作日志处理控制在最低水平。请记住,在恢复操作成为必要的情况下,如果日志已经受损或最近一次日志备份后已发生大容量操作,那么,自最近一次日志备份起已在数据库中进行的修改将被丢失。

这种模式虽不支持将数据库恢复到特定时点状态,但却允许将数据库恢复到包含大容量修改的事务日志备份未端。使用大容量日志恢复模式生成的事务日志备份包含已由大容量操作修改过的范围。鉴于您不必担心大容量操作导致备份失效,因此,这种特性具有改善日志传送支持的作用。SQL Server还维护着一个用来跟踪数据范围修改情况的位图,以促使SQL Server赖以识别修改的处理过程趋向最优。

得到改进的备份功能

除为从整体上简化数据保护而引入恢复模式外,SQL Server 2000还提高了系统易管理性:快照技术、差异备份和安全性均已得到增强。

备份操作不会与应用程序或其它管理操作产生冲突。举例来说,备份可与索引生成等大容量操作和大容量负载同时发生。

日志和文件备份可同时发生。

无论系统处于何种活动状态,SQL Server 2000均可为无值守备份操作提供良好支持。

SQL Server可与独立硬件和软件厂商一道为快照备份与恢复技术提供支持。快照备份可将生成备份所需使用的服务器资源控制在最低限度,亦或彻底消除针对服务器资源的使用需求。这对极端重视可用性的中等到超大型数据库来说十分有益。该项技术的首要优势包括:

备份可在以秒计算的极短时间内生成完毕,对服务器构成的影响微乎其微。

磁盘备份可供用来尽快恢复数据库。

另一主机可在不影响生产系统正常运转的前提下生成备份。

用于报告或测试目的的生产数据库拷贝可瞬间生成完毕。

快照备份与恢复功能是与第三方硬件和/或软件厂商协作开发的,这些厂商使用着符合上述设计意图的SQL Server 2000特性。备份技术一般通过分割镜像磁盘集的方式为正在接受备份处理的数据生成瞬时备份。在恢复操作时,原始数据库可立即提供使用。底层磁盘将处于后台同步状态,可执行具有瞬时效果的恢复操作。

差异数据库备份可在与自上次全面备份起接受修改的数据总量呈正比的时间内执行完毕。接受修改的数据量越小,备份执行速度越快。SQL Server 2000使用位图跟踪自最近一次数据库或文件备份以来经过修改的数据范围,以便对其实施高效定位。此外,SQL Server 2000还可为文件差异备份提供支持。

备份特性仍将积累自最近一次全面备份以来针对数据库所进行的修改,其作用方式与恢复特性完全相同。由于备份只对已经过修改的少量信息加以记录,因此,执行速度极高——这一点在那些只包含少量已修改数据的超大型数据库中尤为明显。

为提高安全保障水平,您还可针对备份介质和备份集合实施口令保护。这有助于防止未经授权的用户将备份中添加内容或将内容恢复至数据库。

Informix和SQL Server都需要为日志文件使用特定格式。SQL Server将利用SQL Server企业管理器、Transact-SQL sp_addumpdevice存储过程或与之相当的SQL-DMO指令生成这些被称作备份设备的文件。

您可通过将日志归档磁带设备设定为/dev/null的方式关闭Informix备份;同样,每当遇到检查点时,Microsoft SQL Server中的db_owner固定数据库角色成员也可强迫事务日志将所含内容全部删除。这可利用SQL Server企业管理器(在检查点截断日志)、InTransact-SQL(sp_dboption存储过程)或SQL-DMO加以实现。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表