目的:

随着2014/4/1日SQL Server 2014的发布,SQL Server性能大幅度提升,使得越来越多使用其他数据库的用户和DBA逐步转向MSSQL,在此给出一篇个人Blog用于回答大家对SQL Server部署的疑问以及引导生产DBA进行初期部署(仅个人经验,非Microsoft观点),建议大家在看过以后再对比官方最佳实践和MSDN进行完善

测试环境准备:

软件环境:

操作系统:Windows 2012 Standard Edtion

数据库:SQL Server 2014 Enterprise Edtion X64

硬件环境:

Hyper-V: CPU:4 Logical Core’s; Memory:16GB

P.S. 随着现在硬件高速发展,建议每Core对应4GB或8GB内存会比较理想,数据库是吃内存的大户,别太吝惜这点儿内存,内存不足会导致大量磁盘IO和CPU开销

操作系统安装:

(P.S. 虚拟机中操作系统安装与物理服务器安装类似,如果是物理服务器请先使用对应厂商的引导盘进行驱动安装)

放入系统安装镜像文件,启动服务器开始安装(蓝幽幽的方块图标还是挺漂亮的哈)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择需要安装的语言

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

进入开始准备启动安装向导进行安装设置

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

自己加载无需干预

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择带GUI的标准版进行安装(Windows 2012开始没有企业版了,标准版跟数据中心版唯一的区别在于是否需要搭建私有云环境,所以一般数据库服务器选择标准版即可,稍后介绍Core版Windows Server配置,建议有经验的DBA选择Core版Windows Server)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

接受微软许可(请大家尊重和支持正版软件,谢谢,如果是做实验可以直接在官方网站下载90天评估版即可)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择自定义:仅安装Windows(高级),即便是日后需要升级操作系统也不建议直接在原地进行升级(个人建议),而是重装系统后迁移数据库

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

当前测试环境只有一块256GB磁盘就直接使用了,

如果是生产环境建议:

本地存储做成一个RAID:存储操作系统、虚拟内存文件、数据库软件文件

安装完成系统后外挂至少3个LUN(独立RAID):

LUN1:RAID 10(4块独立磁盘组成):稍后用于存储tempdb

LUN2:RAID 10或RAID 5(建议RAID 10):稍后用于存储数据库数据文件

LUN3:RAID 1 或 RAID 10(2块独立磁盘组成):稍后用于存储数据库日志文件

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

开始安装操作系统,可能会重启多次,不过不需要人为干预,可以先去喝杯咖啡

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

自动重启的过程中操作系统会自己去准备通用硬件驱动,服务器建议还是要安装原厂自己的驱动的

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

安装完成就是这个样子了

首次登录重置Administrator密码,有密码复杂度的,字符数字字母大小写

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

再输入一次密码进入Server,至此Windows 2012安装就结束了

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

配置Windows Server环境

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择本地服务器选项卡(Windows 2012是可以同时管理多台服务器的,这点值得表扬)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

做5件事情(修改计算机名、修改IP、关闭防火墙、打开远程连接、重启服务器)

修改计算机名(注意最好别超过8个字符,否则在NETBIOS中会被截断,如果同网段有多台前8字符相同的服务器可能导致NETBIOS无法正确识别)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

关闭所有防火墙

P.S.数据库服务器应该至于内网的最后端,应该完全禁止任意端口被映射到公网

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

开启远程桌面(当然如果有特殊嗜好喜欢待在机房的兄弟另论,进一次机房感冒一次的我表示严重不喜欢待在机房)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

配置IP地址(找网管分配)

P.S. 建议为数据库服务器分配专属的VLAN便于控制安全边界

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

重启吧,骚年,很不习惯这样的菜单,不知道有没有跟我一样的同学

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

重启后添加角色和功能

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

其实我只想添加功能干嘛搞这么复杂啊… … 开始怀念Windows 2008 R2了,简单明了,快速搞定

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

添加以下功能:

.NET Framework 3.5:SQL Server 安装必须项

Telnet Server:当RDP无法登陆时最后的手段(稍后需要手动启动)

Telnet Client:测试端口的时候用

远程差分压缩:当带宽吃紧的时候,如果有多张网卡可以绑成一张增加最大带宽,如果只有一张那么采用数据差分压缩是非常省带宽的做法

多路径IO:如果服务器上有2张或以上HBA卡,为了增加与存储的吞吐带宽和防止存储网络出现单点故障时需要配置(当前测试环境连1张HBA卡都没有,所以跳过)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

别直接点击下一步进行安装,否则你一定会失望(.NET Framework 安装文件在安装介质中,没有被集成到Windows,哎… … 搞得跟Linux一样还留点儿东西在安装盘里面… … )

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

挂载Windows Server安装镜像指定镜像文件路径

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

现在可以安装了

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

为SQL Server 服务准备Windows 账号,密码永不过期(建议还是要定期去修改一下密码的,生产环境个人比较喜欢直接用随机产生的32位GUID做密码,谁能背下来试试看,哈哈)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

将为SQL Server准备的数据库引擎服务账号加入到允许锁定内存页中,防止外部程序跟SQL服务交换内存导致大量内存碎片

P.S.这也是大家发现SQL Server运行久了,虽然系统还有若干资源可以用但是Windows卡的跟牛一样的原因之一

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

