当前位置: 首页 > 科技观察

SQLServer安装后问题处理最佳实践

时间:2023-03-15 00:45:12 科技观察

在任何企业中,SQLServer的安装、配置和维护都是数据库管理员的首要职责。本文介绍成功安装数据库软件后要遵循的一些重要的SQLServer最佳实践。让我们从修补数据库开始。微软会不时地为每个使用年限尚未结束的SQLServer版本发布一些服务包,积累更新和修复以供技术支持。强烈建议在SQLServer安装完成后立即从Microsoft的更新中心页面定期下载并安装最新补丁。作为最佳实践,这些补丁需要在开发环境中进行测试,然后再迁移到生产环境中。大多数修补程序都需要重新启动SQLServer,因此请尽可能在安装期间计划好停机时间。MicrosoftSQLServer2012在安装设置中引入了产品更新功能。此功能发现并显示最新的可用更新以增强SQLServer的安全性和性能。它还内置于SQLServer2014和SQLServer2016的安装设置中。配置tempdb以减少争用当大量使用tempdb的应用程序在临时数据库中分配新页面时,可能会出现锁争用问题。如果发生严重竞争,与tempdb相关的查询可能会在短时间内变得无响应。这些现象表明需要调整SQLServertempdb的大小以提高整体查询性能。您需要为tempdb配置的数据文件的数量取决于分配给SQLServer实例的逻辑处理器的数量。创建数据库维护计划在SQLServer实例上创建用户数据库后,您可以设置数据库维护计划以自动执行任务,例如重建索引以更好地组织数据、压缩数据文件以及备份所有数据库和事务日志文件.这些备份允许您根据数据库恢复计划实现时间点数据库恢复。另外,记得定期备份SQLServer内置的所有系统数据库,tempdb除外(tempdb不能备份)。这包括资源数据库,这是一个用于存储所有系统对象的只读数据库,这使得升级到新版本的SQLServer更加容易。但是,SQLServer无法备份资源数据库本身——您必须手动进行文件或基于磁盘的备份。作为SQLServer安装实践的一部分,定期运行DBCCCHECKDB命令,数据库管理员(DBA)还需要主动检测其环境中的数据库损坏。一种方法是定期对所有用户和系统数据库运行DBCCCHECKDB命令。此命令对数据库执行一致性检查,查找可能导致数据丢失和处理问题的损坏。为了在发生系统故障或其他灾难时最大限度地减少或避免数据丢失,DBA还需要每晚或每周对另一个SQLServer实例执行完整的数据库备份,然后运行??DBCCCHECKDB命令来识别潜在的损坏。此外,没有什么可以替代定期测试完整数据库备份和灾难恢复计划。监控msdsusect_pages表msdb系统数据库中的suspect_pages表也可以帮助识别数据库损坏。它在SQLServer实例中存储可疑页面的标识,以及每个页面的数据库ID。此表中包含的错误是错误的校验和、不完整的页面以及错误消息823和824。因此,最佳做法是创建一个定期运行的SQLServer任务来监视suspect_pages表,并在每次添加新记录时向DBA团队发送电子邮件.允许“执行卷维护任务”让SQLServer在数据库创建和恢复期间以及数据或日志文件增长期间将任何消耗的空间填零。此操作会消耗大量SQLServer资源。这可以通过授予SQLServer数据库引擎服务“执行卷维护任务”权限来避免。当您授予此权限时,SQLServer会跳过归零步骤并立即为数据库分配新添加的空间。这也有助于减少恢复数据库所需的时间。使用专用管理员连接专用管理员连接允许DBA在服务器处于异常状态且无法响应用户连接时进行访问。这有助于DBA运行故障排除查询或诊断功能。可以使用sp_configure系统存储过程在实例级别启用此功能。数据库备份压缩适用于在其实例上启用备份压缩的SQLServerEnterprise和StandardEdition客户。可以使用SQLServerManagementStudio(SSMS)或T-SQL脚本在SQLServer实例级别启用此功能。它还可以用于创建所有数据库的压缩备份,而无需实际指定WITHCOMPRESSION语句。配置最小和最大服务器内存SQLServer最佳实践还包括配置最小和最大内存以分配给每个数据库实例中的SQLServer进程。在其默认设置中,SQLServer根据处理工作量和可用资源动态更改内存分配。但DBA可以手动设置最小和最大内存级别来限制数据库可以访问的内存量。特定实例的潜在最大服务器内存可以通过从SQLServer系统的内存总量中减去操作系统和任何其他实例所需的内存来计算。设置最大并行度使用最大并行度设置来限制用于并行计划执行的处理器的最大数量。该数量的默认值为零,这允许SQLServer将所有可用处理器增加到最大值64。要限制用于单个查询执行的CPU的最大数量,可以通过指定所需的总数来实现。这是一个高级配置更改,可以使用SSMS或sp_configure系统存储过程来完成。