ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows 11 安装 SQL Server 2008 R2 实战避坑指南

Windows 11 安装 SQL Server 2008 R2 实战避坑指南 1. 为什么还有人要在 Windows 11 上装 SQL Server 2008 R2先把话说在前头SQL Server 2008 R2 早就停止官方支持了微软官方文档里对它的支持矩阵最高只写到 Windows 7 / Server 2008 R2 那一代。你在 Windows 11 上装它本质上是在做一件官方不支持、但工程上可行的事。那为什么还要折腾我接触到的真实场景无非三类一是老 ERP、老 MES、老进销存系统的数据库还锁死在 2008 R2 的兼容级别100二是某些行业软件厂商的安装包只认这个版本升级数据库就要重新买授权三是做数据迁移、历史数据比对时需要一个能挂载老备份文件.bak的临时环境。所以这篇东西不是教你应该用 2008 R2而是当你不得不在 Windows 11 上把它跑起来时怎么少走弯路。我自己前后在三台不同配置的机器上装过一台是 Windows 11 专业版 23H2、一台是企业版 LTSC 2024、还有一台是家庭版 25H2。踩的坑不完全一样但核心矛盾就那么几个兼容性检查拦截、.NET 3.5 缺失、SQL Server Browser 服务起不来、安装程序卡在正在启动、以及装完之后连不上实例。下面按我实际的安装顺序把每一步的意图、参数和坑点都摊开讲。适合谁看手上有老系统要维护的运维、被厂商安装包逼到墙角的实施工程师、以及想在自己开发机上复现老环境的程序员。如果你只是想要一个能跑的新数据库直接上 SQL Server 2019/2022 或者 PostgreSQL别往下看了这条路性价比不高。2. 装之前的整体思路与方案选型2.1 先想清楚物理机直装还是虚拟机隔离这是第一个要做的决策而且它直接决定了后面 80% 的坑要不要踩。我的建议非常明确能上虚拟机就上虚拟机。原因很实在。SQL Server 2008 R2 的安装程序会往系统里塞一堆老组件.NET Framework 3.5、SQL Server Native Client、老版本的 OLE DB Provider、还有那个臭名昭著的 SQL Server VSS Writer。这些东西在 Windows 11 上属于能装但会污染环境的类型。我第一台机器就是直装的装完之后系统里多了一堆 2008 时代的运行库后来装新版 Visual Studio 的时候依赖冲突排查了整整一个下午。虚拟机方案VMware Workstation 或 Hyper-V 都行的好处是装坏了直接删快照重来不污染宿主机。而且你可以在虚拟机里装一个 Windows 10 或者干脆 Windows 7 的镜像那样连兼容性问题都没有安装过程丝滑得不像话。代价是要多占几个 G 内存和几十 G 磁盘。如果你确实必须直装比如性能敏感、或者就是要测试 Windows 11 下的兼容性那也没问题后面的步骤照样适用只是要更小心地做系统还原点。2.2 版本选择Express 还是 Developer 还是 Standard2008 R2 的版本选择比新版简单但有个坑要注意。Express 版有 10GB 单库大小限制而且默认实例名是SQLEXPRESS很多老软件的连接字符串写死了localhost或者.用 Express 就会连不上。Developer 版功能完整、免费、仅限开发测试是我最推荐的。Standard 和 Enterprise 需要授权除非你手上有合法的老授权否则别碰。还有一个细节32 位还是 64 位。Windows 11 只有 64 位所以你必须下 64 位的安装包。网上流传的很多SQL Server 2008 R2 安装包其实是 32 位的装到一半会报此处理器类型不支持该安装程序包白折腾。认准文件名里的x64。2.3 安装包来源与完整性校验安装包这块我不给具体下载链接但给你判断标准。官方原版镜像的典型文件名是cn_sql_server_2008_r2_developer_x64_dvd_xxxx.iso这种格式大小在 4.2GB 到 4.5GB 之间。如果你下到的文件只有几百 MB那多半是精简版或者干脆是别的东西别用。下完之后一定要校验哈希。我吃过一次亏从某个网盘下的镜像装到安装程序支持规则那一步反复报错换了个来源重新下就好了。校验方法很简单PowerShell 里跑Get-FileHash -Algorithm SHA256 D:\cn_sql_server_2008_r2_developer_x64_dvd.iso拿到哈希值后跟可靠来源比对。这一步花两分钟能省掉后面两小时的玄学排查。2.4 系统层面的前置准备清单在双击 setup.exe 之前把下面这几件事做完能避免一大半的报错开启 .NET Framework 3.5这是硬性依赖2008 R2 的安装程序本身就是基于 .NET 3.5 写的。Windows 11 默认只装了 4.x3.5 是按需启用的。创建系统还原点直装的话这一步别省。关闭杀毒软件实时防护安装过程中会释放大量临时文件某些杀软会误杀导致安装中断。确认磁盘空间完整安装含实例、SSMS、联机丛书大概要 6-8GB留 15GB 比较稳妥。记下当前的管理员账户密码安装过程中会要求指定服务账户用内置 Administrator 最省事。3. 核心细节解析与实操要点3.1 .NET Framework 3.5 的正确开启方式这是 Windows 11 上装 2008 R2 的第一道坎也是最容易卡住的地方。很多人第一反应是去微软官网下个 .NET 3.5 的离线安装包结果发现装不上提示需要从 Windows 更新获取文件。正确做法是用 DISM 命令从系统镜像里启用。图形界面路径是控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选 .NET Framework 3.5 (包括 .NET 2.0 和 3.0)。但这里有个坑如果你没插网线或者 Windows Update 被策略禁用了图形界面会报错 0x800F0906。命令行方式更可靠用管理员权限打开 PowerShellDISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs这里的/Source指向你的 Windows 11 安装镜像里解压出来的sources\sxs目录。/LimitAccess的意思是不要联网去找只用本地源。这个参数很关键能避免因为网络问题导致的失败。注意如果你手头没有 Windows 11 的 ISO可以用DISM /Online /Enable-Feature /FeatureName:NetFx3 /All让它联网下载但前提是 Windows Update 服务正常且网络通畅。实测在部分企业网络环境下这条会超时。开启成功后用这条命令验证Get-WindowsOptionalFeature -Online -FeatureName NetFx3看到State : Enabled就对了。3.2 兼容性检查拦截的绕过逻辑双击 setup.exe 之后Windows 11 大概率会弹一个此程序存在已知兼容性问题的对话框。这是 Windows 的程序兼容助手PCA在起作用它检测到安装程序的 manifest 里声明的支持系统不包括 Windows 11。不要点检查兼容性那个向导会把你引到以兼容模式运行的岔路上而兼容模式对 SQL Server 安装程序基本没用反而可能引入新的问题。正确操作是点运行程序不获取帮助或者干脆在 setup.exe 上右键 → 属性 → 兼容性 → 勾选以兼容模式运行这个程序选 Windows 7同时勾选以管理员身份运行。但我的经验是直接忽略兼容性警告、以管理员身份运行原版 setup.exe 的成功率最高。兼容模式反而会让安装程序误判系统版本在某些步骤上做出错误决策。如果连 setup.exe 都双击没反应检查一下是不是被 SmartScreen 拦了。右键 → 属性 → 底部如果有解除锁定的勾选框勾上再试。3.3 安装程序支持规则报错的逐条排查进入安装向导后第一个真正的关卡是安装程序支持规则页面。这里会列出一堆检查项常见的红色警告有报错项真实原因处理方式重新启动计算机有挂起的文件重命名操作重启或删注册表 PendingFileRenameOperations性能计数器注册表配置单元一致性注册表计数器损坏用 lodctr /R 重建Windows Management Instrumentation (WMI)WMI 服务异常重启 winmgmt 服务一致性检查失败安装介质损坏重新校验哈希、重新解压其中重新启动计算机这条最阴。有时候你明明刚重启过它还是报这个。原因是注册表里HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下的PendingFileRenameOperations有残留。删掉这个键值先导出备份再点重新运行就能过。WMI 那条的话管理员命令行跑net stop winmgmt /y winmgmt /verifyrepository如果返回不一致就执行winmgmt /salvagerepository修复。3.4 功能选择与实例配置的关键决策到了功能选择页面别全勾。数据库引擎服务和管理工具-基本是必选的SQL Server 复制和全文搜索按需。SQL Server Browser建议勾上虽然它单独也能后装但装的时候一起搞定省事。实例配置这一步如果你机器上已经有别的 SQL Server 实例必须选命名实例并起个不冲突的名字。如果是干净机器默认实例最省心因为老软件的连接字符串通常写的是localhost或.默认实例才能被这样解析。服务账户配置是另一个坑点。2008 R2 默认给每个服务单独指定账户在 Windows 11 上如果用了虚拟账户或者受限账户安装到最后启动服务那一步会失败。最稳的做法是所有 SQL Server 服务都用同一个账户比如内置的NT AUTHORITY\SYSTEM或者你当前的管理员账户。生产环境当然要按最小权限原则来但这是本地测试环境先跑起来再说。排序规则Collation保持默认的SQL_Latin1_General_CP1_CI_AS就行除非你的老库有特殊要求。改错了后面恢复备份会报排序规则冲突很麻烦。4. 实操过程与核心环节实现4.1 完整安装流程的分步记录我把一次成功的安装过程按时间线记下来你可以对照着走。第一步挂载镜像并解压。不要直接在 ISO 里运行 setup.exe先解压到一个本地目录比如D:\SQL2008R2\。原因是安装过程中需要写入临时文件只读的挂载盘会出问题。第二步以管理员身份运行 setup.exe。忽略兼容性警告。等待安装程序加载这一步在机械硬盘上可能要一两分钟别以为卡死了。第三步选择全新 SQL Server 独立安装。如果你之前装失败过先走一遍删除把残留清掉否则新装会报实例已存在。第四步产品密钥。Developer 版会自动填充Express 版没有这一步。第五步许可条款。勾选接受。第六步安装程序支持规则。按 3.3 的方法逐条清掉红色项直到下一步可点。第七步功能选择。勾选数据库引擎服务、管理工具-基本、SQL Server Browser。安装路径我习惯改成非系统盘比如D:\MSSQL2008\方便后面做快照和迁移。第八步实例配置。干净机器选默认实例。如果 1433 端口被占用安装程序会警告但不会阻止你继续装完改端口就行。第九步磁盘空间要求。看一眼剩余空间够不够。第十步服务器配置。所有服务账户统一用NT AUTHORITY\SYSTEM排序规则保持默认。第十一步数据库引擎配置。身份验证模式选混合模式设置 sa 密码。这一步的 sa 密码一定要记牢后面连不上实例时它是救命稻草。添加当前用户为管理员。第十二步错误和使用情况报告。随意。第十三步安装规则。又是一轮检查通常到这一步就没问题了。第十四步准备安装。确认配置摘要点安装。第十五步等待。这一步在 SSD 上大概 15-25 分钟机械硬盘可能 40 分钟以上。中途进度条长时间不动是正常的别急着关。4.2 安装卡在正在启动服务的处理这是 Windows 11 上最高频的卡点。表现是安装进度到正在启动服务或者正在启动数据库引擎服务时进度条不动等半小时也没反应。根本原因通常是服务账户权限不足或者SQL Server Browser 依赖的端口被占。处理步骤先别关安装程序另开一个管理员命令行查服务状态sc query MSSQLSERVER sc query SQLSERVERAGENT sc query SQLBrowser如果MSSQLSERVER显示START_PENDING卡住手动启动试试net start MSSQLSERVER如果报错看 Windows 事件查看器 → Windows 日志 → 应用程序找来源为MSSQLSERVER的错误。常见的错误码和含义错误 1069登录失败服务账户密码错或权限不够。改成NT AUTHORITY\SYSTEM重试。错误 3417无法启动通常是 master 数据库文件损坏或路径不对。错误 258等待服务连接超时多半是端口冲突。如果手动能启动回到安装程序点重试就能继续。如果手动也起不来那就得取消安装清理残留后重来。4.3 安装后连不上实例的排查路径装完了打开 SSMS 却连不上报无法连接到 localhost或者错误 40 - 无法打开到 SQL Server 的连接。这个问题的排查有个固定顺序别乱试。第一确认服务在跑。services.msc里看SQL Server (MSSQLSERVER)是不是正在运行。没跑就手动启动起不来回到 4.2。第二确认 TCP/IP 协议启用。打开SQL Server 配置管理器2008 R2 的这个工具在开始菜单里能搜到展开SQL Server 网络配置 → MSSQLSERVER 的协议看 TCP/IP 是不是已启用。默认安装时它可能是禁用的这是 2008 R2 的一个老毛病。启用后要重启服务。第三确认端口。双击 TCP/IP → IP 地址选项卡拉到最下面 IPAll看 TCP 端口是不是 1433。如果是空白或者 0改成 1433。如果 1433 被别的程序占了改成 14330 之类的但连接时要用localhost,14330这种带端口的写法。第四确认防火墙。Windows 11 的防火墙默认会拦 1433。加一条入站规则New-NetFirewallRule -DisplayName SQL Server 1433 -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow第五确认 SQL Server Browser 在跑。如果你用的是命名实例没有 Browser 服务就解析不了实例名。默认实例其实不依赖它但开着没坏处。第六确认身份验证模式。如果安装时选了仅 Windows 身份验证那 sa 账户是禁用的。用 Windows 账户登录 SSMS然后改模式-- 先确认当前模式 SELECT SERVERPROPERTY(IsIntegratedSecurityOnly); -- 1 表示仅 Windows0 表示混合模式如果是 1改成混合模式需要改注册表HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\LoginMode把值从 1 改成 2然后重启服务。4.4 让老备份文件能正常恢复装 2008 R2 的人十有八九是为了恢复老备份。这里有个坑高版本备份不能在低版本恢复。如果你手上的 .bak 是从 SQL Server 2012 或更高版本备份的2008 R2 根本读不了会报备份集包含的数据库版本高于服务器版本。这种情况只能找一台高版本 SQL Server 先恢复再用生成脚本 导出数据的方式降级迁移。如果是 2008 R2 或更低版本备份的恢复流程-- 先看备份文件里有什么 RESTORE FILELISTONLY FROM DISK D:\backup\olddb.bak; -- 恢复时用 MOVE 指定新路径避免和原路径冲突 RESTORE DATABASE OldDB FROM DISK D:\backup\olddb.bak WITH MOVE OldDB_Data TO D:\MSSQL2008\DATA\OldDB.mdf, MOVE OldDB_Log TO D:\MSSQL2008\DATA\OldDB_log.ldf, RECOVERY, REPLACE;RESTORE FILELISTONLY那一步别省它会告诉你逻辑文件名MOVE 的时候要用这些名字。很多人直接抄网上的 MOVE 语句结果逻辑文件名对不上报错。5. 常见问题与排查技巧实录5.1 高频报错速查表现象可能原因快速处理setup.exe 双击无反应SmartScreen 拦截属性里解除锁定报此处理器类型不支持下了 32 位包换 x64 安装包卡在正在启动服务服务账户权限改 SYSTEM 账户连不上 localhostTCP/IP 未启用配置管理器里启用错误 40防火墙/端口加防火墙规则、确认 1433恢复报版本过高备份来自高版本高版本中转降级SSMS 打不开.NET 3.5 没装全重新 DISM 启用安装到一半蓝屏驱动冲突虚拟机重来5.2 几个文档里不会写的实操心得心得一安装前把 Windows Update 暂停。我遇到过两次安装到一半系统自动装更新重启后安装程序状态全乱。装之前把更新暂停 7 天装完再恢复。心得二SSMS 单独装。2008 R2 自带的 SSMS 是 2008 版本的在 Windows 11 上界面缩放有问题高 DPI 屏幕下字糊得看不清。可以单独下 SQL Server Management Studio 18 或 19它们能连 2008 R2 实例界面也正常。这是我最推荐的一个混搭方案。心得三装完立刻做快照。虚拟机的话直接打快照物理机的话用系统还原点或者第三方备份工具。因为 2008 R2 装好之后任何一次系统大更新都可能把它搞挂有个干净的还原点能救命。心得四别装 SQL Server 2008 R2 的联机丛书。那个帮助文档在 Windows 11 上根本打不开还占几百 MB。功能选择里取消掉。心得五实例名别用中文。虽然安装程序允许但后面连接字符串、脚本里处理中文实例名会出各种编码问题。老老实实用英文。5.3 卸载不干净导致重装失败的清理装失败一次之后直接重装大概率会报实例已存在或者产品已安装。这时候要走彻底清理先用控制面板卸载所有 SQL Server 2008 R2 相关项。然后手动删这些目录C:\Program Files\Microsoft SQL Server\C:\Program Files (x86)\Microsoft SQL Server\C:\ProgramData\Microsoft\SQL Server\再清注册表先导出备份HKLM\SOFTWARE\Microsoft\Microsoft SQL ServerHKLM\SOFTWARE\Microsoft\MSSQLServerHKLM\SYSTEM\CurrentControlSet\Services\下所有 MSSQL 开头的服务项最后重启再重装。这套流程我走过三次每次都能清干净。6. 关于长期使用的几句实在话SQL Server 2008 R2 在 Windows 11 上跑起来之后日常用是没问题的但有几个长期隐患得心里有数。一是没有安全更新任何新披露的漏洞都不会有补丁所以这个实例绝对不要暴露在公网内网用也要限制访问来源。二是新版客户端工具兼容性会越来越差SSMS 19 之后可能就不再支持连 2008 R2 了趁现在还能用把常用的管理脚本都存下来。三是备份格式的兼容性2008 R2 的备份在更高版本上恢复没问题但反过来不行所以如果将来要升级规划好迁移路径。我自己的做法是把 2008 R2 实例当成一个只读的历史数据容器需要查老数据的时候开虚拟机连一下平时关着。这样既满足了业务需求又把风险和资源占用降到最低。如果你也是类似场景这个思路应该能帮你省不少事。
返回列表