ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

32位Win7安装SQL Server 2012:选包、配置与验证

32位Win7安装SQL Server 2012:选包、配置与验证

简介:SQL Server 2012 安装图解教程以单份PDF形式提供,共1个文件、约786KB,面向初次接触微软数据库的开发者与运维新手,也适合在低配置电脑上搭建本地学习环境的读者。内容以Windows 7 SP1 32位、赛扬双核T3500、2.93GB内存的实机为背景,先说明软硬件参数要求与32位系统应选的三个安装包,再沿安装中心界面推进:系统配置检查器预检、升级与全新独立安装的区别、产品密钥与许可条款、功能角色勾选、实例命名与磁盘空间评估、服务器配置与身份验证模式,直至数据库引擎、Analysis Services与分布式重播控制器的配置。逐步截图便于读者核对默认选项是否与处理器类型、安装介质目录相符,提前规避规则检查中的警告。目前已有2248人学习。

1. SQL Server 2012 装之前:32 位 Win7 上那三个包,别下错

不少人搜 sql2012 安装教程,翻到的都是一路“下一步”的截图,真到自己动手,第一步就卡住:下载列表几十行文件,到底该拿哪几个。我最早在一台 Windows 7 SP1、32 位、2.93GB 内存的老机器上装 SQL Server 2012,本想让安装更快些,就下了个 x64 的包,自解压跑完,setup 一启动就提示平台不匹配,白等二十分钟。32 位系统只认 CHSx86 开头的那三个文件,少一个都解压不全,后面所有步骤都是白费。SQL Server 2012 是不少老业务系统的底座,装一次就要用好几年,装歪了,后面连接串、端口、身份验证全是麻烦。这套流程适合还在维护 Win7 老机器、要在一台低配机上跑起数据库引擎的人,也适合第一次接触 SQL Server 的开发者照着走一遍。

2. 安装包与前置环境:三个文件、四项检查

2.1 三个安装包的分工,以及为什么必须放在同一个目录

SQL Server 2012 的 32 位安装介质被拆成了三个文件,名字都以CHSx86SQLFULL_x86_CHS开头:

  • CHSx86SQLFULL_x86_CHS_Intall.exe:自解压外壳,双击它才会动起来
  • CHSx86SQLFULL_x86_CHS_Core.box:核心数据包,体积最大的那个
  • CHSx86SQLFULL_x86_CHS_Lang.box:语言包,中文界面靠它

文件名里那个Intall少了个字母 l,不是下载损坏,官方介质就是这么拼的,我第一次见还重下了两遍。三个文件缺一个,解压出来的SQLFULL_x86_CHS目录就是不完整的,setup 跑到一半会报“安装程序找不到所需的文件”。

:: 存放路径别带中文、别带空格,老安装程序对这两样都很敏感 md D:\sql2012_x86 :: 三个文件拷进去之后核对,正常输出应该是 3 行 dir /b D:\sql2012_x86

dir /b只列文件名不带详情,图的就是一眼数清行数。看到三行才算齐,缺了就别急着双击。

解压目标目录我一般固定成D:\sql2012_x86\SQLFULL_x86_CHS,不让它自己往临时目录扔。临时目录被清理工具扫掉的概率不低,中途失败想重来,就得从头再解压一遍,白白多等十几分钟。解压完成后进去确认SETUP.EXE在根目录,后面所有安装动作都从这个文件发起。

2.2 系统配置检查器:让安装程序先自己挑毛病

“SQL Server 安装中心”打开后,左侧“计划”里有一项“系统配置检查器”。这一步很多人直接跳过,我建议每次都跑,因为它会在真正安装之前,把阻止安装的条件列出来,比装到一半回滚省事得多。

它检查的东西大致是这几类:操作系统版本、.NET Framework 运行库、WMI 服务、性能计数器注册表、挂起的重启动操作、Windows 防火墙状态。其中“挂起的重启动”是最常见的一项;只要机器最近装过补丁没重启,它就会亮红。这种情况不要硬跳,重启一次再跑。

用命令行先自查一遍更快:

:: 查有没有挂起的文件重命名操作,有值就说明系统等着重启 reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations :: 查 .NET Framework 3.5 是否装了 SP1(SQL Server 2012 的部分组件依赖它) reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /v SP

第一条命令如果返回“错误: 系统找不到指定的注册表项或值”,说明没有挂起操作,可以放心往下走;如果返回了值,重启机器再继续。第二条命令里SP的值应该是 1,Install的值应该是 1。

