用于处理SQL Server安装后期问题的最佳实践

日期: 2016-07-14 作者:Ashish Kumar Mehta翻译:张亮亮 来源:TechTarget中国 英文

在任何企业,SQL Server的安装,配置和维护都是数据库管理员的主要职责。本文将介绍在成功安装了数据库软件之后所要遵循的一些重要的SQL Server最佳实践。 让我们先从给数据库打补丁作为开始。Microsoft会时不时为SQL Server的各个服务生命尚未终止的版本发布一些服务包,累计更新和修正补丁以进行技术支持。

强烈推荐当SQL Server安装完成后,就马上从Microsoft’s Update Center页面定期下载并安装最新的补丁。作为一项最佳实践,这些补丁需要在开发环境下进行测试然后接着迁移至生产环境。大多数补丁需要重启SQL Server,因此如果可能的话在……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在任何企业,SQL Server的安装,配置和维护都是数据库管理员的主要职责。本文将介绍在成功安装了数据库软件之后所要遵循的一些重要的SQL Server最佳实践。

让我们先从给数据库打补丁作为开始。Microsoft会时不时为SQL Server的各个服务生命尚未终止的版本发布一些服务包,累计更新和修正补丁以进行技术支持。强烈推荐当SQL Server安装完成后,就马上从Microsoft's Update Center页面定期下载并安装最新的补丁。作为一项最佳实践,这些补丁需要在开发环境下进行测试然后接着迁移至生产环境。大多数补丁需要重启SQL Server,因此如果可能的话在安装它们的过程中要对停机时间有所规划。

Microsoft SQL Server 2012在安装设置中引入了Product Update功能。该功能可以发现并显示最新的可用更新来增强SQL Server的安全性和性能。SQL Server 2014和SQL Server 2016的安装设置中也内置了该功能。

配置tempdb来减少竞争

当广泛使用了tempdb的应用程序在临时数据库中分配新页的时候会引起加锁竞争的问题。如果发生的竞争严重,与tempdb相关的查询就可能会在短时间内无响应。这些现象表明需要调整SQL Server tempdb的大小来改善整体查询性能。你所需要为tempdb配置的数据文件的数量取决于分配给SQL Server一个实例的逻辑处理器的数量。

创建数据库维护计划

当你在一个SQL Server实例上创建了用户数据库之后,可以将数据库维护计划设置为自动任务,例如重建索引以更好地组织数据,压缩数据文件以及备份所有数据库和事务日志文件。这些备份可以让你根据你的数据库恢复计划来实现数据库即时点的恢复。另外,记得要定期备份除了tempdb之外(tempdb是无法备份的)内置进SQL Server的所有系统数据库。这包括资源数据库,它是一个用于存储所有系统对象的只读数据库,它可以让升级至新版的SQL Server变得更加简便。但是,SQL Server无法对资源数据库本身进行备份——你必须手动做一个基于文件或是磁盘的备份。

定期运行DBCC CHECKDB命令

作为SQL Server最佳实践的一部分,数据库管理员(DBAs)还需要在他们的环境中主动检测数据库损坏。要做到这点的一个方法就是对所有用户和系统数据库定期运行DBCC CHECKDB命令。该命令会对数据库执行一致性检查来寻找可能会导致数据丢失和处理问题的损坏。

要克服系统故障或其他灾难来最小化或避免数据损失,DBA还需要每夜或每周执行全数据库备份至另一个SQL Server实例——然后运行DBCC CHECKDB命令来识别潜在损坏。此外,对全数据库备份和灾难恢复计划的周期性测试是无可替代的。

对msd susect_pages表进行监控

在msdb系统数据库中的suspect_pages表同样能够帮助识别数据库损坏。它将可疑页的标识存入一个SQL Server实例,以及每页的数据库的ID。该表包括的错误有错误校验和,不完整页,以及错误消息823和824。因此该最佳实践就是要创建一个定期运行的SQL Server任务来监控suspect_pages表并且会在每次添加一个新记录的时候给DBA团队发送邮件。

允许“执行卷维护任务”

在数据库创建和恢复以及数据或日志文件增长期间,SQL Server会用零来填充任何消费空间。该操作会消耗大量SQL Server资源。可以通过给SQL Server Database Engine服务赋予“执行卷维护任务”的特权来避免这种情况。当你赋予了这项特权后,SQL Server就会跳过赋零步骤并立即给数据库分配新添加的空间。这同样有助于减少恢复数据库所要花费的时间。

使用专门的管理员连接

专门的管理员连接可以让DBA在服务器处于非正常状态以及无法响应用户连接的时候进行接入。这有助于DBA运行故障诊断查询或是诊断函数。使用sp_configure系统存储过程可以在实例级别启用该功能。

在实例上启用备份压缩

SQL Server Enterprise和Standard Edition的客户可以使用数据库备份压缩功能。该功能可在SQL Server实例级别通过使用SQL Server Management Studio(SSMS)或T-SQL脚本来启用。它还可以在不实际指定WITH COMPRESSION语句的情况下用于创建所有数据库的压缩备份。

配置最小和最大服务器内存

SQL Server最佳实践还包括配置最小和最大内存来分配给每个数据库实例中的SQL Server进程。在其默认设置中,SQL Server会根据处理工作负载和可用资源来动态改变内存分配。但DBA可以手动设置最小和最大内存级别来限制数据库可访问内存的数量。而对于一个特定实例潜在最大的服务器内存来说,可以这样计算,即减去操作系统和来自你的SQL Server系统中总内存量的任何其他实例所需的内存。

设置最大程度的并行性

利用最大程度的并行性设置来限制为并行计划执行所用的最大处理器数量。其数量的默认值是零,这可以让SQL Server所有可用处理器增至最多64个。要对用于单个查询执行所使用的最大CPU数量进行限制,可以通过指定期望总数来实现。这是一项高级别的配置更改,可以通过使用SSMS或sp_configure系统存储过程来实现。

作者

Ashish Kumar Mehta
Ashish Kumar Mehta

数据库管理器等相关领域资深作者。在数据库管理、性能调优、数据库开发和Microsoft SQL Server等技术培训方面有超过十年的丰富经验。

翻译

张亮亮
张亮亮

TechTarget特邀编辑。毕业于北京邮电大学网络技术研究院。熟悉软件开发测试的各个环节和流程,对操作系统,数据库,计算机网络等有较为深入的理解。现就职于中国电子科技集团公司下属研究所,从事软件研发工作。热衷于英文的学习交流,平时喜欢户外运动,音乐,电影。

相关推荐