32位Win7安装SQL Server 2012:介质、实例与sa配置避坑

简介:SQL Server 2012 安装图解教程以单份 PDF 形式呈现,面向初次接触微软数据库、需在 Windows 7 SP1 32 位等环境中完成部署的开发者与运维学习者,帮助其建立安装流程的整体认识,减少环境准备阶段的盲目尝试。压缩包内仅含 1 个 PDF 文件,大小约 786KB,轻量便于离线查阅与打印;内容以截图配合文字说明组织,涉及软硬件参数确认、安装包选择、系统配置检查、安装中心功能入口、许可条款、功能角色勾选、实例命名、服务器配置、数据库引擎身份验证模式及安装完成确认等环节,可用于对照定位常见安装问题。已有 2255 人学习。对需要快速了解 SQL Server 2012 部署全貌的读者而言,这份图解材料可作为入门阶段的流程速查与排错参考。

1. 32 位 Win7 上装 SQL Server 2012:三个安装包、一次系统配置检查,环境账先算清

一台还跑着 Windows 7 SP1 32 位、赛扬双核 T3500、2.93GB 内存的老机器,要装 SQL Server 2012,搜 sql2012 安装教程的人多半就是这个场景:想在本机把库跑起来,跑个课程设计、跑个老系统兼容测试,不想动服务器。反直觉的地方在于,装不上的原因八成不是安装包坏了,而是三件事在向导里被随手点了“下一步”——安装介质没凑成一套、系统配置检查器的警告被跳过、实例名和服务账户的默认值没改。这份图解教程的价值是把向导每一屏该看什么标出来了,但图不会告诉你为什么。下面按我自己的复现顺序拆:介质怎么凑齐、前置检查怎么读、向导哪几屏是决策点、装完怎么验证。适合手上就是这台老机器、或者要在虚拟机里复刻一套同版本环境的人。

2. 安装介质与前置检查:把 Core.box、Install.exe、Lang.box 凑成一套

2.1 三个文件各自是什么,缺一个会卡在哪

32 位 Windows 7 走的是 x86 介质,下载清单里对应的就是三条:CHSx86SQLFULL_x86_CHS_Core.box、CHSx86SQLFULL_x86_CHS_Intall.exe、CHSx86SQLFULL_x86_CHS_Lang.box。很多人看到.box后缀以为是压缩包,先拿解压工具去啃,啃不动就以为文件损坏——其实.box是自解压引导器切出来的数据分卷,只有那个Intall.exe(注意原始文件名里就是双 t,不是拼写错误)才知道怎么把它们拼回去。

三者的分工很明确:Intall.exe是引导壳,负责校验分卷、释放文件、拉起解压后的SETUP.EXE;Core.box是主体,数据库引擎、SSAS、SSRS、客户端工具的安装文件全在里面;Lang.box是语言资源,中文界面、中文帮助文档、中文错误消息靠它。缺Core.box会在解压阶段就报“找不到源文件”;缺Lang.box通常能装下去,但界面回退成英文,后面照着中文图解点会找不到对应菜单。

文件角色缺失后的典型表现
CHSx86SQLFULL_x86_CHS_Intall.exe自解压引导器,唯一可双击的入口无法启动安装,双击 box 无反应
CHSx86SQLFULL_x86_CHS_Core.box主体安装数据解压中途报源文件缺失,或解压出的目录体积明显偏小
CHSx86SQLFULL_x86_CHS_Lang.box中文语言资源可安装,但向导与帮助变英文

放之前先校验一遍,别等到解压报错才回头找。下面这段在目标机上跑,路径换成你实际的存放目录:

# 校验三个安装包是否齐备、是否为零字节的残包 $dir = "D:\SQL2012_x86" $need = @( "CHSx86SQLFULL_x86_CHS_Intall.exe", "CHSx86SQLFULL_x86_CHS_Core.box", "CHSx86SQLFULL_x86_CHS_Lang.box" ) foreach ($f in $need) { $p = Join-Path $dir $f if (Test-Path $p) { $mb = (Get-Item $p).Length / 1MB "{0,-40} {1,10:N1} MB" -f $f, $mb } else { "{0,-40} {1}" -f $f, "缺失" } }

