资讯详情

资讯详情

单机SMC部署:三套Windows Server与SQL Express组合避坑

简介《单机SMC2.0操作系统和数据库安装指导》面向华为视讯会议系统实施与运维人员解决单机SMC2.0部署前的操作系统、数据库选型与安装升级问题。文档按Windows Server 2012 R2、2016、2019分别搭配SQL Server 2014、2016、2019 Express三套环境展开涵盖旧库升级、数据库管理工具使用并整理不支持系统、9%安装报错、证书导入失败等18类典型故障的排查思路便于读者对照环境完成配置、定位报错。资源包共1个docx约11.66MB目录清晰、可按版本检索已有752人学习适合需要落地单机SMC2.0环境搭建与排错的技术人员参考。1. 单机 SMC 部署到底卡在哪三套系统与数据库的组合账单机版 SMC 的安装从来不是下一步下一步这么简单。它把操作系统、数据库、应用服务压在一台机器上任何一层版本对不上安装程序走到 9% 就停下——这个 9% 几乎是所有现场工程师的血泪记忆。这份指导文档的价值在于它把三条经过验证的组合路线钉死了Windows Server 2012 R2 配 SQL Server 2014 Express SP2、Windows Server 2016 配 SQL Server 2016 Express SP2、Windows Server 2019 配 SQL Server 2019 Express再附一份 18 条的失败速查表和一张版本对应附录。它适合第一次做单机割接的实施人员也适合被导入证书失败连接数据库超时这类报错耗掉半天、想直接翻到答案的老手。下面按定版、装系统、装库、避坑、验收的顺序把这份文档拆开讲透。2. 环境定版三套组合的选型逻辑与装机前清单定版这一步在单机部署里权重最高因为 SMC 的安装程序内部带了一套硬编码的版本判定和系统加固脚本。操作系统大版本、补丁级别、数据库实例名、.NET 版本任何一项偏出白名单安装器不会给你解释只会停在那里。所以正确顺序是先把组合锁死再动手装而不是装完系统发现数据库版本不支持回头重装。2.1 为什么单机版锁死 Express 而不是标准版SMC 单机场景本质上是一台机器承担会议管理、设备接入、数据存储三件事并发量在几十到几百路设备注册这个量级Express 的 10GB 单库上限和 1GB 内存缓冲池限制在这个量级里并不是瓶颈。真正的原因是安装器只认 Express 的实例命名和注册表结构它要自己创建数据库、执行建表和存储过程脚本、写入初始数据标准版和 Express 在服务项、注册表键、默认端口行为上并不完全一致安装器不会去兼容。选型时记住三条边界一是不管选哪个 Windows 版本SQL 都用带 SP 的 Express 版本SP2 在很多现场是硬要求缺了 SP 的 RTM 包在部分补丁环境下会报引擎初始化失败二是数据库语言必须和操作系统语言一致中文系统装英文库安装器执行带中文的脚本时会出乱码甚至语法错误三是别想着先用 SQL Server 2008 Express 凑合再升级文档里专门留了 2008 SP2 升级到 2014 SP2 的章节说明这条路径是支持的但升级过程本身有额外风险能全新安装就别走升级。组合操作系统数据库适用场景主要限制AWindows Server 2012 R2 标准版SQL Server 2014 Express SP2存量环境、老硬件、已有 2008 库需升级需手工装 7 个系统补丁 .NET 4.7.2BWindows Server 2016 标准版SQL Server 2016 Express SP2主流新建单机系统自带补丁较全仍需核对 .NET 版本CWindows Server 2019 标准版SQL Server 2019 Express新采购服务器、要求较长生命周期安装器对加固策略更敏感权限要求更严三套组合在功能上没有差别差别全在准备成本。2012 R2 的准备工作最重光补丁就有一串还要单独处理 .NET Framework 3.5 的源文件问题2019 的准备工作最轻但对账户权限和目录访问控制更挑。现场如果是利旧服务器选 A新机且没有特殊要求选 C介于两者之间选 B。2.2 磁盘、账户与网络的前置规划C 盘空间建议不少于 80G这不是拍脑袋的数字。系统本身 20G 上下补丁和 .NET 组件会吃掉几个 GSQL Server Express 的实例文件、SMC 的数据库文件、日志文件、升级时的临时备份加起来会持续增长而 Express 虽然有 10GB 单库上限日志文件不受这个限制。C 盘塞满导致数据库写入失败是运行半年后最典型的翻车场景。账户上有一个特别容易被忽略的坑计算机名不能和当前登录用户名一致。安装器在 9% 阶段会做一次身份校验两者相同时直接抛出错误中断。这个规则听起来莫名其妙但它确实存在文档里单独列了一条。做法很简单装系统时就把计算机名定成有业务含义的名字比如 SMC-NODE01别用 Administrator 之类的默认账户名去凑。网络方面单机部署虽然不需要集群但仍要保证固定 IP、关闭或至少放行本地回环、时间同步到内网源。时间不同步会导致后续证书校验失败而证书导入恰恰是安装流程里最靠后、最容易被卡住的一环。2.3 一份能直接照着勾的装机前清单检查项合格标准不合格的后果计算机名与登录用户名不同纯英文数字与连字符安装到 9% 报错中断系统盘空间可用空间 ≥ 60G数据库文件创建失败系统语言与数据库安装包语言一致脚本执行报语法错误防火墙安装期间关闭规则检查报警告无法继续.NET Framework4.7.2 已安装且注册表可见依赖组件安装失败VC 运行库2017 x86 版本可安装Install VC2017 x86 depend files 失败补丁目录路径全英文无中文和空格补丁静默安装失败账户权限本地管理员UAC 已确认不拦截目录访问被拒这张表里最值得强调是补丁目录。文档明确写了补丁存放路径中请勿包含中文字符原因是部分 .msu 包在解压时对路径编码处理有问题中文路径下会直接闪退而且没有任何提示。我一般会在 D 盘建一个D:\patch目录所有补丁和安装包全放这里路径短、纯英文省掉一类说不清的故障。3. 系统底座界面版本选择、补丁顺序与系统层配置操作系统这一层很多人觉得装完能进桌面就完事了实际上一半的安装失败都埋在这一步。补丁没按顺序打、.NET 版本不对、防火墙没关、计算机名没改后面每一步都会以奇怪的形式报出来。这一章按选版本 → 打补丁 → 配系统三段走。3.1 Server with a GUI 与 Server Core 的选择安装 Windows Server 时会出现两个选项Server Core Installation 和 Server with a GUI。前者没有图形界面全靠命令行和远程管理后者是完整的桌面环境。SMC 单机部署必须选带 GUI 的版本原因不是 SMC 不能在无界面环境跑而是安装器本身是一个图形程序中间有多个需要人工确认的交互页面——选择安装路径、接受许可、选择实例配置、输入 sa 密码这些在 Server Core 下根本没有落点。选择界面里的完整路径是Windows Server 20xx Standard (Server with a GUI)别选成 Datacenter也别选 Core。安装类型选自定义仅安装 Windows不要选升级。分区环节有个细节如果磁盘上已有旧分区全部删除再重建不要在原分区上直接装残留的引导分区会导致系统装完后启动项混乱。格式化所有分区后再点下一步整个安装过程大约 90 分钟中间会自动重启多次属于正常现象不要手动断电。装完第一件事是设管理员密码第二件事是配 IP、改计算机名、关防火墙、开远程。这四件事的顺序有讲究先改计算机名再配其他因为改完名字要重启重启后远程连接的地址和凭据都会变先配远程再改名会白折腾一次。防火墙在安装 SMC 期间必须关闭不是放行端口的问题是安装器的规则检查页面会读防火墙状态读到启用就标记为警告而那个页面的下一步在警告状态下是灰的只能关掉防火墙再点重新运行。3.2 补丁顺序与 .NET Framework 4.7.2 的落地方式2012 R2 这套组合的补丁最多而且必须按顺序装。文档给出的顺序是先装 KB2919442再装 KB2919355 那一组KB2919355、KB2932046、KB2959977、KB2937592、KB2938439、KB2934018最后装 .NET Framework 4.7.2 的离线包 NDP472-KB4054530。这个顺序不能乱KB2919442 是 KB2919355 的前置缺了它 KB2919355 会直接报此更新不适用于你的计算机。批量安装可以用一段简单的批处理避免一个个双击echo off set PATCH_DIRD:\patch for %%f in (KB2919442-x64.msu KB2919355-x64.msu KB2932046-x64.msu KB2959977-x64.msu KB2937592-x64.msu KB2938439-x64.msu KB2934018-x64.msu) do ( echo Installing %%f ... wusa.exe %PATCH_DIR%\%%f /quiet /norestart echo ExitCode%ERRORLEVEL% ) echo All patches submitted, reboot required.这段脚本用wusa.exe走静默安装/quiet抑制界面/norestart阻止每次装完自动重启把所有补丁一次性提交完再统一重启比装一个重启一次省一半时间。%ERRORLEVEL%那行是给自己看的返回 0 是成功返回 2359302 表示该补丁已安装返回 2149842967 表示不适用于当前系统后两种都可以跳过继续。装完所有补丁再重启重启后再装 .NET 4.7.2。提示补丁安装时提示此更新不适用于你的计算机或已在计算机上安装按文档的说法视为已安装直接装下一个不要反复重试重试也不会成功。.NET Framework 4.7.2 的离线包是必须的因为 SMC 安装包里不一定携带。文档里专门有一条 FAQ 讲安装包中未携带 .NET Framework 4.7.2 导致安装报错。判断方法很直接装之前打开注册表HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full看 Release 值528040 及以上就是 4.8461808 是 4.7.2。没有这个键或值偏小就先装离线包别指望安装器自己搞定。另外还有一个 .NET 3.5 的坑。SQL Server 2014 Express 的部分组件依赖 .NET 3.5而 Windows Server 2012 R2 默认不装这个特性走添加角色和功能时会报 0x800F0906因为系统找不到源文件。解决办法是把操作系统安装镜像挂载到本机然后在添加功能时指定备用源路径指向镜像里的sources\sxs目录。这一步做完再回头看安装器的规则检查就能通过。3.3 系统层配置时间、区域与本地安全策略系统装完、补丁打完还有几项配置要在装数据库之前做完。时间同步排第一域环境直接同步域控工作组环境指向内网 NTP 源。时间偏差超过 5 分钟后面导入证书时会报证书链验证失败而那个报错完全不会提示是时间问题只会说导入证书失败够你查半天。区域和语言设置要和数据库安装包语言对齐。中文系统就装中文版 SQL Server Express别装英文版然后指望通过 collation 参数修正安装器建库时用的排序规则来自系统默认中途改会留下不一致的排序规则后期做字符串比较和索引会有隐性性能问题。本地安全策略里有两条建议在装库之前调整一是密码策略sa 账户的密码强度要满足复杂度安装时设的弱密码会导致 SQL 服务启动失败二是用户权限分配里的拒绝从网络访问这台计算机如果默认把某些账户加进去了SQL 的命名管道连接会被拦。这两条不是必改项但遇到服务起不来和本地能连远程不能连时优先回来看这里。4. 数据库落地Express 安装、混合模式配置与版本升级数据库这层是单机 SMC 的心脏。安装器在 9% 之后的所有动作——建库、执行存储过程、导入初始数据、写证书——全部依赖一个能正常连上的 SQL 实例而且要能用 sa 账户走 SQL 身份验证连上。所以数据库装完不是结束要验证到sa 能从本机用 TCP 连上这一步才算合格。4.1 安装向导里必须人工确认的五个页面SQL Server Express 的安装向导大部分页面可以一路默认但有五个页面必须停下来确认。第一个是安装类型选全新 SQL Server 独立安装别选向现有实例添加功能。第二个是许可条款勾选接受。第三个是规则检查页重点看Windows 防火墙这一项状态为警告说明防火墙还开着关掉防火墙后点重新运行直到显示已通过再往下走。这一步不做后面建库时本地连接会被拦。第四个是实例配置保持默认的命名实例SQLEXPRESS不要改。SMC 安装器连库时用的是默认实例名拼出来的连接串改成自定义实例名安装器找不到库。第五个是数据库引擎配置这里必须选混合模式SQL Server 身份验证和 Windows 身份验证并设置 sa 密码。选成仅 Windows 身份验证安装器用 sa 连接时直接被拒报登录超时或登录失败。sa 密码按现场规范设置长度 8 位以上、包含大小写字母数字和符号别用纯数字或常见单词。文档示例里给了一个固定密码实际交付时建议按项目规范改掉改完记在交付文档里别只记在自己脑子里。服务配置页保持默认即可账户用内置的NT Service\MSSQL$SQLEXPRESS启动类型自动。装完后到服务列表确认SQL Server (SQLEXPRESS)和SQL Server Browser两个服务都是运行状态后者负责命名实例的端口解析停掉它远程连接会失败。4.2 用命令行做静默安装与端口固化现场机器多、或者需要重复部署时图形向导的效率太低。SQL Server Express 支持命令行静默安装参数写全了可以做到无人值守SQLEXPR_x64_ENU.exe /QS /ACTIONInstall ^ /FEATURESSQLEngine ^ /INSTANCENAMESQLEXPRESS ^ /SQLSYSADMINACCOUNTSBUILTIN\Administrators ^ /SECURITYMODESQL ^ /SAPWDYourStr0ng!Pass ^ /TCPENABLED1 ^ /NPENABLED0 ^ /SQLCOLLATIONChinese_PRC_CI_AS ^ /IACCEPTSQLSERVERLICENSETERMS参数逐个说明/QS是静默模式不显示任何界面进度写到日志/ACTIONInstall声明执行安装/FEATURESSQLEngine只装数据库引擎装 Express 时不需要复制、全文检索这些组件装了反而多占空间/INSTANCENAME固定为 SQLEXPRESS/SQLSYSADMINACCOUNTS指定 sysadmin 角色成员把本地管理员组加进去方便后续运维/SECURITYMODESQL就是混合模式这个参数和向导里那个单选按钮是同一件事/SAPWD设置 sa 密码/TCPENABLED1启用 TCP 协议默认是禁用的不启用的话只能走共享内存连接/NPENABLED0关掉命名管道减少攻击面/SQLCOLLATION指定排序规则中文环境用Chinese_PRC_CI_AS。装完之后还有一步必须做把 TCP 端口固定成 1433。Express 默认是动态端口每次服务重启端口可能变SMC 安装器如果按固定端口连就会超时。改法有两种图形界面走 SQL Server 配置管理器命令行改注册表更快$inst MSSQL14.SQLEXPRESS # 2014 是 142016 是 13 之前的 MSSQL132019 是 MSSQL15 $tcp HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$inst\MSSQLServer\SuperSocketNetLib\Tcp\IPAll Set-ItemProperty -Path $tcp -Name TcpPort -Value 1433 Set-ItemProperty -Path $tcp -Name TcpDynamicPorts -Value Restart-Service MSSQL$$inst -Force$inst里的前缀要和实际版本对上SQL Server 2014 对应MSSQL12.SQLEXPRESS2016 对应MSSQL13.SQLEXPRESS2019 对应MSSQL15.SQLEXPRESS。写错前缀Set-ItemProperty会报路径不存在。TcpDynamicPorts必须清空只设TcpPort不清动态端口SQL Server 仍然会同时监听动态端口行为不确定。最后重启服务让配置生效。验证端口是否真的生效用sqlcmd直连sqlcmd -S 127.0.0.1,1433 -U sa -P YourStr0ng!Pass -Q SELECT VERSION; SELECT SERVERPROPERTY(IsIntegratedSecurityOnly) AS WindowsOnly;第一条语句返回版本号能返回说明 TCP 通、身份验证通。第二条返回 0 表示混合模式已启用返回 1 表示还是仅 Windows 验证需要回配置管理器改。这两条都过了数据库这层才算能交给 SMC 安装器。4.3 从 SQL Server 2008 Express SP2 升到 2014 Express SP2已经跑着 2008 Express 的存量机器不一定要重装。文档把升级路径单独列了一节说明这条路是走通的但步骤要按顺序来。核心动作是三步先备份再原位升级最后验证兼容级别。备份这一步别省Express 没有维护计划很多人平时不做备份升级失败就真的没后悔药了BACKUP DATABASE [smc_db] TO DISK ND:\bak\smc_db_full.bak WITH COMPRESSION, CHECKSUM, STATS 10; RESTORE VERIFYONLY FROM DISK ND:\bak\smc_db_full.bak WITH CHECKSUM;COMPRESSION对 Express 也有效能显著减小备份体积配合 10GB 库上限很实用CHECKSUM在写备份时计算校验和RESTORE VERIFYONLY再读一遍校验这一步能提前发现磁盘坏块导致的备份损坏比恢复时才发现要强得多。备份验证通过后直接运行 2014 Express SP2 的安装包安装类型选从 SQL Server 2008 升级向导会自己检测已有实例。升级过程里别改实例名、别改排序规则、别改服务账户这三项任一改动都会让升级后的库和 SMC 期望的不一致。升级完成后打开数据库属性看兼容级别2008 是 1002014 应该是 120如果还停在 100说明升级只是换了引擎没升库需要手动改ALTER DATABASE [smc_db] SET COMPATIBILITY_LEVEL 120;改之前确认业务侧没有依赖旧兼容级别行为的查询单机 SMC 场景一般没有这个问题但动作本身要留记录。4.4 连接数据库超时的排查顺序安装过程中连接数据库超时提示登录超时这条在 FAQ 里排得很靠前说明命中率高。排查按从下往上的顺序走别一上来就重装数据库。第一步确认服务在跑Get-Service MSSQL*看 SQL Server (SQLEXPRESS) 和 SQL Server Browser 的状态。Browser 停了命名实例解析不了。第二步确认监听端口netstat -ano | findstr 1433没有输出说明端口没起来或还在用动态端口回 4.2 的注册表步骤。第三步确认防火墙装 SMC 期间防火墙应该关着如果是装完再排查要临时关掉或放行 1433 和 1434UDPBrowser 用。第四步确认身份验证模式SERVERPROPERTY(IsIntegratedSecurityOnly)返回 1 就是模式选错了。第五步才怀疑 sa 密码错用sqlcmd手动连一次报登录失败才是密码问题。这五步走完百分之九十的超时都能定位。剩下那百分之十通常是计算机名解析问题——机器改名后没重启或者 hosts 里有一条旧的映射安装器连的是旧名字。5. 安装升级避坑18 条 FAQ 里最高频的六类现场这份文档最有价值的部分其实是那 18 条 FAQ每一条都是真实撞出来的。把它们按成因归类能归纳出六类高频故障理解了成因遇到变种也能自己判断。5.1 卡在 9% 的三副面孔9% 这个进度点非常特殊它是安装器完成文件释放、开始做系统加固和数据库操作的边界。停在这里的原因至少有三种处理方式完全不同。第一种提示无法在当前操作系统应用系统加固。现象是进度走到 9% 后弹出提示然后回滚。原因是安装包内置的加固脚本对操作系统版本做了白名单匹配系统版本不在名单里就直接拒绝常见于把 2012 R2 的包拿到 2016 上装或者系统是 2012 的非 R2 版本。解决方式是核对附录里的版本对应表换匹配的安装包不是改什么配置文件能绕过去的。第二种提示计算机名和当前登录用户名一致。现象一样是 9% 中断但报错文本不同。原因是加固脚本里有一段身份校验逻辑两者相同时认为环境存在安全风险。解决方式是改计算机名并重启或者换一个用户名不同的管理员账户执行安装。改完名字后注意桌面上的快捷方式和已配置的远程连接都会失效重配一次。第三种没有任何提示进度条就停在那里不动。这种情况多半是加固脚本在等一个外部依赖比如 .NET 组件安装慢、或者证书服务响应超时。先看安装日志目录下最新的日志文件确认最后一条写入是什么操作再对应处理。别急着点取消有些加固步骤本身要跑十几分钟。5.2 依赖组件与安装包缺失Install VC2017 x86 depend files 失败是依赖类报错里最常见的。现象是安装早期就报错退出日志里能搜到 VC 运行库的安装返回码。原因是安装包自带的 VC2017 x86 运行库在这台机器上装不上可能因为已存在更高版本、或者系统的 Windows Installer 服务异常。处理方式是手动去装一遍 VC2017 x86 的官方运行库装成功后再重新跑安装程序安装器检测到已存在就跳过自带的那份。The net service has not been started, please check! 这条是服务没起来。现象是安装中报网络服务未启动。原因可能是系统的某些基础服务被优化工具关掉了比如 Windows 服务主机的相关依赖。处理方式是打开服务管理器把启动类型为手动且处于停止状态的基础服务逐个启动重点看 Remote Procedure Call 相关项然后重试。安装包缺组件的情况有两条一条是缺 .NET Framework 4.7.2一条是缺 SQL Server 2014 Express SP2。现象都是安装中途报错日志里明确写了找不到某个安装包的路径。这两条本质上是同一个问题离线安装包没带全依赖。处理方式不复杂把缺的包下载下来放到安装包期望的目录里或者先手动装好再重跑。但要注意版本要严格匹配缺的是 SP2 就装 SP2装 RTM 版本安装器仍然判定不合格。5.3 证书导入与脚本执行失败安装过程中导入证书失败和升级过程中卡在导入证书环节这两条经常一起出现。证书这步在流程末端前面所有环节都过了卡在这里最让人沮丧。现象是进度条停在证书相关步骤或者弹窗提示导入失败后回滚。原因排查三个方向时间偏差前面提过超过 5 分钟证书链验证就过不去证书文件权限安装器用的是服务账户如果证书文件放在某个用户目录下服务账户读不到端口占用证书导入过程会临时监听某个本地端口做校验被其他程序占了就卡住。核对顺序是先校时再检查证书文件所在目录的 ACL 是否给了 Everyone 读权限最后用netstat看有没有异常占用。升级过程中提示执行脚本 ViewAndStoredprocedure.sql 失败这条的成因通常是数据库状态不对。脚本里创建视图和存储过程时会引用已有的表如果升级前数据库里缺表、或者表结构被手工改过脚本就执行不下去。处理方式是先连上库查一下关键表是否存在再决定是补表还是从备份恢复。别直接跳过这个脚本跳过之后功能是缺的运行期才暴露。5.4 数据库状态与文件状态不一致SMC 数据库状态和文件状态不一致这条报错听起来抽象实际含义是SMC 自己维护了一份数据库元信息记录库名、文件路径、版本SQL Server 里实际的文件和这份元信息对不上。常见触发场景是有人手动分离过数据库、或者把 mdf 文件复制到了别的路径、或者从别的机器拷了整个数据目录过来。现象是 SMC 管理界面显示数据库异常或者安装/升级时报状态不一致。处理分两步先连数据库确认库是否还在SELECT name, state_desc, physical_name FROM sys.master_files f JOIN sys.databases d ON f.database_id d.database_id;看 state_desc 是不是 ONLINE、路径是不是 SMC 期望的路径。库在但路径不对用ALTER DATABASE ... MODIFY FILE改路径后重启服务库不在就附加或从备份恢复然后让 SMC 重新识别。数据库异常是更笼统的一条通常伴随上面的状态不一致出现。第一步永远是查sys.databases的 state_descSUSPECT 就说明文件损坏走DBCC CHECKDB修复或者从备份恢复别在应用层反复重试。5.5 目录访问与 BCP 路径安装过程中提示访问某厂商目录失败现象是安装器在写某个固定路径时被拒。原因是那个路径在Program Files下带了空格和括号某些旧版安装脚本在拼接命令行时没加引号路径被截断后指向一个不存在的目录。处理方式是给当前账户对该目录完全控制权限或者临时把 UAC 调到最低再安装装完调回来。BCP 不是默认路径导致安装失败这条更隐蔽。BCP 是 SQL Server 的批量导入工具安装器会调用它导入初始数据如果环境变量 PATH 里指向的 bcp.exe 是另一个版本比如机器上装过别的 SQL 版本导入就会失败。现象是安装到数据导入阶段报错日志里能看到 bcp 的调用路径。解决办法是检查 PATH把当前 Express 版本的Binn目录放到最前面或者在安装前临时清掉其他 SQL 版本的环境变量。5.6 反复重启与升级弹框SMC 安装过程中不断重启这条现象是安装器反复触发系统重启每次重启后继续装装到某个点又重启循环。原因是安装器在等待某个需要重启才生效的组件通常是 .NET 或 VC 运行库完成注册而注册一直没成功它就认为还需要重启。处理方式是手动把 .NET 和 VC 运行库装好、重启一次再跑 SMC 安装程序让它跳过这些前置步骤。升级过程中弹出输入认证密码框现象是升级流程中途突然要求输入密码输什么都不对。原因是升级脚本在做数据库连接切换时需要凭据而它读的是安装时写入的配置如果之前手工改过 sa 密码配置里还是旧的就会一直弹框。处理方式是先把 sa 密码改回配置里的值完成升级升完再统一改或者手工更新配置文件里的凭据再继续。6. 验收装完之后怎么证明这套环境真的能跑装完不等于能用。我在现场见过太多次安装成功的提示弹出来结果重启一次数据库服务起不来或者能连库但 SMC 服务注册失败。所以最后这一步一定要做完整验收别把问题留到割接当晚。6.1 三层验证清单按系统层、数据库层、应用层各验一遍每层都有能一票否决的检查点。层级验证动作合格标准系统层重启一次后检查事件查看器无系统级错误补丁全部生效系统层systeminfo查看补丁列表清单内补丁全部存在数据库层sqlcmd用 sa 走 TCP 连 1433返回版本号IsIntegratedSecurityOnly 0数据库层查sys.databases状态业务库 state_desc 为 ONLINE数据库层DBCC CHECKDB快速检查无一致性错误应用层重启机器后看服务状态SMC 相关服务全部自动启动应用层登录管理界面能正常登录并看到设备列表数据库层的检查语句可以写成一个脚本一次跑完SELECT VERSION AS ver; SELECT SERVERPROPERTY(IsIntegratedSecurityOnly) AS windows_only; SELECT name, state_desc, recovery_model_desc FROM sys.databases WHERE database_id 4; DBCC CHECKDB (Nsmc_db) WITH NO_INFOMSGS, PHYSICAL_ONLY;PHYSICAL_ONLY只做物理一致性检查速度快适合验收阶段跑完整的逻辑检查放在维护窗口。database_id 4是过滤掉系统库只看业务库。6.2 一个容易被忽略的技巧把验收脚本固化下来这套检查我建议写成一个 PowerShell 脚本放在服务器上每次重启或变更后跑一遍$svc Get-Service MSSQL$SQLEXPRESS,SQLBrowser $svc | Format-Table Name, Status, StartType netstat -ano | Select-String :1433\s sqlcmd -S 127.0.0.1,1433 -U sa -P YourStr0ng!Pass -i D:\ops\verify.sql -b if ($LASTEXITCODE -ne 0) { Write-Host DB CHECK FAILED -ForegroundColor Red }-b参数让 sqlcmd 在遇到错误时返回非零退出码配合$LASTEXITCODE判断脚本就能当巡检用。把服务状态、端口监听、SQL 检查三件事串在一行里跑完比人工一项项点要可靠得多。注意脚本里不要明文写 sa 密码用 Windows 凭据管理器或者受限权限的配置文件存脚本本身给管理员组读权限就够了。这套组合我吃过一次亏——某次割接前夜装完界面提示成功我没重启就下班了。第二天早上机器重启后数据库服务因为端口冲突没起来SMC 连不上库现场等了我四十分钟。从那以后我每次装完 SMC不管多晚都强制走一遍重启 → 服务状态 → sqlcmd 连 1433 → DBCC 检查这四步一步都不跳。希望帮到你。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →