您不能恢复系统数据库备份到一个不同的生成的 SQL Server

文章翻译 文章翻译
文章编号: 264474 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

您不能还原的备份系统 (主控形状模型msdb) 上的数据库服务器生成不同的生成,在其中执行了备份最初。试图执行这类还原将导致发生以下错误消息:
服务器: 消息 3168,级别 16,1,状态行 1
无法还原设备 d:\temp\master.bak 系统数据库的备份,因为它由另一版本的服务器 (134217904),而不是此服务器 (134217920) 创建。
服务器: 消息 3013,级别 16,1,状态行 1
RESTORE DATABASE 正在异常终止。

原因

有可能在服务器版本之间更改的系统数据库的数据库架构。若要确保此架构中的更改不会导致任何不一致,RESTORE 命令执行的第一个检查之一是服务器的备份文件在服务器内部版本号和内部版本号的用户试图执行还原的比较。其他两个版本时出现错误消息和还原操作异常终止。

注意安装服务包或修补程序生成更改服务器的生成号和服务器版本始终是增量。

下面是可能发生此问题的几个方案:
  • 用户试图从 b。 服务器 A 和 B 位于不同的服务器生成的服务器上所执行的备份中还原服务器 A 上的系统数据库。例如对于 RTM 版本上可能是服务器 A 和服务器 B 可能在服务包 1 (SP1) 生成。
  • 用户试图从在同一台服务器上所执行的备份中还原系统数据库。但是,服务器在备份发生时正在运行一个不同的生成。也就是因为执行了备份,已升级服务器。

替代方法

在这种情况下,还原过程是相当涉及和已用仅作为最后的手段。

在尝试解决此问题,第一步是确定当前生成的服务器,并在 SQL Server 生成上执行了备份。

Microsoft SQL Server 2000 和 Microsoft SQL Server 2005 提供了以下两种方法来确定当前 SQL Server 生成:
  • 方法 1
    SELECT @@version
    此代码返回文本类似于:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • 方法 2
    SELECT SERVERPROPERTY('ProductVersion')
    此代码返回文本类似于:
    8.00.192
    (1 row(s) affected)
为这篇文章,该内部版本号都作为该"SQL Server 生成"在本文的其余部分被引用。

您可以确定在生成该备份发生在备份文件上使用以下命令:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
生成的输出,在下面的三 (3) 列提供服务器内部版本信息:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
作为在"备份生成"这篇文章的剩余部分引用此内部版本号是为这篇文章的目的。

在该的示例将"SQL Server 生成"是 8.00.192,而在"备份生成"是 8.00.176。因为两个版本不同,还原操作不允许的就会出现错误消息 3168。

要变通解决此问题在还原过程具体取决于系统数据库用户试图还原的不同而不同。作为一预防措施,Microsoft 建议您在进行备份的所有现有的数据库 (系统和用户数据库) 之前您继续执行这些步骤。

如果 数据库上还原尝试,您可以尝试成功的还原使用以下步骤:
  1. 分离使用 sp_detach_db 存储过程在系统存在的所有用户数据库。有关分离用户数据库的详细信息请参阅"附加和分离数据库"主题中 SQL Server 2000 丛书联机。 如果使用的 SQL Server 2005,请参阅在"分离和附加数据库"中 SQL Server 2005 丛书联机主题。作为一交叉检查下面的查询返回的所有用户数据库的列表在系统上:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. 通过使用以下命令来备份系统上的数据库 msdb模型 数据库:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. 如果超出了"SQL Server 生成"进行在"备份生成",了安装所有必要的服务包或修补程序建立到服务器软件向前上卷到在"备份生成"以前的已确定。然后,请转到步骤 6。
  4. 删除 SQL Server 2000 或 SQL Server 2005。有关删除 SQL Server 2000 的详细信息请参阅"如何删除 SQL Server 2000"主题中 SQL Server 2000 丛书联机。
  5. SQL Server 2005 和所有必要的服务包或修补程序建立到服务器软件向前上卷到在"备份生成"或重新安装 SQL Server 2000 以前的已确定。
  6. 在单用户模式下启动服务器并使用此生成的备份文件还原 master 数据库。有关还原 master 数据库的说明,请参阅"还原母版数据库从当前备份"主题中 SQL Server 2000 丛书联机。如果使用的 SQL Server 2005 请参阅 SQL Server 2005 丛书联机中的还原 master 数据库主题。
  7. 您已成功还原 master 数据库后,您必须关闭并重新启动 SQL Server 服务。
  8. 如果超出了"SQL Server 生成"进行在"备份生成",了转到步骤 10。
  9. 修补程序建立需要服务器软件向前上卷到 SQL Server 生成或重新应用任何服务包。
  10. 从在步骤 2 中创建的备份还原 msdb模型 数据库。如果使用的 SQL Server 2005 请参阅 SQL Server 2005 丛书联机中的还原模型和 msdb 数据库主题。
  11. 通过使用 sp_attach_db 存储过程,重新连接所有的用户数据库。有关如何重新附加数据库的详细信息请参阅"附加和分离数据库"主题中 SQL Server 2000 丛书联机。
数据库执行的该 备份后所做的任何更改都将立即丢失并必须手动重新应用。
如果您尝试还原操作 模型msdb 数据库上的,您可以使用以下步骤来变通解决此问题。 为了说明此过程与示例,这篇文章引用原始服务器的这些的数据库的一个说 msdb、 被还原为服务器 a。此过程涉及到一个不同的服务器 B,以避免 3168 错误消息上安装 SQL Server。假定当然,是您只需从 msdb 用于一个旧版本有效的备份在服务器 a。
  1. SQL Server 2000 安装在服务器 B (具有相同的排序规则设置服务器 A) 和任何服务包或修补程序版本才能获取服务器软件将在"备份生成"。
  2. 安装 SQL Server 2000 后,启动 SQL Server 服务,请尝试从备份文件还原 msdb 数据库。还原工作如果服务器生成和生成上执行了备份是完全相同。
  3. 如果超出了"当前生成"进行在"备份生成",了转到步骤 5。
  4. 在成功还原后升级为 SQL Server 2000 在服务器 B 上的通过应用任何服务包或修补程序生成所需服务器软件向前上卷到在"当前生成"。
  5. 在升级过程完成后,执行 msdb 数据库的备份。现在,您将能够从服务器 A 上, 这个备份还原考虑的服务器在其执行了备份,并在"当前生成"都是相同的生成。
相同的过程适用于 模型 数据库和。再次,因为执行了备份,对这些数据库所做的任何更改都将丢失,必须手动重新应用。

更多信息

它始终是一种很好的做法,对当前、 有效的备份策略。此限制尚的另一个示例很好的备份策略是非常重要的原因。在这种限制的根据您必须执行您的系统数据库的备份,只要您在安装 service pack 或修复程序生成时升级您的服务器。

属性

文章编号: 264474 - 最后修改: 2007年2月22日 - 修订: 6.4
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
关键字:?
kbmt kbbackup kbprb KB264474 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 264474
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com