注意:Windows 7 上没有Get-WindowsOptionalFeature这个命令,那是 Windows 8 及以后才有的。在 Win7 上判断 .NET 3.5 只能读注册表或者看“打开或关闭 Windows 功能”,别照着新系统的教程在 Win7 上敲,会一直报命令不存在。

2.3 硬件和系统版本对照:2.93GB 内存到底够不够

官方给的门槛并不高,但“能装”和“能跑”是两回事。把这几项列成一张表,装之前对着自己的机器核一遍:

项目最低要求建议配置32 位 Win7 老机器实况
操作系统Win7 / Win2008 R2 / Win2008 SP2 / Vista SP2Win7 SP1 及以上Win7 SP1 32 位,达标
处理器32 位 1GHz 或同等性能兼容处理器2GHz 及以上赛扬双核 T3500 2.1GHz,勉强达标
内存1GB2GB 及以上2.93GB,够跑引擎,不够跑分析服务
硬盘2.2GB 可用空间留 6GB 以上低于 5GB 建议先清盘
32 位/64 位32 位介质只装 32 位系统与系统位数一致只能用 CHSx86 系列包

表里最需要说清的是内存那一行。2.93GB 在 32 位系统里已经是能识别到的上限附近,系统本身要占掉七八百兆,留给数据库引擎的不到 2GB。这个量跑一个开发库、几张表、几百条数据完全够用;但要是再把 Analysis Services 勾上,光启动就能把内存占满,机器会卡得像死机。32 位机器上我的原则很干脆:只装数据库引擎和客户端工具,其余功能一律不碰。

硬盘空间也得留够。安装程序在“磁盘空间需求”那页会算出所选功能需要多少,但它没算上安装过程中的临时解压和日志,实际占用通常比它显示的多出 1GB 左右。C 盘只剩 2GB 出头的时候硬装,大概率会在“安装配置规则”阶段失败,日志里写着磁盘不足,回头再清盘重来,时间全浪费。

3. 从安装中心到实例配置:向导前几屏怎么填

3.1 产品密钥、许可条款与安装类型的选择

双击D:\sql2012_x86\SQLFULL_x86_CHS\SETUP.EXE,等安装中心窗口出来,选右侧第一项“全新 SQL Server 独立安装或向现有安装添加功能”。这条路径对应的是非集群环境下的全新安装;升级安装是另一个入口,需要旧版本介质,本文的流程不涉及升级。

第一屏是产品密钥。手里是 Evaluation 版的话,这一屏会预填好,直接下一步就行;Evaluation 本质是 180 天试用,到期后数据库引擎会停止启动,这一点在开发机上用没问题,但当生产环境用就得提前换正式授权。许可条款那一屏勾上“我接受许可条款”,下面的“向 Microsoft 发送功能使用情况数据”可以不勾,纯离线环境勾了也没什么用。

再往下一屏会显示将要安装的组件和安装介质根目录。这一屏值得多看一眼:处理器类型是否和你的系统匹配、安装介质根目录是否指向了正确的SQLFULL_x86_CHS。介质根目录不对的话,后面功能选择里的组件会大面积缺失。

3.2 程序支持规则里的警告,哪些能跳过哪些不能

“程序支持规则”这一屏是安装程序在做正式动作前的最后一次全面检查。它可能出现警告而非错误;界面上的提示会建议问题解决之后才继续安装,但系统也允许跳过继续。

我的处理原则很简单,按警告内容分三类:

  • 涉及“挂起的重启动”“.NET Framework 版本不符”“WMI 服务异常”的,不能跳。这些会导致后面功能安装失败,装到 80% 回滚比现在重启一次麻烦十倍。
  • 涉及“Windows 防火墙已启用”的,可以跳。装完再去防火墙里放行 1433 端口就行,安装过程本身不走网络。
  • 涉及“性能计数器注册表损坏”的,看情况。这一项会影响后续用性能监视器排查问题,不影响引擎启动;实在修不好可以先装,装完再执行lodctr /r重建计数器。

跳过警告继续之后,安装程序会重新跑一遍规则检查,界面上会显示通过项和跳过项,确认无误再点下一步。

3.3 功能选择:2.93GB 内存的机器该勾哪几项

“功能选择”这一屏是整篇流程里最需要动脑的地方。界面上可以逐项勾选,也可以点“全选”,但全选在低配 32 位机器上一定会出问题。