至此Windows基础配置告一段落了,更多配置根据需要再慢慢去改

安装SQL Server 2014

放入SQL Server 2014安装光盘,进入主题

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择安装选项卡,选择全新SQL Server 独立安装(Cluster安装稍后再说)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

输入产品**

当前测试环境我就选择评估版就好(180天试用),生产环境大家可以选择输入产品**

这个功能可了不得,判断你具体使用的是哪个版本(企业版、标准版等)的SQL完全就是直接根据**识别的,同时如果日后需要变更版本也不用重装,直接替换***就可以实现了

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

同意SQL Server的授权

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

环境自检,如果没有问题会自己跳到下一步

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

询问是否通过Windows Update Center联机获取最新Hotfix或其他补丁,这里我们直接不勾选进入下一步

虽然微软软件更新基本上不会出问题,但是稳妥起见个人不建议自动安装数据库补丁,就算有补丁也是DBA手动自己去安装,如果遇到问题可以通过卸载补丁或回滚补丁来恢复先前状态

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

开始自己安装支持文件,无需干预等待即可

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

自动安装完成进入下一步,有个小警告,直接忽略

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

选择SQL Server 功能安装

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

如果不知道以后哪些功能要用就全选安装吧,省事儿,SQL Server就是这里好,不管你用不用只要是数据平台的功能全部都可以直接安装,而且在同一台服务器上就算需要使用也不需要额外付费,赚到了

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

可以使用默认实例,也可以命名实例,这个自己根据需要来,同一台服务器上可以同时运行多个实例

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

填入之前创建的那些服务账号(SQLAnalysis敲错单词了,大家理解就好哈… … )

将SQL代理服务设为自动启动:用于自动运行Job

将SQL Brower服务设为自动启动:别小看这个服务,这东东牛X啊,举例:DAC需要使用,多实例动态端口解析需要使用,分析服务需要使用等等

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

排序规则一般默认即可,它是根据你Windows的区域语言自动选择的,就算你在英文版系统上设置了中国中文规则,在这里依然会是这个

同理如果你在中文版Windows选择了美国英语排序规则则会自动变为拉丁文排序

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

根据业务需要选择仅Windows验证(域或Windows账号均可)或Windows+SQL Server混合验证

同时指定登录Windows的哪些账号可以有SQL Server 管理员权限(集成身份验证)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

安装分析服务,从SQL Server2012开始加入了表格模型用于Power BI,两种分析模型每次只能安装一个,即每个实例名只能定位一个分析服务,这里我就随意选择了传统的多维分析模型

P.S.两个模型应对的业务场景是不一样的,两种模型是互补的关系不是替代,就像现在谈论的关系数据库和非关系数据库一样,只是互补而不能替代某一方

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

报表服务就默认吧

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

这个重播控制器和客户端是用于进行SQL数据库压力测试的,具体的先不谈,后续再单独拿出来讨论

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

直接留空就好,需要的时候再修改配置文件

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

自动自检,并跳到下一步

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

安装概述,如果需要按照这次的方式安装更多SQL Server服务器可以到下列路径保存配置文件,下次直接通过命令行方式进行安装,而不用再一步一步去慢慢点下一步

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

开始安装,剩下的就是等了

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

安装完成,重启服务器,然后开始初始化配置

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

初始化SQL Server 2014

启动SSMS

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

配置内存最大最小值:

最大配置值=总内存 – 2GB,个人习惯先使用80%内存,给以后需要加内存时留点儿采购缓冲时间

最小内存跟最大内存保持一致,在启动SQL Server数据库服务时直接Book住连续内存段

最小查询内存默认1MB,如果存在大量复杂计算的情况建议设置到10MB或100MB,根据实际情况决定,设置过大可能导致每会话分配内存时间过长

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

最大并行度:默认0,会根据Core数才分SQL进行并行计算,

但是如果业务系统是OLTP类型的就建议设置为1,因为大量语句都是简单的单行INSERT、UPDATE、DELETE过多的并行不仅达不到提升性能的目的反而导致性能降低

如果是OLAP数据仓库类型的海量数据处理为主的业务就保持默认即可

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

重启数据库服务应该使用SQL Server配置管理器进行,因为其中包含了若干的启动参数(建议不要直接使用Windows 服务管理器直接对服务进行操作)

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

配置tempdb到前面专属的RAID上,保证最佳的IO性能,使用T-SQL脚本迁移,然后重启服务即可,可以查阅Blog中相关文章

同时将tempdb数据文件从一份增加到8或16个,充分利用多核并行能力,前边提到的并行度是针对于线程纤程而言,与这个关系不大

同时tempdb数据文件给予一个较大初始化值,避免频繁自动扩展

日志文件保持一个就好,并给予一个适当的较大值,避免日志扩展带来的阻塞

DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境)

最后备份Master、Model、MSDB数据库

Master和Model在第一次安装完成后和每次对数据库进行补丁更新和实例级别配置变更的前后进行一次即可

MSDB在加入或变更了Job后进行备份以防不时之需

下一章内容概要:

SQL Server用户数据库初始化配置

希望那个遥远的她一切都好,晚安

不知不觉3点过了,洗洗睡了… … 如果有问题请大家不吝赐教