你目前正处于脱机状态,正在等待 Internet 重新连接

事务日志备份和还原过程中 SQL Server 上执行无日志记录和最小日志记录操作的效果的说明

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 272093
概要
某些操作的任何一个无日志记录、 最小日志记录或的删除事务日志非活动部分,可能会有影响的事务日志顺序。本文提供了有关这些操作的信息和其影响后续的事务日志备份和恢复过程。

与比较 SQL Server 7.0,SQL Server 2000 使用三个新的恢复模型。在这篇文章中,还会介绍 SQL Server 2000 的差异。
更多信息

SQL Server 7.0

具体取决于在无日志记录操作 SQL Server 7.0 时,会出现异常行为三种不同方式尝试在此类无日志记录操作之后执行事务日志备份:
  • 行为 1 的备份失败与这些错误消息:
    服务器: 消息 4213,级别 16,1,状态行 1

    不允许 BACKUP LOG,因为文件 ' dbname 具有已通过了无日志记录的更新,并且不能被滚。执行完整的数据库或差异数据库备份。
    -并且-
    服务器: 消息 3013,级别 16,1,状态行 1

    备份或还原操作异常终止。
    什么导致此行为?

    无日志记录操作中导致一个行为包括:

    • 无日志记录 bcp
    • 选择到
    • WRITETEXT
    • UPDATETEXT
    • 数据转换服务 (DTS) 通过 使用快速加载 和已启用 表锁定
    前面的操作的所有涉及到修改数据或插入新的数据。因为新的数据不完全在事务日志中记录,日志不能恢复更高版本中发生灾难性故障的情况下的数据。事务日志备份可以继续执行之前,必须执行完整或差异数据库备份。

  • 备份将失败与这些错误消息: 行为两个备份,则返回此警告消息,然后执行事务日志备份:
    没有当前数据库备份。此日志备份不能用于前滚前面的数据库备份。
    什么导致此行为?

    导致二行为的操作包括:

    • 备份与 TRUNCATE_ONLY 日志
    • sp_dboption"trunc。登录 chkpt",请将设置为 TRUE,跟

      sp_dboption"trunc。登录 chkpt,设置为 FALSE。
    这些操作而不备份事务日志时截断事务日志的非活动部分。后截断日志,备份事务日志的后续尝试返回警告消息。SQL Server 不会继续创建事务日志备份。但是,此事务日志备份是无效的并且无法恢复。试图恢复此类日志备份时,将返回以下错误消息:

    服务器: 消息 4305,级别 16,1,状态行 1

    无法还原此备份集,因为该数据库已前不滚得足够。还原此日志前,您必须首先将恢复所有更早的日志。
    -并且-
    服务器: 消息 3013,级别 16,1,状态行 1

    备份或还原操作异常终止。
    此行为是设计使然。任何用户都执行上述操作之一应该知道的操作和结果的性质。如果前面的操作执行,应执行完整或差异数据库备份。
  • 备份将失败与这些错误消息: 三行为的事务日志备份不给出任何警告。
什么导致此行为?

通向行为三个操作:
  • 截断表
截断表回收页面所使用的表。事务日志记录页解除分配信息。因此,该操作可以前滚。后续的事务日志备份允许的并可用于以后还原。

SQL Server 2000 和 $ SQL Server 2005 中

在完全恢复模型中会记录到数据库的每个更改。因此没有前面的错误条件发生。

在简单恢复模式始终备份事务日志的任何尝试失败与以下错误消息:
服务器: 消息 4208,级别 16,1,状态行 1

SIMPLE 恢复模型时,不允许使用 BACKUP LOG 语句。使用 BACKUP DATABASE 或更改使用 ALTER DATABASE 恢复模型。
-并且-
服务器: 消息 3013,级别 16,1,状态行 1

BACKUP LOG 正在异常终止。
在大容量日志记录模型中最小日志记录可以执行以下操作来保存事务日志空间的:
  • 包括 bcp 和 $ BULK INSERT 的大容量装载操作。
  • CREATE INDEX,包括索引的视图。
  • 选择到
  • WRITETEXT
  • UPDATETEXT
  • 使用快速加载表锁定 启用 DTS。
不同于 SQL Server 7.0,SQL Server 2000 和 SQL Server 2005 实际上允许在这种最小日志记录操作之后进行备份事务日志。此类交易记录的备份日志不仅备份日志,它也备份扩展盘区分配给上述操作。因此,如日志备份可用于以后还原。但是,大容量日志记录恢复模型只允许数据库恢复到事务日志备份结束后的日志备份包含大容量更改时。不支持时点恢复。此外,备份包含大容量日志记录操作的日志将要求在数据库中的所有数据文件的访问权限。如果数据文件不能访问,无法备份最后的事务日志,并且该日志中的所有已提交的操作都将丢失。

在 SQL Server 2000 和 SQL Server 2005 中,截断登录检查点选项存在仅为向后兼容性。Microsoft 建议您而是使用简单恢复模式。如果更改从完整或大容量日志记录为简单恢复模式,并且再切换回来后续的事务日志备份将返回相同的警告消息,在二行为的"SQL Server 7.0"部分所述,并执行警告消息后日志的备份。

使用此类事务日志备份的后面的还原操作失败,出现以下错误消息:
服务器: 消息 4305,级别 16,1,状态行 1

在此备份集中日志开始 LSN LSNnumber,即太晚将应用于该数据库。可以还原以前的日志备份,包括 LSN LSNnumber
-并且-
服务器: 消息 3013,级别 16,1,状态行 1

RESTORE LOG 正在异常终止。
三"SQL Server 7.0"一节中描述的行为也适用于 SQL Server 2000 中。

警告:本文已自动翻译

属性

文章 ID:272093 - 上次审阅时间:12/07/2005 00:52:04 - 修订版本: 4.3

Microsoft SQL Server 7.0 标准版, Microsoft SQL Server 2000 标准版, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL 2005 Server Workgroup

  • kbmt kbinfo KB272093 KbMtzh
反馈