【SQLServer】从零到一:SQL Server 2019 核心功能选型与避坑安装指南
1. SQL Server 2019安装前的关键决策
第一次安装SQL Server 2019时,很多人会直接点击"下一步"到底,结果后面发现功能不全或者配置不当。我见过太多开发者在项目中途才发现漏装了复制功能,或者生产环境用了Developer版导致合规问题。这些坑其实在安装前就能避免。
首先得搞清楚版本差异。SQL Server 2019主要分四个版本:
- Developer版:功能与企业版完全一致,但仅限开发和测试使用
- Express版:免费但功能受限,数据库大小不能超过10GB
- Standard版:适合中小型企业,缺少高级分析功能
- Enterprise版:全功能版本,价格也最贵
实测发现,Developer版安装时可以直接使用产品密钥"HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G"(微软官方默认可用)。但要注意,生产环境必须使用正版授权,否则会有法律风险。
硬件准备方面,官方最低要求是6GB内存,但我建议开发环境至少16GB。去年帮客户部署时,他们用8GB内存跑OLTP业务,高峰期频繁出现内存压力告警。后来升级到32GB才稳定,这个教训说明官方最低配置只能保证"能跑",不代表"好用"。
2. 组件选型的实战经验
安装程序的功能选择界面有十几个复选框,新手很容易懵。根据多年部署经验,我总结出几个典型场景的配置方案:
开发测试环境推荐勾选:
- 数据库引擎服务(核心必选)
- SQL Server复制(后期数据同步会用到)
- 全文检索和语义提取(文本搜索必备)
- 机器学习服务和语言扩展(AI项目需要)
- 客户端工具连接(SSMS等管理工具)
生产环境还需要额外增加:
- PolyBase查询服务(大数据集成)
- 数据质量服务(ETL场景)
- Analysis Services(BI分析)
有个容易忽略的点是安装路径。默认会装到C盘,但数据库文件增长很快。我习惯把"实例根目录"改到D盘,像这样:
D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER特别提醒:如果勾选了机器学习服务,安装程序会额外下载约500MB的R/Python运行时。去年在客户现场安装时,他们内网下载速度只有100KB/s,这个步骤花了近两小时。建议提前下载好cab文件备用。
3. 身份验证模式的深度解析
身份验证模式的选择直接影响后续使用体验。SQL Server提供两种模式:
- Windows身份验证:使用操作系统账户登录
- 混合模式:允许SQL账户和Windows账户双认证
虽然官方推荐Windows验证,但实际开发中混合模式更方便。不过这里有个大坑:SQL Server对sa密码的复杂度要求极其严格。上周帮团队安装时,连续5个密码都被拒绝,最后用了"P@ssw0rd!2023"才通过。
如果遇到密码强度问题,可以先用Windows验证安装,完成后通过以下T-SQL启用混合模式:
USE [master] GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2 GO服务账户配置也很关键。测试环境用NT AUTHORITY\SYSTEM没问题,但生产环境建议创建专用域账户。去年有个客户用Local Service账户跑作业,结果无法访问网络存储,后来改用域账户才解决。
4. 必备组件的独立安装
从SQL Server 2019开始,Management Studio(SSMS)不再包含在主安装包中。这个变化坑了不少人,包括我自己——第一次安装完发现找不到管理工具,还以为安装失败了。
SSMS现在需要单独下载,最新版下载地址:
https://aka.ms/ssmsfullsetup安装SSMS时有个隐藏技巧:如果只需要基础功能,可以自定义安装只选:
- SQL Server管理对象
- SQL Server PowerShell模块
- 计划任务组件
这样能节省约1GB空间。但做BI开发的话,一定要勾选"Analysis Services客户端工具"。
另外推荐安装Azure Data Studio,这是微软新一代的跨平台管理工具,对Linux支持特别好。用它连接SQL Server执行查询时,响应速度比SSMS快20%左右。
5. 安装后的关键检查清单
安装完成只是开始,还需要做以下验证:
① 端口检查
Get-NetTCPConnection -LocalPort 1433 -State Listen如果没输出,说明SQL Server没监听默认端口,可能是安装时防火墙阻止了。
② 内存配置
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'max server memory (MB)';默认会占用所有可用内存,建议设置为物理内存的70%-80%。
③ TempDB优化
SELECT name, physical_name, size/128.0 AS [Size in MB] FROM sys.master_files WHERE database_id = DB_ID('tempdb');生产环境应该根据CPU核心数配置多个tempdb文件,我通常用8个文件(每核心1个)。
最后提醒:如果安装失败,不要直接重装。先检查日志文件(默认在安装目录的Setup Bootstrap\Log下),常见问题如.NET Framework版本冲突、权限不足等都有明确错误码。去年处理过一个案例,安装程序报错0x851A001A,最后发现是杀毒软件锁定了注册表项。