逻辑很直白:逐个拼路径、判存在、按 MB 打印大小。参数上只有$dir需要改,其余别动。判断标准看两件事——Core.box的体积应该是三个里最大的那个量级,如果它只有几百 KB,那就是下载中断的残包,重下比折腾快;Intall.exe通常在几十 MB 级别。三个文件大小都正常,再谈下一步。

解压时把三个文件放在同一个目录,对Intall.exe右键以管理员身份运行。解压目标默认在系统临时目录下,最终会得到一个SQLFULL_x86_CHS文件夹,里面的SETUP.EXE才是真正的安装引导。这里有个血泪经验:解压路径别带中文、别带空格、别放在压缩包虚拟盘符里直接跑,老版本的自解压对长路径和特殊字符的容错很差,路径一深就容易释放不全。想省事,直接解压到D:\SQLFULL_x86_CHS,后面所有操作都从这个目录出发。

2.2 系统配置检查器:警告不是让你点“确定”的

安装中心界面打开后,左侧一列是“计划 / 安装 / 维护 / 工具 / 资源 / 高级 / 选项”。正式装之前,先走“计划”里的系统配置检查器(SCC),它做的事是在安装程序动手之前,把会阻断安装的条件先扫一遍:操作系统版本是否达标、32/64 位是否与介质匹配、WMI 服务是否正常、性能计数器注册表是否一致、是否有挂起的重启、FAT32 分区、以及机器上是否已经存在旧版本实例。

这一步最常命中的是“重新启动挂起”。它的判定来自两个地方:注册表HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下的PendingFileRenameOperations,以及组件安装服务里的RebootPending键。装完 .NET、装完补丁没重启,这两个键就会留着,SCC 直接判红。遇到它别硬跳,先查再重启:

# 两条常见的“挂起重启”判定位,非空即表示有挂起操作 $k1 = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" $k2 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" $pendingFileRename = (Get-ItemProperty -Path $k1 -Name PendingFileRenameOperations -ErrorAction SilentlyContinue).PendingFileRenameOperations "PendingFileRenameOperations: " + ($(if ($pendingFileRename) { "有挂起" } else { "干净" })) "RebootPending : " + ($(if (Test-Path $k2) { "有挂起" } else { "干净" }))

参数说明:-ErrorAction SilentlyContinue是为了在键不存在时不抛红字,只输出“干净”。两个都报干净但仍被 SCC 判红,那就老实重启一次再跑 SCC,比在注册表里手工删键安全得多。另一个高频警告是操作系统版本接近下限——Windows 7 RTM 不带 SP1 是不满足的,必须是 SP1;Vista 必须 SP2;Server 2008 必须 SP2。这条警告不能跳,跳了后面装到一半会因为 API 缺失失败。

SCC 里还有一项容易被无视:性能计数器注册表一致性。它红了不影响安装,但装完 SSMS 里看性能仪表盘会是空的,排查起来更费时间。修法是lodctr /R重建计数器,需要管理员权限,且要跑两次(一次在 32 位上下文,一次在 64 位上下文;纯 32 位系统跑一次即可)。

2.3 前置依赖的顺序和磁盘规划

依赖项这块,Windows 7 自带 .NET Framework 3.5.1 和 PowerShell 2.0,通常不用管;但 SQL Server 2012 的管理工具(SSMS)依赖 .NET Framework 4.0,如果机器上没装,装完引擎你会发现 SSMS 起不来。我一般会按这个顺序来:先在“启用或关闭 Windows 功能”里确认 .NET Framework 3.5.1 是勾上的(这一步需要系统安装介质或联网),再单独装 .NET Framework 4.0,然后跑 SCC,最后才进安装向导。顺序反了,SCC 会反复报重启挂起,白白多耗半小时。

磁盘规划在 32 位老机器上更容易被忽略。官方写的最低 2.2GB 可用空间是数据库引擎的最小占用,实际把数据库引擎、复制、全文、SSAS、SSRS、客户端工具全勾上,安装目录会吃掉好几个 GB,再算上数据文件和日志文件的增长,系统盘只剩十来个 GB 是撑不住的。我的做法是装之前就把目录定死:

用途建议位置说明
程序安装目录系统盘或数据盘均可装完基本不动,占空间但不再增长
数据文件目录非系统盘用户库的 mdf,按库增长
日志文件目录与数据文件不同物理盘最佳,单盘则分目录ldf 增长快,别和数据挤一个目录
tempdb 目录非系统盘,独立目录重启重建,放系统盘会和页面文件抢 IO
备份目录容量最大的盘备份文件往往是数据的 1~2 倍

这台机器只有一块盘的话,至少做到“安装目录 / 数据目录 / tempdb 目录 / 备份目录”四个路径分开,别全塞进默认的C:\Program Files\Microsoft SQL Server。后面在数据库引擎配置那一屏会一次性让你填这四个路径,提前建好空文件夹,到时候直接选,比装完再挪文件省事得多。

3. 从安装中心到实例命名:全新独立安装的向导路径拆解

3.1 前四屏里最容易点错的两个地方

安装中心里选“安装”,右侧第一项是“全新 SQL Server 独立安装或向现有安装添加功能”,这是非集群环境的标准入口。点下去之后依次是产品密钥、许可条款、安装程序支持规则、设置角色。产品密钥那一屏,如果是评估版介质,密钥框里已经预填了 Enterprise Evaluation 的键,直接下一步即可,评估期 180 天,够做兼容测试。许可条款必须勾接受,没什么可说的。

真正容易翻车的是“设置角色”这一屏。它有两个选项:“SQL Server 功能安装”和“仅安装 SQL Server 2012 管理工具”。很多人图快选了第二个,装完发现服务列表里根本没有MSSQLSERVER,然后回头找“为什么装完没有数据库”——这一屏选错,装的就只是 SSMS,不含引擎。要装实例,必须选第一项。

第三屏“安装程序支持规则”和前面跑的 SCC 不是一回事。SCC 是独立检查器,可以反复跑;这一屏是安装程序自己在动手前的规则校验,包含安装程序自身的一致性、产品更新、以及前面那些检查项的复检。规则红了会阻止下一步,但有一类“警告”级别的是允许继续的,比如某些非关键组件缺失。我的建议是:警告也要读完再决定,能修的修,修不了再带着风险往下走,别养成一路点“下一步”的习惯。

3.2 功能选择:勾哪些、不勾哪些

功能选择这一屏是全流程里最需要判断的地方。32 位老机器、内存不到 3GB,勾多了装得慢、跑起来也卡。下面这张表是我在同类机器上的取舍:

功能作用32 位老机建议
Database Engine Services数据库引擎本体,必装勾
SQL Server Replication复制,做发布/订阅才需要不勾(后续可加)
Full-Text and Semantic Extractions全文索引,做中文分词检索才需要按需,默认不勾
Data Quality Services数据质量管理,独立组件不勾
Analysis Services多维/表格模型引擎不做 BI 就不勾
Reporting Services报表服务不出版表就不勾
Data Quality Client / 管理工具-基本SSMS 基础版勾
管理工具-完整含 Profiler、DTA 等视需要,占空间
客户端工具 SDK开发接口、SMO要写代码连库就勾
分布式重播控制器/客户端负载回放测试工具单机学习不勾

勾完注意下方会显示“共享功能目录”和“实例根目录”,这两个路径决定装在哪。共享功能目录是各实例共用的组件(SSMS、驱动等),实例根目录是本实例专属。改路径的时候两个一起改,只改一个会导致后续实例管理混乱。点“全选”是新手最常犯的错,一台 2.93GB 内存的机器把 SSAS 和 SSRS 全拉起来,开机就占掉大半内存,数据库引擎自己去抢剩下的,体验极差。

3.3 实例配置:实例名、实例 ID 与安装路径的绑定关系

功能选完是实例配置。这一屏选“默认实例”还是“命名实例”,直接决定后面的服务名和连接方式。

默认实例一台机器只能有一个,服务名就是MSSQLSERVER,客户端直接写机器名或localhost就能连。命名实例可以有多个,服务名是MSSQL$实例名,连接时要写成主机名\实例名,且必须靠 SQL Server Browser 服务(UDP 1434)来告诉客户端这个实例监听在哪个端口。

实例 ID 这一栏容易被当成随便填的,其实它会成为安装路径的一部分:命名实例的默认路径是C:\Program Files\Microsoft SQL Server\MSSQL11.<实例名>\MSSQL,其中MSSQL11是 2012 的版本代号。所以实例 ID 一旦定下来,路径就定了;后面想改路径只能重装。命名规则上有几条硬约束:不能叫default或mssqlserver,长度有上限(16 个字符),不能包含反斜杠、冒号这类字符,首字符不能是数字或下划线。我一般用全小写、纯字母的短名,比如dev2012,避免大小写和特殊符号带来的连接串歧义。

如果这台机器上已经有一个旧版本实例(比如 2008 R2),别急着覆盖成默认实例,装成命名实例与旧版并存更安全,两套服务互不干扰,测完直接停服务就行。装完在服务列表里能看到MSSQLSERVER(默认)或MSSQL$dev2012(命名),后者才是你新装的。

3.4 服务器配置:服务账户和排序规则,改起来最贵的两项

磁盘空间需求那一屏只是让你确认,真正要动脑的是“服务器配置”。上半部分是服务账户,下半部分是排序规则。

服务账户逐个列出来:SQL Server 代理、数据库引擎、SSAS、SSRS、全文筛选器守护程序启动器、SQL Browser、分布式重播控制器、分布式重播客户端。每个都可以单独指定账户和启动类型。默认给的是虚拟账户NT Service\MSSQLSERVER(命名实例则是NT Service\MSSQL$实例名),这是 2012 推荐的写法,不需要密码、权限最小、不用管密码过期。不建议图省事全改成 LocalSystem,权限过大且不安全;也不建议在这台单机上专门建域账户,没必要。

启动类型上,数据库引擎设为自动,SQL Server 代理按需(要用作业调度就自动,否则手动),SQL Browser 在命名实例场景下必须手动启动或设为自动,否则客户端连不上命名实例。分布式重播那两个如果没勾功能,这一屏根本不会出现。

排序规则是这一屏真正的决策点。它有三个层级:服务器级、数据库级、列级。服务器级排序规则在安装时定,之后要改,代价是重建所有数据库或者重装实例。默认的SQL_Latin1_General_CP1_CI_AS对中文数据是完全可用的——存中文用nvarchar,走 Unicode,跟这个排序规则不冲突。只有当你要按中文拼音、笔画做ORDER BY,或者要对中文姓名做特定的比较规则时,才需要选Chinese_PRC_CI_AS这类。我的判断标准很简单:库里主要是英文/数字主键加中文文本字段,用默认;做中文通讯录、需要按姓氏排序,选 Chinese_PRC。这一项在安装时想清楚,比装完发现排序不对再折腾强得多。

4. 身份验证模式与 sa:数据库引擎配置里的关键决策

4.1 Windows 身份验证与混合模式的真实差别

数据库引擎配置这一屏,最上面是“身份验证模式”,两个单选项:Windows 身份验证模式、混合模式(SQL Server 身份验证和 Windows 身份验证)。默认选的是前者。

差别不只是“能不能用账号密码登录”。Windows 身份验证模式下,SQL Server 只认 Windows 令牌,登录名来自域账户或本机账户,密码策略、锁定策略全部交给操作系统管,客户端连接串里写Integrated Security=SSPI或Trusted_Connection=Yes,不带账号密码。混合模式则额外开放 SQL 登录名,账号密码存在 master 库里,由 SQL Server 自己校验。SQL 登录名方便跨平台客户端、方便在连接串里写死、方便给第三方工具单独开账号,代价是密码要自己管,弱口令没人拦你。

