数据库服务器构建和部署检查列表详解
前言
我们可能经常安装和部署数据库服务器,但是可能突然忘记了某个设置,为后来的运维造成隐患。下面是国外大牛整理的的检查列表。
其实也包含了很多我们平时数据库配置的最佳实践。比如tempdb 文件的个数,比如数据库文件,日志文件如何存放,最大内存的设置等等。如果有补充的欢迎留言
正文
1. 机架和电缆服务器
确保每个电源插入不同的电源电路
果可能,请确保网络电缆已插入不同的网络交换机
2.sql server服务和sql server代理服务的使用域帐户。
在sql server 2012安装期间,您将需要知道这些帐户的用户名和密码
让这些帐户使用永不过期的密码
3.检查服务器上的主bios设置
启用超线程和turbo-boost(是一种超频技术,提升最多10%的性能)
电源管理应设置为操作系统控制
禁用内存测试
4.在服务器上安装windows server 2012 r2 standard edition
使用集成raid控制器在raid 1中使用两个内部驱动器
如有可能,请考虑使用ssd
如果使用ssd,则不需要对其进行碎片整理
为c:驱动器创建一个单独的分区
将windows页面文件大小更改为16gb,并防止c盘
将windows电源计划更改为“高性能”
在服务器上运行cpu-z以确认处理器全速运行
将光盘驱动器的驱动器号更改为z:
5.将服务器上的netbios名称更改为所需的服务器永久名称
6.使用windows server 2012 r2自带功能安装.net 3.51
7.在服务器上安装microsoft update
这是windows update的超集
8.在服务器上安装所有microsoft和windows更新
这可能需要几轮才能获得所有必需的更新
9.对c盘进行碎片整理
使用使用计划任务每周自动对c盘碎片整理
不允许将新驱动器自动添加到计划中
10.创建一个具有正确dns和默认网关信息的静态ip地址
11.将服务器加入到相应的windows域
12.在服务器上激活windows
13.在服务器上安装最新版本的dell omsa (这个东西我没用过)
14.下载最新版本的dell server update utility(suu)
将.iso装入suu,并运行suu
这将确保您具有服务器的最新固件和驱动程序
15.使用dell omsa为lun创建raid阵列
创建一个lun,然后转到逻辑磁盘管理器创建/格式化驱动器
ii。按照下面显示的顺序创建阵列和lun
戴尔omsa中的一般perc设置
对raid 10阵列使用智能镜像
ii。没有预读高速缓存
iii。启用回写缓存
iv。应启用缓存策略
v。使用64k分配单元
16.使用windows逻辑磁盘管理器创建逻辑磁盘
使用omsa创建阵列后,打开磁盘管理器
您将看到“初始化磁盘”对话框
确保使用gpt分区样式
17.检查下,保证新的逻辑驱动器在windows资源管理器中都能够看到
18.在安装sql server 2012之前,把所有需要的逻辑驱动器都创建上
19.使用crystaldiskmark测试每个逻辑驱动器的性能
20.使用sqlio测试每个逻辑驱动器的性能
21.在每个驱动器上,创建下面的文件夹
数据驱动器:sqldata
日志驱动器:sqllogs
tempdb驱动器:tempdb
备份驱动器:sqlbackups
22.使用组策略编辑器(gpedit.msc)将这些windows权限授予sql server服务帐户
执行卷维护任务
锁定内存页面
23.安装sql server 2012企业版
确保没有待处理的重新引导,否则sql server 2012将无法安装
仅安装此实例所需的sql server 2012组件
c。使用混合模式认证
将sa密码设置为强密码
ii。将自己添加为sql管理员
iii。添加任何需要成为管理员的其他dba
对于sql server服务帐户使用域账户
使用对应的域账户作为sql server代理帐户
f。将sql server代理服务设置为自动启动
g。将默认目录设置为相应的驱动器号和路径
i.用户数据库目录:p:\ sqldata
ii.用户数据库日志目录:l:\ sqllogs
iii. temp db目录:t:\ tempdb
iv。 temp db日志目录:t:\ tempdb
v。备份目录:n:\ sqlbackups
24.安装sql server 2012最新 service pack
25.安装sql server 2012 最新的累积更新6
累积更新可从此位置获得:
http://support.microsoft.com/kb/2874879/en-us
安装后手动对c:驱动器进行碎片整理
如果您使用的是ssd,则不需要这样做
26.更改sql server 2012实例级属性
a. 启用optimize for ad hoc workloads
这将允许sql server在第一次执行时使用较少的内存来存储临时查询计划
b.设置最大并行度设置为服务器上numa节点中的物理核心数
c.启用默认备份压缩
这将为所有数据库备份默认使用sql server备份压缩
d.在sql server配置管理器中添加跟踪标志3226作为启动选项
这将阻止在sql server错误日志中记录成功的数据库备份消息
e .在sql server配置管理器中添加跟踪标志1118作为启动选项
这将有助于缓解tempdb中的配置争用
f. 在实例上启用数据库邮件
用于sql server代理警报和sql server代理作业失败时邮件通知
g。将max server memory设置为适当的非默认值
值取决于服务器中可用的物理内存量
它还取决于安装的sql server组件
ii。以下是一些示例值:
1.96gb总ram:将最大服务器内存设置为87000
2. 64gb总ram:将最大服务器内存设置为56000
3. 32gb总ram:将最大服务器内存设置为27000
h。在t:\ tempdb目录中额外再创建三个tempdb数据文件。总共4个tempdb文件(不需要一开始就和cpu个数对齐)
所有tempdb数据文件的大小应为4096mb
将自动增长设置为1024mb
ii。 tempdb日志文件应为1024mb
27.确认您可以从域上的其他计算机ping通 sql server计算机
28.使用sql server 2012 configuration manager,确认实例启用了tcp / ip
29.确认您可以使用其他计算机上的ssms远程连接到sql server实例
30.在实例上创建一个sql server操作员
使用dbadmin与电子邮件地址dbadmin@yourcompany.com
31.确认数据库邮件正常运行
右键单击数据库邮件并发送测试消息
32.配置sql server代理邮件以使用数据库邮件
33.为以下错误创建sql server代理警报:
a . yourservername alert - sev 19错误:资源中的致命错误
b. yourservername alert - sev 20错误:当前进程中的致命错误
c。 yourservername alert - sev 21错误:数据库进程中的致命错误
d。 yourservername alert - sev 22错误致命错误:表完整性可疑
e. yourservername alert - sev 23错误:致命错误数据库完整性可疑
f。 yourservername alert - sev 24错误:致命的硬件错误
g。 yourservername alert - sev 25错误:致命错误
h。 yourservername alert - error 825:read-retry required
i。 yourservername警报 - 错误832:常量页面已更改
j.yourservername警报 - 错误855:检测到不可纠正的硬件内存损坏
k。 yourservername警报 - 错误856:sql server已检测到硬件内存损坏,但已恢复该页面
34.这里提供了创建这些sql server代理警报的通用脚本:
确保每个代理警报都有响应来通知dbadmin操作员
35.创建一个名为nightly free system cache的sql server代理作业,运行此命令:
dbcc freesystemcache ('sql plans');
每天晚上在凌晨12:00运行
36.下载最新版本的ola hallengren的sql server维护解决方案脚本:
http://ola.hallengren.com/
连接到实例时打开maintenancesolution.sql脚本
将@backupdirectory变量修改为n:\ sqlbackups
ii。运行脚本创建十一个新的sql server代理作业
iii。对于每个作业,如果作业发生故障,请转到“通知”属性窗口,并将作业通过电子邮件发送给dbadmin组
iv。对于每个作业,创建一个运行时间的计划。
v。这是一个建议的工作时间表:
commandlogcleanup星期日上午12:00
2. databasebackup - system_databases - 完整的每日11:55 pm
3. databasebackup - user_databases - diff daily at 12:00 pm
4. databasebackup - user_databases - 上午12:00时全天
5. databasebackup - user_databases - 每小时记录一次
databaseintegritycheck - system_databases星期六上午7:55
7. databaseintegritycheck - user_databases星期六上午8:00
8. indexoptimize - user_databases星期日下午8:00
9. 文件清理 星期日上午12:00
10.sp_delete_backuphistory星期日上午12:00
11.sp_purge_jobhistory 星期日上午12:00。
总结
对于个人认为比较重要的最佳实践我都用红色的标注了。不过上面的启用超线程和turbo-boost
我觉得要根据客户的实际情况,如果 客户的系统能够用上这些多余的逻辑cpu,那么才应该开启超线程。根据经验通常oltp系统开启超线程是比较有好处的。但对于某些报表查询,可能开启超线程反而会有不良影响。
详细可以参考:https://blogs.msdn.microsoft.com/slavao/2005/11/12/be-aware-to-hyper-or-not-to-hyper/
tempdb文件个数
我们知道增加tempdb数据文件可以减少pagelatch争用 ,按照以前的最佳实践是和cpu内核数对齐。但是现在已经做了优化,不需要一来就设置那么多
mbr and gpt
gpt意为guid分区表。(guid意为全局唯一标识符)。这是一个正逐渐取代mbr的新标准。它和uefi相辅相成——uefi用于取代老旧的bios,而gpt则取代老旧的mbr。之所以叫作“guid分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符.在mbr磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,gpt在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。gpt还为这些信息保存了循环冗余校验码(crc)以保证其完整和正确——如果数据被破坏,gpt会发觉这些破坏,并从磁盘上的其他地方进行恢复。而mbr则对这些问题无能为力——只有在问题出现后,你才会发现计算机无法启动,或者磁盘分区都不翼而飞了.
总之,gpt更先进,更健壮,推荐使用gpt
关于其他选项没什么争议。应该尽量遵守的。
以上就是本文的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅: 、关于数据库连接池druid使用说明 、 等,有什么问题可以随时留言,欢迎各位到本站交流讨论。
上一篇: 画图工具怎么绘制十二生肖鼠简笔画?