功能建议理由
数据库引擎服务必勾SQL Server 的核心,库、表、查询全靠它
SQL Server 复制建议勾体积小,以后要做数据同步不用重装
全文搜索按需要做中文全文检索才勾,会多占几百兆
Analysis Services不勾内存开销大,2.93GB 机器上启动都困难
Reporting Services不勾或选本机模式只做开发库用不上报表服务
客户端工具向后兼容性建议勾老版本客户端连新库时要靠它
管理工具 - 基本 / 完整必勾SSMS 图形管理界面在这里,不勾就没法可视化操作
分布式重播控制器 / 客户端不勾SQL Server 2012 新增,用于负载回放,开发机毫无必要
SQL Server 联机丛书按需离线帮助文档,占空间但省得联网查

功能目录那一栏也要留意。共享功能目录默认在C:\Program Files\Microsoft SQL Server\,实例根目录默认在C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\。32 位系统上这些路径不带(x86)后缀,看到带 x86 的路径反而说明介质或系统位数对不上。

C 盘紧张的话可以改到 D 盘,但共享功能目录一旦装好就很难改,改之前想清楚。目录名里也别出现中文和空格,某些老版本的客户端工具对带空格的安装路径处理得并不好。

3.4 实例配置:默认实例还是命名实例

“实例配置”这一屏决定实例名,而这个选择往后几年都跟着你。

  • 默认实例:实例名留空,服务名就是MSSQLSERVER,客户端连接时只写机器名或 IP 就能通,端口默认 1433。一台机器只能有一个默认实例。
  • 命名实例:比如填DEV2012,服务名变成MSSQL$DEV2012,连接时要写机器名\DEV2012,端口默认走动态端口,得靠 SQL Server Browser 服务来解析。

同一台机器上可以并存多个实例,一台 2.93GB 内存的老机器上装两个实例纯属给自己找麻烦,我一般只装默认实例。实例 ID 那一栏会自动跟着实例名生成,比如MSSQL11.MSSQLSERVER里的MSSQL11就是 SQL Server 2012 的版本标识;这个 ID 会成为安装路径的一部分,装完之后再改基本等于重装。

4. 服务器配置与数据库引擎配置:身份验证模式定生死

4.1 服务账户与排序规则

“服务器配置”这一屏要同时给多个服务指定启动账户,还决定整个实例的排序规则,填错了后面改排序规则要重建数据库。

服务账户这块,SQL Server 2012 支持虚拟账户,NT Service\MSSQLSERVER和NT Service\SQLSERVERAGENT是默认值。我的习惯是保持默认虚拟账户不动,它是系统托管的,不需要密码,权限也只在本机有效,比用 Local System 或某个域账户干净得多。用 Local System 跑数据库引擎,等于给引擎开了全机权限,一旦有注入问题,后果会被放大。

服务建议账户启动类型
SQL Server 数据库引擎NT Service\MSSQLSERVER自动
SQL Server 代理NT Service\SQLSERVERAGENT手动(开发机不用定时任务)
SQL Server BrowserNT AUTHORITY\LOCAL SERVICE手动,用命名实例时再启动
SQL Server 全文筛选器守护程序启动器NT Service\MSSQLFDLauncher手动

排序规则选Chinese_PRC_CI_AS是中文环境的常规做法:CI表示不区分大小写,AS表示区分重音。选错了的典型症状是查“张三”和“张 三”结果不一致,或者中文排序全乱。装完可以这么确认:

-- 查看服务器级排序规则,正常应返回 Chinese_PRC_CI_AS SELECT SERVERPROPERTY('Collation') AS 服务器排序规则;

如果返回的是SQL_Latin1_General_CP1_CI_AS,说明安装时没改,中文数据能存但排序和比较行为会跟预期不同。这种时候要么重建实例,要么在新建库时单独指定COLLATE Chinese_PRC_CI_AS,后者是成本更低的补救方式。

4.2 混合模式与 sa:密码策略和添加管理员

“数据库引擎配置”这一屏是整篇流程的分水岭,身份验证模式一旦选错,装完连不上去,得进单用户模式改注册表才能救回来。

两种模式的区别很直接:

  • Windows 身份验证模式:只认 Windows 账户,登录时用当前系统账号,不需要额外记密码。安全,但换个账号、换台机器就进不去。
  • 混合模式:Windows 账户和 SQL Server 账户都能登,sa是内置的系统管理员。开发机上我基本都选这个,方便用连接串直接连,也方便其它工具用账号密码访问。