老机器上做本地开发,两种都行。但如果这台机后面要接 Java 应用、接老式 ASP 站点、接只支持账号密码的客户端,那安装时就必须选混合模式——装完再改虽然可以(SSMS 里改服务器属性重启服务即可),但如果你在装的时候只建了 Windows 登录,装完第一件事就是连不上、进不去,得先用本机管理员进单用户模式救,很折腾。

4.2 管理员指定与 sa 的启用

选完模式,下面有个“指定 SQL Server 管理员”的列表。这里要添加至少一个 Windows 账户作为实例的管理员。默认会把当前登录的账户填进去,装完就能用这个账户进 SSMS。如果这台机器是多人共用,把日常开发用的账户也加进去,别只留 Administrator。

sa是内置的 SQL 登录名,系统默认管理员。选混合模式时,安装向导会强制你给 sa 设密码,并且密码必须满足复杂性要求:长度至少 8 位,且包含大写字母、小写字母、数字、符号中的三类。这里最容易踩的坑是:安装时设了一个自认为复杂的密码,装完发现连不上——因为你设的密码里带了;或=这类字符,写进连接串时被解析成了分隔符。我一般只用字母加数字加!或#,避开连接串的元字符。

另一个坑是:混合模式装完,sa 其实还是禁用状态,只是有了密码。要真正能登录,得进 SSMS 用 Windows 身份验证连上,手动启用它:

-- 先确认当前认证模式:1 = 仅 Windows 身份验证,0 = 混合模式 SELECT SERVERPROPERTY('IsIntegratedSecurityOnly') AS windows_auth_only; -- 为 sa 重设一个符合复杂性要求的密码并启用 ALTER LOGIN sa WITH PASSWORD = N'YourStr0ng!Pass', CHECK_POLICY = OFF; ALTER LOGIN sa ENABLE; GO -- 验证 sa 的状态:is_disabled 应为 0 SELECT name, is_disabled, create_date FROM sys.sql_logins WHERE name = 'sa';

逻辑说明:第一句查的是服务器属性,返回 1 说明当前只允许 Windows 认证,那 sa 再怎么启用也登不进去,得先去改模式。ALTER LOGIN ... WITH PASSWORD是重设密码,CHECK_POLICY = OFF是为了绕过本机密码策略——老机器上如果开了组策略强制密码历史,这里不加会报错。ENABLE才是启用登录名,很多人只改了密码没加这句,以为 sa 已经能用了。最后那句查sys.sql_logins是确认动作生效,is_disabled = 0才算完。生产环境当然不该关密码策略,这台本地测试机为了方便可以,但心里要有数。

4.3 SSAS、SSRS 与分布式重播的配置项

如果前面勾了 Analysis Services,这一屏会多出 SSAS 配置。要选服务器模式:多维和数据挖掘、表格。这个选择装完不能改,改要卸掉整个 SSAS 实例重装。不做 BI 就别勾,勾了就选“多维”,兼容老工具更好。下面还要加 SSAS 的管理员,规则和数据库引擎那屏一样。

Reporting Services 配置会给三个选项:仅安装(不配置)、安装并配置为本机模式、安装并配置为 SharePoint 集成模式。单机上选“仅安装”最稳,装完需要报表服务时再跑 Reporting Services 配置管理器去配;选“安装并配置”会在安装阶段就要求你指定报表服务器数据库,多一步而且容易失败。

分布式重播如果勾了控制器或客户端,这一屏会要你填控制器名称。单机没控制器,要么别勾,要么装了先放着,不影响主流程。

这几屏的共同点是:所有“配置”类的选择,只要不是当下就要用,优先选“仅安装”。安装阶段少一个组件去初始化,就少一个失败点。

4.4 数据目录与 tempdb 的落盘

数据库引擎配置这一屏的标签页不止身份验证,最后一个标签页是“数据目录”,四个路径:数据根目录、用户数据库目录、用户数据库日志目录、备份目录、tempdb 目录。前面第 2 章建好的空文件夹,在这里逐个选进去。

