多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

SQL Server 2012安装图解教程:选型、前置检查与避坑

SQL Server 2012安装图解教程:选型、前置检查与避坑 简介这份资源是一份SQL Server 2012安装图解教程PDF主要面向需要在本机部署SQL Server 2012的数据库初学者与技术爱好者。内容围绕32位Windows 7 SP1环境展开详细讲解了安装前的软硬件要求、官方安装包的下载与选择、系统配置检查器使用、安装中心各选项功能以及非集群环境下的全新独立安装全过程。教程特别强调了安装前需检查处理器类型、内存、磁盘空间等参数并在服务器配置、身份验证模式、实例设置等关键环节给出明确指引有助于减少报错、提升安装成功率。资源以单个PDF文件打包体积约786KB方便离线查阅与对照操作。目前已有2241人学习/下载说明该教程对多数安装场景具有实用参考价值适合希望快速完成SQL Server 2012部署的读者参考。1. SQL Server 2012 安装图解教程老引擎还能打装对版本才是第一步还在维护老系统的朋友应该都见过这种需求业务不敢升库、运维文档又只写到 SQL Server 2008被点名装上 SQL Server 2012 时反而找不到一套完整的安装教程。 SQL Server 2012 的安装流程比 2008 友好但比 2016 之后啰嗦最大的坑集中在版本选型、.NET 3.5 前置和安装后的网络协议三块。这篇教程按照实际操作的顺序还原一遍覆盖版本怎么选、ISO 怎么校验、向导每一步该点什么以及装完以后必须处理的四个初始化项最后给一份避坑清单。适合给老项目补库的运维、做兼容性测试的开发还有第一次在 Windows Server 上装数据库的新手。2. 先选版本再下载SQL Server 2012 的版本矩阵与安装介质校验2.1 版本怎么选Express、Standard、Enterprise 和 Developer 的取舍SQL Server 2012 的安装界面不会替你选版本下载哪种 ISO 直接决定你后面能不能睡好觉。这套版本矩阵在 2012 时代很清晰直到今天仍然被大量旧项目使用选型逻辑我给你列一下。版本定位核心限制适合场景Express免费入门版单库最大 10GB内存最大 1GB学习、小工具站、临时库Developer功能同 Enterprise仅授权开发测试不可用于生产本地开发、兼容性测试Standard生产标准版不支持 AlwaysOn 可用性组镜像功能正常中小业务生产库Enterprise生产旗舰版授权贵功能全核心业务、高可用集群选版本的一个血泪经验如果只是给老项目做测试优先选 Developer因为它的功能面和 Enterprise 一样连接数、内存、库大小都不卡唯一限制是不能拿来做正式生产。Express 用来学习没问题但恢复到 10GB 以上的生产备份会直接报错而且 Express 安装后 1433 端口默认不通新手容易在连接阶段翻车。2.2 下载地址与安装介质校验用 PowerShell 核对 SHA256题目标注的“sql2012 下载地址”我这里不做直链引流只讲最可靠的渠道。微软评估中心可以下载 SQL Server 2012 官方试用版 ISO180 天评估MSDN 订阅用户能看到完整的功能版本镜像。下载完不要急着双击先用 PowerShell 算一下哈希值和官网标注比对这一步能过滤掉改包和损坏的镜像。Get-FileHash -Path D:\downloads\SQLServer2012.iso -Algorithm SHA256 | Format-List这条命令会返回文件的 SHA256 字符串。我习惯把它和页面上展示的哈希做逐字符比对重点看前八位和后八位因为很多网盘下载的文件体积对但校验值不对多半是传输截断或者被第三方工具重新打包过。比对通过后右键装载 ISO 即可看到 setup.exe。2.3 安装前系统检查SQL Server 2012 在 Windows Server 2012 上的特殊前置SQL Server 2012 的安装向导自带“安装规则检查”但有个前置依赖它查不出来系统必须启用 .NET Framework 3.5 SP1。Windows Server 2012 和 Windows 8 默认不带 .NET 3.5而且这个东西不能直接用安装包补要在服务器管理器里通过“添加角色和功能”来启用。我先列一遍检查清单操作系统为 64 位Windows 7 SP1 或 Windows Server 2008 R2 SP1 及以上磁盘剩余空间至少 20GB数据目录所在的盘不要放在 C 盘已启用 .NET Framework 3.5Feature 名称是 NET-Framework-Features当前 Windows 账户有本地管理员权限关闭系统自带防火墙或提前放行不然后面远程连不上又要排查半天启用 .NET 3.5 的 PowerShell 命令是Install-WindowsFeature -Name NET-Framework-Core -Source D:\sources\sxs这里-Source指向 Windows Server 安装介质里的sources\sxs目录如果没有指定-Source离线环境经常报“找不到源文件”。这条命令跑完以后重启一次再启动 SQL Server 2012 安装中心安装规则检查基本能全部通过。3. 安装向导逐步图解功能选择、实例配置和数据目录3.1 安装中心入口四个选项里只有一个该点装载 ISO 后弹出的“SQL Server 安装中心”有四个入口全新安装、修复、添加功能、故障转移集群。很多人习惯性点第一个“全新安装”其实在已有实例需要补组件时应该选“向现有安装添加功能”。首次安装没有歧义但界面上的“全新 SQL Server 独立安装或向现有安装添加功能”才是正确入口不要看见“全新”两个字就点进“从安装媒体安装”。进入安装向导后先跑一遍“安装规则”检查项卡住时点“详细信息”系统会直接告诉你缺哪个前置组件。我见过最多的是缺少 .NET 3.5 和 Windows Installer 版本过低前者按 2.3 的做法补后者去微软更新目录拉一个 Windows Installer 4.5 的补丁。3.2 功能、实例和排序规则三个影响后面维护的决定功能选择页是所有后续配置的地基不要全勾。我一般只勾这几项数据库引擎服务必选SQL Server 复制可选用到再装管理工具 - 完整保证 SSMS 可用客户端工具连接本地连接必选Full-Text 和 Analysis Services 这类组件按需勾选不是默认必装。勾多了实例启动时会多出好几个 Windows 服务占内存且不好排查问题。实例配置页要决定的是“默认实例”还是“命名实例”。默认实例的实例名是 MSSQLSERVER连接时直接写服务器 IP 即可命名实例需要写成IP\实例名并且依赖 SQL Server Browser 服务。没有特殊约束就选默认实例省去后面注册浏览器服务的麻烦。排序规则这一项很容易忽略。系统区域是中文的默认值Chinese_PRC_CI_AS一般够用如果这套库以后要跟英文环境的其他系统做交互建议在安装时就改成SQL_Latin1_General_CP1_CI_AS。排序规则一旦确定改起来要重建数据库几乎没有后悔药这一步值得停下来想清楚。3.3 服务账户、数据目录和 TempDB装完才想起来改最麻烦数据库引擎配置页是安装过程中最容易被“下一步”带过去的一页。这里的密码不是 sa 密码而是 Windows 服务运行账户。我的建议是避开“内置账户”下拉里的 Local System改用虚拟账户NT Service\MSSQLSERVER它和内置账号一样免密管理但权限范围更可控。数据目录页至少改四个路径数据根目录、用户数据库目录、用户数据库日志目录、备份目录。C 盘放系统盘库文件和日志丢同一块盘会拖慢 IO备份目录最好单独挂一块盘或者走网络存储。TempDB 在同一个页面这里有个参数经验TempDB 的数据文件个数建议按 CPU 核心数来设但不要超过 8 个如果 CPU 是 4 核就把初始大小设为同样大小、放 4 个数据文件能明显缓解高并发临时表竞争。这一页的“错误报告”和“客户体验改善计划”两个复选框不想外发数据就全不勾。安装结束时弹出的“是否重启计算机”如果当前系统没有待处理的 Windows 更新可以不重启直接使用有更新就重启不然 SQL Server 服务可能起不来。4. 安装完成的初始化SQL Server 2012 不是装完就能用4.1 用 sqlcmd 检查实例状态与版本信息安装向导走完只代表文件到位服务有没有起来、能不能正常接受连接是另一回事。我习惯先看 Windows 服务列表再用 sqlcmd 做一次本机连接验证。net start | findstr /i SQL Server这条命令会过滤出所有名称含“SQL Server”的服务。看到MSSQLSERVER处于已启动状态后用 sqlcmd 做真实连接测试sqlcmd -S 127.0.0.1 -E -Q SELECT VERSION-S 127.0.0.1是本地回环地址-E表示 Windows 身份验证-Q直接执行查询。如果窗体能打印出版本字符串说明实例正常监听如果报“无法打开登录所请求的数据库”或“连接超时”先别改代码回头看服务和协议。4.2 SQL Server 配置管理器TCP/IP 协议与 1433 端口SQL Server 2012 装完网络协议默认状态随版本有细微差别最稳妥的做法是打开“SQL Server 配置管理器”逐项确认。在“SQL Server 网络配置”下找到实例名右侧能看到 Shared Memory、Named Pipes、TCP/IP 三项协议。Shared Memory 只在本地连接用保留启用。Named Pipes 不跨平台一般维持禁用。TCP/IP 必须启用双击进入属性页切到“IP 地址”标签把“IPALL”区域下的 TCP 端口改成 1433。改完以后重启 SQL Server 服务否则协议不生效。这一步改完再执行一次net start | findstr /i SQL Server看服务有没有正常拉起。为什么不建议用默认端口跑生产SQL Server 2012 的默认 1433 端口是扫描器最爱如果这个实例要暴露在非可信网络把端口改成 14333 之类的自定义端口可以少很多无脑攻击。代价是连接字符串里要写,端口号同事每次连库都得多打几个字符自己要权衡。4.3 防火墙、SQL Server Browser 与远程连接的三个放行项远程连接不上数据库八成和防火墙有关。Windows 防火墙默认会拦掉所有入站 TCP 1433 的请求需要加一条入站规则这一步在“高级安全 Windows 防火墙”里操作入站规则 → 新建规则 → 端口协议选 TCP特定本地端口填 1433操作选“允许连接”配置文件三个都勾如果是命名实例光开 1433 不够还要开 UDP 1434 给 SQL Server Browser 服务注册实例名用。Browser 服务的启动类型默认是“手动”第一次使用命名连接时会自动拉起但防火墙不放行 UDP 1434客户端照样找不到实例。这里给一张最小放行表照着配能省很多测试时间协议端口用途TCP1433默认实例数据连接UDP1434命名实例浏览器服务TCP14333可选自定义实例端口配置完以后用另一台机器执行sqlcmd -S 目标IP -U sa -P 密码 -Q SELECT 1做一次真实跨机验证比在服务器本机测试靠谱得多。5. SQL Server 2012 安装避坑记录从报错到重启的五个问题5.1 安装规则检查通不过.NET 3.5 源文件缺失现象安装中心“安装规则”页报“此计算机没有安装 .NET Framework 3.5 SP1安装无法继续”点开详细信息没有任何可操作的下载链接。原因Windows Server 2012 和 Windows 8 默认不启用 .NET 3.5而 SQL Server 2012 的安装向导不会自动帮你装。更麻烦的是在线启用时系统更新源不可达安装会卡在“下载中”。解决把 Windows Server 安装镜像里的sources\sxs目录拷贝到本地用前面给的 PowerShell 命令指定-Source路径完成离线启用。完成后重启一次再进安装中心。要强调的是这个步骤必须在运行 setup.exe 之前做安装进行到一半再补会触发回滚。5.2 报错“以前版本的 Visual Studio 2008 应用程序”导致安装失败现象安装进度条走到“数据库引擎服务”附近时弹出类似“此计算机上安装了以前版本的 Microsoft Visual Studio 2008 应用程序”的提示然后整个安装回滚。原因SQL Server 2012 的安装程序依赖 PowerShell 2.0 和 VS2008 的部分组件如果系统里装了旧版 VS2008 且未打 SP1安装向导会认为存在不兼容的预装软件。这个报错在 Windows 7 时代特别常见Windows Server 2012 上装了 Visual Studio 的机器也踩过。解决先确认 PowerShell 版本Windows Server 2012 的 PowerShell 3.0 没问题重点是把 VS2008 升级到 SP1或者干脆卸载 VS2008 再装 SQL Server。如果不想动 VS用命令行加参数从安装媒体运行setup.exe /ACTIONInstall /FEATURESSQLENGINE,SSMS /Q /IACCEPTSQLSERVERLICENSETERMS静默安装会跳过部分图形界面的预检逻辑但不保证所有场景都能躲过最稳妥还是先处理 VS2008。5.3 sa 登录失败身份验证模式没选对现象安装完成后用 sa 账号连接报“用户 sa 登录失败。原因: 该帐户当前被禁用或不允许登录。”原因安装数据库引擎配置页时选了“Windows 身份验证模式”sa 账户默认被禁用或者选了“混合模式”但 sa 密码是一个弱密码被 2012 的密码策略直接锁住。解决用 Windows 账户登录 SSMS在安全性 → 登录名 → sa 属性的“状态”标签里启用登录名。如果当时选的是 Windows 身份验证模式还要先在服务器属性 → 安全性里改成“SQL Server 和 Windows 身份验证模式”然后重启实例。我后来安装时习惯直接在向导里选“混合模式”并设置强密码省掉这一步的折腾。5.4 远程连接超时协议、浏览器服务、防火墙三位一体现象本机 sqlcmd 连得好好的从应用服务器连却报“在建立到服务器的连接时发生错误TCP 连接超时”。原因三个环节至少有一个没到位——TCP/IP 协议未启用、SQL Server Browser 服务没启动、防火墙没放行 1433/UDP1434。最常见的是只改了实例端口忘了重启 SQL Server 服务使协议生效。解决按 4.2 和 4.3 的顺序排查。先到配置管理器确认 TCP/IP 已启用且 IPALL 端口正确再检查服务状态最后验证防火墙入站规则。还有一个经验云服务器的安全组规则也要放行云端安全组属于第一道防火墙跟 Windows 防火墙谁都不替代谁。5.5 服务启动后自动停止服务账户与密码策略冲突现象安装完成后实例重启MSSQLSERVER 服务状态从“正在启动”跳回“已停止”Windows 事件查看器里有一条来源为 SQLSERVER 的错误关键字多半是“无法启动”。原因服务账户被系统密码策略限制或者安装时选了内置账户 Local System但该账户缺少数据库文件目录的读写权限。另一类原因在域环境比较常遇到域策略要求定期改密码SQL Server 服务账户密码过期后服务无法拉起。解决先把服务账户改成虚拟账户NT Service\MSSQLSERVER它的密码由系统管理不受人工改密周期影响。如果必须用域账户设置“密码永不过期”并在服务属性里重新输一遍密码。数据目录权限也要检查服务账户需要对数据根目录有完全控制权限否则引擎初始化时无法创建数据库文件同样表现为服务起来又停。6. 数据备份与兼容级别SQL Server 2012 接旧库的实用验证SQL Server 2012 安装完成后真正的考验是接旧库。很多人问“SQL Server 2012 的数据库备份 2008 能用吗”——这里要说清楚SQL Server 2008 生成的 .bak 文件可以恢复到 SQL Server 2012数据库会自动处于 100 兼容级别反过来SQL Server 2012 的备份不能恢复进 SQL Server 2008。这是版本恢复规则和安装步骤无关但装完新实例后必须知道。我的验收习惯是装上以后立刻用一份 2008 的备份做恢复测试RESTORE DATABASE [LegacyDB] FROM DISK ND:\Backup\LegacyDB.bak WITH MOVE LegacyDB_Data TO ND:\Data\LegacyDB.mdf, MOVE LegacyDB_Log TO ND:\Data\LegacyDB_log.ldf, REPLACE, STATS 10;WITH MOVE指定数据文件和日志文件的新物理路径REPLACE允许覆盖同名数据库STATS 10每完成 10% 打印一次进度。恢复后查一下兼容级别SELECT name, compatibility_level FROM sys.databases WHERE name LegacyDB;如果返回 100说明数据库跑在 2008 模式可以正常使用想彻底吃 2012 的新功能再执行ALTER DATABASE [LegacyDB] SET COMPATIBILITY_LEVEL 110但改完就不能再恢复回 2008 了。日常备份我习惯写成一段固定脚本放到维护计划里每周轮询BACKUP DATABASE [LegacyDB] TO DISK ND:\Backup\LegacyDB_20250101.bak WITH INIT, NAME NLegacyDB-Full Backup, CHECKSUM;INIT覆盖已有文件CHECKSUM在读写时为备份做校验和验证能提前发现坏页问题。刚装完 SQL Server 2012 的朋友如果懒得折腾维护计划向导把这条语句放进 SQL Server Agent 的作业里效果一样。我自己每次装完都会先恢复一次生产备份再交付哪怕只为了确认磁盘 IO 和权限没问题。希望帮到你。本文还有配套的精品资源点击获取
返回列表