选混合模式后必须给sa设密码。SQL Server 2012 会强制执行密码复杂度:长度至少 8 位,且在大写字母、小写字母、数字、符号中至少满足三类。设成123456或sa123会被直接拒绝,界面上提示密码不符合要求,很多人卡在这一屏反复试。

注意:混合模式装完之后sa未必立即可用。如果安装时漏了启用,或者后期被人为禁用,需要用 Windows 身份验证登进去执行ALTER LOGIN sa ENABLE才能恢复。生产环境里sa长期禁用、改用独立的 DBA 账号是更稳妥的做法。

同一屏还要“添加当前用户”或指定 SQL Server 管理员。这一步别嫌烦,至少加两个:当前 Windows 用户,以及一个备用管理员账号。只加一个账号的后果是,那个账号一旦被误删或密码丢失,就只剩单用户模式这一条路。

4.3 Analysis Services、Reporting Services 与分布式重播

如果 3.3 节里没勾这几项,对应的配置页会直接跳过,这是低配机器的正常路径。万一勾了,配置项是这样:

Analysis Services 配置页要指定“添加当前用户”作为服务器管理员,模式选“多维和数据挖掘模式”(表格模式是后来的版本才成熟)。这一项在 2.93GB 内存的机器上装完,服务能起来但一跑查询就疯狂换页,实际不可用。

Reporting Services 配置页有三种:本机模式、SharePoint 集成模式、未配置。选“未配置”最省事,服务装了但不启用,以后要用再在 Reporting Services 配置管理器里补。选本机模式则要求装完后再跑一遍配置工具建报表服务器数据库,多一步骤。

分布式重播控制器和客户端是 SQL Server 2012 才新增的两项,用途是把生产环境的负载抓下来在测试环境回放,做压力验证。这两项填的是控制器端口和安装路径,普通开发机勾它纯属给自己加戏,我一次都没在业务机器上装过。

4.4 安装阶段与收尾

前面配置完成后,会经过“错误报告”“安装配置规则”“准备安装”几屏,最后到“开始安装”页。真正的安装过程在 2.93GB 内存的机器上大约要四十分钟到一小时,期间进度条会在“安装数据库引擎服务”那一格停很久,别以为是卡死就强杀进程,强行终止会留下半装的实例,重装时更麻烦。

“准备安装”那一屏会显示一个ConfigurationFile.ini的路径,这个文件记录了本次安装的全部选项。我习惯把它复制一份留着,以后要在同类机器上批量装,直接带参数跑SETUP.EXE /ConfigurationFile=...就能复现,省得每次重新点一遍向导。

安装日志在C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log下面,按时间戳分目录。真出问题时,Detail.txt比界面上那句“安装失败”有用一百倍,具体哪个组件、哪条规则没过都写在里面。

5. 安装踩坑记录:五个让你重装一遍的现场

5.1 双击 Intall.exe 之后,解压出来的目录里没有 setup.exe

现象:自解压窗口一闪而过,按提示去找SQLFULL_x86_CHS目录,里面只有几个零散文件,SETUP.EXE找不到。

原因:三个安装包没放在同一个目录,或者只下了 exe 没下两个.box。自解压外壳按相对路径找同目录的 box 文件,找不到就只解出一部分,然后静默结束,连报错都不给。

解决:把三个文件重新放回同一目录,注意文件名一个字符都不能改;重新双击 exe,解压时手动指定一个固定路径,别用默认的临时目录。解压完成后核对SETUP.EXE的大小,几百 KB 那个是对的。

5.2 规则检查卡在“挂起的重启动”,重启了还是红

现象:系统配置检查器一直提示有挂起的重启动操作,重启机器后重新打开安装中心,依旧亮红。

原因:某个后台程序(常见的是自动更新服务或某个安装了一半的驱动)在重启后又往PendingFileRenameOperations里写了新值,等于永远清不掉。

解决:先停掉自动更新服务再重启一次;或者在确认没有正在进行的安装后,手工清空那个注册表值。清理前一定先备份该键,改错了会影响系统启动。

:: 备份该项,再删值(值本身是二进制,别用 reg add 硬写) reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" D:\backup_session.reg reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations /f

5.3 32 位机器勾了分析服务,安装到 80% 回滚