tempdb 值得单独说。它每次实例重启都会按模型库重建,所以不存在“迁移数据”的问题,改成新路径重启服务即可。但在 32 位、内存紧张的老机器上,tempdb 的争用会比其他环境更明显,把它放在系统盘之外、和数据文件分开,能少一些 IO 打架。另外 tempdb 的初始大小和文件数装完可以再用 T-SQL 调,不必在安装时纠结。

四项路径填完,点下一步就是“错误报告”(发不发送都行,不影响功能)、安装配置规则、准备安装、开装。原文里说“经过了近一个小时的折磨”,在赛扬双核加机械盘的老机器上这个时间是真的,不是夸张,装的时候别反复点、别切窗口,让它自己跑完。

5. 安装翻车现场排查:五类高频报错的现象、原因与解决

5.1 解压到一半提示找不到源文件

现象:双击Intall.exe后进度条走到某个百分比停住,弹出“无法找到安装源文件”或“指定的文件不存在”,解压出来的SQLFULL_x86_CHS目录体积明显不对。

原因:三个安装包没放在同一个目录,或者其中某个包下载不完整。还有一种情况是:三个文件放在了同一个目录,但目录本身在压缩包的虚拟盘里(比如直接在压缩软件里双击运行),自解压程序拿不到物理路径。

解决:先把三个文件全部拷到一个本地物理目录,用第 2 章那段 PowerShell 逐个看大小,确认Core.box的体积在正常量级;确认无误后对Intall.exe右键“以管理员身份运行”,别直接双击。如果仍然失败,换一个短路径重试,例如D:\s2012\,排除路径长度问题。

5.2 系统配置检查器报“重新启动挂起”,重启后依然报

现象:SCC 或安装向导的规则检查里反复出现“重新启动计算机”,重启了还是红。

原因:挂起标记的来源不止一个。除了PendingFileRenameOperations,还有组件安装服务的RebootPending键,以及某些第三方软件(杀毒、虚拟光驱、旧版运行库)自己在注册表里留的标记。只重启不清标记,或者有程序在开机时又写回标记,就会一直红。

解决:按第 2.2 节的脚本查两个位置,确认哪个是脏的;两个都干净但仍报红,检查最近装过什么软件,临时停掉杀毒再跑一次 SCC。实在绕不过去,可以继续安装,但要有心理准备:安装中途可能需要重启,重启后从“维护”里的“修复”或直接从安装中心重新进入向导续装,向导会识别已完成的阶段。

5.3 装完 SSMS 连不上,提示“找不到或无法访问服务器”

现象:服务列表里能看到MSSQL$dev2012在运行,SSMS 里输入localhost\dev2012连接,报网络相关或实例相关的错误。

原因:命名实例的连接依赖 SQL Server Browser 服务(UDP 1434)来解析实例对应的端口,而这个服务默认是手动且未启动的;另一种原因是 TCP/IP 协议在安装后默认是禁用的,只开了共享内存。

解决:先把 SQL Server Browser 服务启动并设为自动;再打开 SQL Server 配置管理器,展开“SQL Server 网络配置”→“实例名的协议”,把 TCP/IP 启用;然后重启数据库引擎服务。回到 SSMS,服务器名写localhost\dev2012,如果还不行,就在连接选项里显式指定端口。默认实例没这个问题,这也是我倾向在单人机器上用默认实例的原因。

5.4 混合模式装了,sa 登录仍然失败

现象:安装时明明选了混合模式、设了 sa 密码,装完用 sa 登录报“登录失败”。

原因:一是 sa 登录名在安装后处于禁用状态,只设密码不会自动启用;二是密码里含连接串元字符,在客户端里被截断;三是前面说的,实际装成了仅 Windows 身份验证模式。

解决:先用 Windows 身份验证登录,查SERVERPROPERTY('IsIntegratedSecurityOnly'),返回 1 就说明模式错了,去服务器属性里改成混合模式并重启服务;返回 0 就走第 4.2 节那三条 T-SQL,重设密码、启用登录名,再验证is_disabled。密码换成不含;、=、{、}的组合。

