SharePoint Server 2010 服务器场中的 SQL Server 2008 的最佳实践

 

适用于: SharePoint Server 2010

上一次修改主题: 2016-11-30

本文介绍在 Microsoft SharePoint Server 2010 环境中配置和维护 Microsoft SQL Server 2008 的最佳实践。这些实践按其应用顺序进行排序(从安装和配置 SQL Server 2008 到部署 SharePoint Server,再到维护服务器场)。

本文是 SharePoint Server 的一系列最佳实践文章之一。有关此系列文章中的其他文章,请参阅最佳实践 (SharePoint Server 2010)。有关 SharePoint Server 2010 的最佳实践的其他信息和资源,请参阅最佳实践资源中心(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=220280&clcid=0x804)(该链接可能指向英文页面)。

1. 对 SQL Server 2008 使用专用服务器

若要确保获得服务器场操作的最佳性能,建议您在未运行任何其他服务器场角色且未承载任何其他应用程序的数据库的专用服务器上安装 SQL Server 2008。在独立服务器上部署 SharePoint Server 2010 属于例外情况,建议不要对大型生产环境执行此操作。

备注

对数据库使用专用服务器的建议也适用于在其中虚拟化 SQL Server 2008 的任何环境。

2. 在部署 SharePoint Server 2010 之前配置特定的 SQL Server 2008 设置

若要确保一致的行为和性能,请在部署 SharePoint Server 2010 之前配置以下选项和设置。

  • 不要在支持 SharePoint Server 的 SQL Server 上启用自动创建统计信息。

  • 将承载 SharePoint Server 2010 数据库的 SQL Server 实例的最大并行度 (MAXDOP) 设置为 1,以确保每个请求均由一个 SQL Server 进程执行。

    重要

    在 SharePoint Server 环境中,任何其他设置将导致为执行选择一个不够理想的查询计划,这将降低整体性能。

  • 若要使维护更加简单,并在以后需要数据库时更轻松地重新定位数据库,请为服务器场中的每台数据库服务器配置 SQL Server 连接别名。

有关详细信息,请参阅设置 SQL Server 选项

3. 在部署 SharePoint Server 2010 之前强化数据库服务器

建议您在部署 SharePoint Server 2010 之前规划和强化数据库服务器。这包括保护 SharePoint Server 和 SQL Server 的数据库服务器角色。有关详细信息,请参阅:

4. 针对性能和可用性配置数据库服务器

与 Web 服务器和应用程序服务器类似,数据库服务器的配置将影响 SharePoint Server 2010 的运行情况。某些数据库需要与其他数据库归置在一起或与其他数据库分开。有关详细信息,请参阅:

有关使用镜像的高可用性数据库,请参阅数据库镜像最佳实践和性能注意事项(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=185119&clcid=0x804)(该链接可能指向英文页面) 中的最佳实践指南。

5. 设计存储以实现最佳吞吐量和可管理性

建议您将数据库服务器上各磁盘间的数据分隔开并为这些数据设置优先级。理想情况下,应在单独的物理硬盘上放置 tempdb 数据库、内容数据库、使用率数据库、搜索数据库和 SQL Server 2008 事务日志。下面的列表为管理数据和日志并设置其优先级提供了一些最佳实践和建议。有关详细信息,请参阅配置数据库

  • 对于协作或更新密集型网站,请将以下排名用于存储分布:

    1. 最快磁盘上的 tempdb 数据文件和事务日志

    2. 内容数据库事务日志文件

    3. 搜索数据库(搜索管理数据库除外)

    4. 内容数据库数据文件

  • 在主要面向读取的门户网站上,基于事务日志来设置数据和搜索的优先级,如下所示:

    1. 最快磁盘上的 tempdb 数据文件和事务日志

    2. 内容数据库数据文件

    3. 搜索数据库(搜索管理数据库除外)

    4. 内容数据库事务日志文件

  • 测试和用户数据显示,tempdb 的磁盘 I/O 不足会显著抑制服务器场的整体性能。若要避免此问题,请为 tempdb 分配专用磁盘。

  • 为获得最佳性能,请将 tempdb 放在 RAID 10 阵列上。tempdb 数据文件数应与 CPU 内核数相同,而且 tempdb 数据文件应设置为同等大小。

  • 可将数据库数据和事务日志文件分隔到不同的磁盘上。如果由于文件太小而不足以使用整个磁盘或带区,或者您拥有的磁盘空间不足而必须使文件共享磁盘,请将具有不同使用模式的文件放在同一磁盘上,以尽量减少并发访问请求数。

  • 对大量使用的内容数据库使用多个数据文件(每个文件均位于其自己的磁盘上)

  • 若要提高可管理性,请将内容数据库的大小限制为 50 GB