现象:功能选择时手一滑点了“全选”,安装跑到数据库引擎之后的组件阶段卡住,最后整包回滚,前面二十分钟全白费。

原因:Analysis Services 和 Reporting Services 在 2.93GB 内存、2.1GHz 双核的机器上启动就吃紧,安装阶段的配置动作会超时;加上 C 盘剩余空间不足 6GB,临时文件写到一半就失败。

解决:卸载掉半装的实例,重启后重新走一遍向导,功能只勾数据库引擎、复制、客户端工具向后兼容、管理工具。已经回滚过的机器,重装前要确认“程序和功能”里没有残留的 SQL Server 条目,有就一并卸掉。

5.4 混合模式设了密码,装完 sa 还是登不上

现象:安装时明确选了混合模式,密码也满足复杂度要求,装完用 SSMS 以 sa 登录,提示“用户 sa 登录失败”。

原因:两种可能。一是安装时“添加当前用户”那步跳过了,Windows 身份验证也进不去;二是密码里带了特殊字符,某些老客户端在连接串里把字符吃掉了。

解决:先用 Windows 身份验证登进去,确认身份验证模式和 sa 状态:

-- 1 = 仅 Windows 身份验证,0 = 混合模式 SELECT SERVERPROPERTY('IsIntegratedSecurityOnly') AS 仅Windows验证; -- 查看 sa 是否被禁用 SELECT name, is_disabled FROM sys.sql_logins WHERE name = 'sa'; -- 需要时启用并重设密码(密码换成你自己的) ALTER LOGIN sa ENABLE; ALTER LOGIN sa WITH PASSWORD = 'Str0ng!Pass2012';

如果IsIntegratedSecurityOnly返回 1,说明根本就是按 Windows 模式装的,改注册表LoginMode为 2 再重启服务也能切,但这是补救手段,不如重装干净。

5.5 装完 SSMS 连不上,报错“找不到服务器或实例”

现象:服务和实例都装好了,SSMS 里输入机器名连接,转几秒后报网络相关错误。

原因:SQL Server Browser 服务没启动,而客户端走的是命名实例或动态端口;或者 Windows 防火墙把 1433 挡了;再或者 TCP/IP 协议在配置管理器里被禁用。

解决:按顺序排查。先在“SQL Server 配置管理器”里看网络配置下的 TCP/IP 是否已启用,改完必须重启 SQL Server 服务才生效;再把 Windows 防火墙的 1433 端口放行;最后确认客户端连的名字写对了,默认实例写机器名,命名实例写机器名\实例名。

:: 看 1433 有没有在监听,有 LISTENING 才算通 netstat -ano | findstr :1433 :: 从服务列表看实例状态 sc query MSSQLSERVER

6. 装完怎么验证:三条命令确认这套环境真的跑起来了

界面显示“安装成功”不等于能用,我见过太多次安装向导报成功、实际引擎起不来的情况。装完按下面三步走一遍,才敢说这套环境装好了。

第一步,看服务和端口。打开服务管理器确认SQL Server (MSSQLSERVER)处于“正在运行”,启动类型是“自动”;然后在命令行里查端口:

:: 默认实例应看到 1433 处于 LISTENING netstat -ano | findstr :1433

第二步,确认版本号和实例名。用 SSMS 连上去之后新开查询窗口执行:

-- 版本号应以 Microsoft SQL Server 2012 - 11.0 开头 SELECT @@VERSION AS 版本; SELECT @@SERVERNAME AS 实例名;

第三步,真正建库建表跑一条查询。这一步才能把权限、排序规则、文件路径全串起来验证:

CREATE DATABASE VerifyDB; GO USE VerifyDB; GO CREATE TABLE t_check (id INT PRIMARY KEY, memo NVARCHAR(50)); INSERT INTO t_check VALUES (1, N'安装验证'); SELECT * FROM t_check WHERE memo = N'安装验证';

三条语句都返回结果、没有报错,说明数据库引擎、磁盘写入、中文排序规则都是正常的。跑完把VerifyDB删掉:

USE master; GO DROP DATABASE VerifyDB;

从那以后我每次给机器装完 SQL Server,不管多急,都强制走一遍这套验证——先看 1433 有没有 LISTENING,再跑@@VERSION确认是 11.x,最后建一张临时表插一行中文再删掉。界面上的“成功”只是安装程序说的,这三条命令才是环境自己开口说话。希望帮到你。

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进