修复 SQL Server 2008R2 时缺少 .msi 文件会出错

A_V*_*A_V 5 sql-server sql-server-2008-r2

我已经安装了 SQL Server 2008R2 SP1 数据库,我正在尝试使用 2008R2 安装二进制文件对其进行修复。

在修复加载过程中,窗口突然关闭并给我这个错误信息,有谁知道该怎么办?到目前为止,我的搜索技巧让我一个人呆着。

http://i.stack.imgur.com/KVtM6.png

A_V*_*A_V 4

微软在知识库文章中提供的脚本:

如何恢复丢失的 Windows Installer 缓存文件并解决 SQL Server 更新期间出现的问题

...找到丢失的文件并允许我前进一点:

  1. 将脚本保存到桌面

  2. 使用CMD运行它

    cscript scriptname.vbs scriptoutput.txt
    
    Run Code Online (Sandbox Code Playgroud)
  3. 找到文本文件中的所有复制命令并使用它们填充 Windows 安装程序文件夹。那些丢失的文件导致了您的问题。

编辑

步骤 3 需要更多解释:从 VBS 脚本生成的文本文件包含各种建议,主要建议将文件从某些位置(稍后会详细介绍)复制到 %windir%\installer 路径(它们应按顺序排列)使任何升级/补丁/修复过程正常进行。

就我而言,我有 sqlserver 2008R2 SP1,因此输出文本文件基本上告诉我“我需要某些普通文件和某些 SP1 文件”

以下是请求普通文件的脚本,可以在库存 sqlserver2008r2 安装程序 DVD 中找到该文件

Copy "C:\Source\Sources SQL 2008\SQL 2008 R2\SQL2008R2_source\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi" C:\Windows\Installer\2d620c2b.msi
Run Code Online (Sandbox Code Playgroud)

这是请求 SP1 文件的脚本:

Copy "g:\10bb0cd00ccb163360\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msp" C:\Windows\Installer\2d8607e0.msp
Run Code Online (Sandbox Code Playgroud)

SQLSERVER 会记住第一次使用这些文件时在哪里找到这些文件,但如果像我的情况一样,有人在服务器上进行了大量清理并删除了所有珍贵的文件,则该位置可能不再存在。

您需要修改路径的第一部分,使其与提取的 DVD 和 SP1 补丁的位置相匹配。要提取 SP1 补丁,您可以在 CMD 提示符下运行以下命令

c:\path\to\file\SQLServer2008R2SP1-KB2528583-x64-ENU.exe /x
Run Code Online (Sandbox Code Playgroud)

请注意,末尾有 /x,此命令将打开一个小窗口,询问您要将内容提取到哪里。