I/O 子系统的配置正确对于实现 SQL Server 系统的最佳性能和操作很重要。有关详细信息,请参阅Storage Top 10 Best Practices

6. 主动管理数据和日志文件增长

建议您考虑使用以下建议,主动管理数据和日志文件增长:

  • 如果可能,请将所有数据文件和日志文件预增大到其预计的最终大小,或在设定时间段定期增大这些文件,例如每月或每半年,或在推出新的存储密集型网站之前(如文件迁移期间)。

  • 建议您将数据库自动增长作为一项保护措施,以确保数据和日志文件不会导致空间不足。请考虑:

    重要

    您必须考虑与使用自动增长关联的性能和操作问题。有关详细信息,请参阅 SQL Server 中的自动增长和自动收缩配置注意事项 (https://go.microsoft.com/fwlink/?linkid=117750&clcid=0x804)

    • 不要依赖自动增长的默认设置,请使用设置 SQL Server 选项中提供的指南。

    • 将自动增长值设置为百分比而非固定的 MB 数。数据库越大,增长的量就越大。

      例如,考虑以下方案:内容逐渐增长(假定以 100MB 的增量增长,而自动增长设置为 10MB)。之后,突然有一个新的文档管理网站需要非常大的数据存储(初始大小可能为 50 GB);我们希望其以 500 MB 的增量而非 10MB 的增量增长。

    • 对于托管生产系统,您必须将自动增长视为偶然出现的意外增长。不要使用自动增长选项来管理日常的数据和日志增长。

  • 将磁盘中的可用空间保持在 25% 这一级别,以便适应增长和高峰使用模式。如果通过将磁盘添加到 RAID 阵列或分配更多存储空间来管理增长,请密切监视磁盘大小以避免空间不足。

7. 持续监视 SQL Server 存储和性能

建议您持续监视 SQL Server 存储和性能,以确保生产数据库服务器充分处理其上的负载。另外,通过持续监视,您可以建立可用于资源规划的基准。

全面了解资源监视;不要将监视限于 SQL Server 特定的资源。跟踪运行 SQL Server 的服务器的以下资源组件非常重要:CPU、内存、缓存/点击率和 I/O 子系统。

数据库服务器的一个或多个组件变慢或超载时,根据当前和预定工作负荷分析适当策略。有关详细信息,请参阅:

8. 使用备份压缩加速备份并减小文件大小

备份压缩可以加速任何 SharePoint 备份,在 SQL Server 2008 Enterprise Edition 或 SQL Server 2008 R2 Standard Edition 中提供。通过在备份脚本中设置压缩选项或在默认情况下通过配置运行 SQL Server 的服务器进行压缩,可以大大减小数据库备份和传送日志的大小。有关详细信息,请参阅备份压缩 (SQL Server) (https://go.microsoft.com/fwlink/?linkid=129381&clcid=0x804) 和数据压缩:策略、容量规划和最佳实践(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=223674&clcid=0x804)(该链接可能指向英文页面)。

感谢

SharePoint Server 2010 内容发布团队非常感谢以下参与编写这篇文章的人员:

  • 高级顾问 Stephen Dillon

  • SQL Server 高级计划经理 Gus Apostal