5.5 装到一半失败,重装提示实例已存在

现象:第一次安装在中途报错中断,清理不干净就重新跑向导,提示“已存在同名实例”或“实例 ID 已被占用”。

原因:安装失败时注册表里已经写入了实例信息,程序文件目录也留了残骸,但服务没有注册完整。直接重跑向导,它会认为这个实例已经存在。

解决:先看日志定位第一次失败的原因,别急着重装。日志在C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\下,按时间戳分的子目录里,Summary.txt给结论,Detail.txt给细节。确认原因并修复后,从控制面板卸载残留的 SQL Server 组件,删掉实例目录,再重装。如果只是配置阶段失败(引擎已经装好),可以用安装中心的“维护”→“修复”来补,比全卸重装省时间。

5.6 用日志定位,而不是猜

安装程序的日志目录结构值得记一下:110\Setup Bootstrap\Log\<日期时间>\下,Summary.txt是最外层的结论汇总,每个组件的细节在同目录的Detail.txt、Detail_Global.txt以及各功能子目录里。判断失败点时,先在Summary.txt里搜Error或Failed,找到组件名,再去对应子目录看上下文。这个习惯能把“装不上”从玄学变成可查的因果链。

6. 装完的验证:用 T-SQL 和日志把“装成功”验成“能用”

安装向导最后跳出“安装成功”的提示,只代表所有组件都跑完了,不代表这套实例在你这台机器上能正常干活。我有一次就是看到绿色勾就收工,结果第二天发现实例的排序规则不是我要的,所有中文排序全乱,重建库重建了一晚上。从那以后我每次装完都强制走一遍验证,三件事,五分钟。

第一件,看服务和协议。打开服务列表,确认MSSQLSERVER(或MSSQL$实例名)处于运行、启动类型为自动;命名实例还要确认SQLSERVERAGENT和 SQL Server Browser 的状态。命令行一条搞定:

# 一次性看关键服务的状态与启动类型 Get-Service MSSQLSERVER, SQLSERVERAGENT, SQLBrowser -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType

命名实例把第一个名字换成MSSQL$你的实例名。-ErrorAction SilentlyContinue是为了在某个服务不存在时不刷屏,输出里少一项就说明对应功能没装。

第二件,用 T-SQL 把实例的“身份信息”读出来,跟安装时的选择逐项对照:

SELECT @@SERVERNAME AS server_name, -- 实例名,和安装时填的要一致 SERVERPROPERTY('ProductVersion') AS product_version, -- 主版本应为 11.x SERVERPROPERTY('ProductLevel') AS product_level, -- RTM / SP 级别 SERVERPROPERTY('Edition') AS edition, -- 版本,评估版会标 Evaluation SERVERPROPERTY('Collation') AS server_collation, -- 服务器级排序规则 SERVERPROPERTY('IsIntegratedSecurityOnly') AS windows_auth_only; -- 0 表示混合模式 -- tempdb 的落盘位置,确认没落在系统盘 SELECT name, physical_name FROM sys.master_files WHERE database_id = 2;

参数说明:这几项全是只读查询,不改任何东西。重点看三处——server_collation是不是你选的那个、windows_auth_only是不是 0(要混合模式的话)、physical_name里的路径是不是你规划的那块盘。对不上就趁现在库还是空的改,别等有了数据再动。

第三件,确认安装日志里没有隐藏的失败项。Summary.txt里搜Error,有些组件是“失败但未阻断”,向导照样给你打勾,比如某个客户端组件装失败,主引擎是好的。这类问题不查日志永远发现不了,等到用 SSMS 的某个功能时才暴露。

最后补一个习惯:把这次安装的关键参数记在一张纸上贴机器旁边——实例名、排序规则、认证模式、数据目录、sa 密码存放位置。老机器上装完隔三个月再看,没有这张纸,光靠回忆是记不住dev2012还是dev_2012的。这套流程跑熟之后,同样一台机器重装一次二十分钟内能完成主体部分,剩下的就是等它自己跑。希望帮到你。

本文还有配套的精品资源,点击获取