物理存储建议 (Office SharePoint Server)

您选择的磁盘和阵列(以及数据在这些磁盘和阵列上的排列方式)会显著影响系统性能。如果您不熟悉独立磁盘冗余阵列 (RAID),请参阅以下资源:

本主题主要介绍 SQL Server 2008,但也适用于 Microsoft SQL Server 2005 和 Microsoft SQL Server 2000。

使用适当的磁盘和 RAID 阵列

下面的列表提供了一些用于选择最佳 RAID 级别和硬盘的最佳实践和建议:

  • 更多和更快的磁盘或阵列可提高性能。关键是保持所有磁盘的低延迟和排队。

  • 为获得高可用性和性能(随机读取/写入),请配置 RAID 10 阵列。

  • 在配置 RAID 阵列之前,请咨询您的存储硬件供应商或参阅有关文档。考虑数据库是否会从更快的随机读取响应时间中受益(例如,对于静态 Web 内容,RAID 5 和 RAID 10 可提供类似性能)。另一方面,更快的随机写入响应时间可能更为重要(例如,在交替使用读写操作的协作网站中,RAID 10 更具优势)。

  • 在配置 RAID 阵列时,将文件系统与供应商提供的偏移对齐至关重要。在缺少供应商指导的情况下,请参阅 SQL Server 预部署 I/O 最佳实践(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=105583&clcid=0x804)(该链接可能指向英文页面)。

有关设置 RAID 和 SQL Server I/O 子系统的详细信息,请参阅 SQL Server 最佳实践文章(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=168612&clcid=0x804)(该链接可能指向英文页面)。

在部署新的服务器场之前,建议您使用 SQLIO 磁盘子系统基准工具为 I/O 子系统设置基准。有关详细信息,请参阅 SQLIO 磁盘子系统基准工具(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=105586&clcid=0x804)(该链接可能指向英文页面)。

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

  • 预估数据和日志文件的大小。

  • 不要仅依赖自动增长,而应手动管理数据和日志文件增长。为了安全起见,可以启用自动增长,但应主动管理数据和日志文件增长。

  • 配置自动增长设置,以满足您的部署的需要。

    • 在规划超过推荐大小 (100 GB) 的内容数据库时,请将数据库自动增长值设置为固定的兆字节数,而不是设置为百分比。这样做是为了减少 SQL Server 增加文件大小的频率。增加文件大小是一项涉及用空页填充新空间的阻止操作。

      备注

      在 Windows Server 2003 上运行的 SQL Server 2008 支持即时文件初始化。即时文件初始化可以极大地减少文件增长操作对性能造成的影响。有关详细信息,请参阅数据库文件初始化 (https://go.microsoft.com/fwlink/?linkid=132063&clcid=0x804)。

    • 在规划小于推荐大小 (100 GB) 的内容数据库时,如果数据库是使用 ALTER DATABASE MAXSIZE 属性创建的,请将数据库设置为 100 GB。

    • 如果磁盘空间受到限制或无法调整数据库的大小,则应该将自动增长值配置为固定百分比。例如,如果数据库不足 500 GB,请将自动增长值配置为 10%,如果数据库超过 500 GB,则配置为固定的兆字节数。

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

限制内容数据库大小以提高可管理性

规划数据库大小以提高环境的可管理性和性能。

备注

建议的这些限制措施只适用于运行 SQL Server 2008 并承载 Microsoft Office SharePoint Server 2007 的服务器,并且这些措施并不是 SQL Server 2008 的通用指南。

  • 大多数情况下,为了提高 Office SharePoint Server 2007 的性能,请不要使用大于 100 GB 的内容数据库。如果设计要求使用大于 100 GB 的内容数据库,请遵循此指南:

    • 不要对多个网站集使用大于 100 GB 的数据库。

    • 使用差异备份解决方案(如 SQL Server 2008 或 Microsoft System Center Data Protection Manager 2007),而不是使用内置的备份和恢复工具。

    • 在改为使用依赖 100 GB 内容数据库的解决方案之前,先测试运行 SQL Server 2008 的服务器和 I/O 子系统。

  • 将包含多个网站集的内容数据库的大小限制为大约 100 GB。

在磁盘之间分隔数据并设置数据优先级

最好将 tempdb 数据库、内容数据库和 SQL Server 2008 事务日志放在独立的物理硬盘上。

下面的列表提供了一些用于设置数据优先级的最佳实践和建议。

  • 在更快的磁盘之间设置数据优先级时,请使用下列分级:

    1. Tempdb 数据文件和事务日志

    2. 数据库事务日志文件

    3. 搜索数据库

    4. 数据库数据文件

    在着重面向读取的门户网站中,将数据优先级设置为高于日志优先级。

  • 测试和客户数据显示,tempdb 的磁盘 I/O 不足可能会显著抑制 Office SharePoint Server 2007 服务器场的性能。为避免此问题,请为 tempdb 分配专用磁盘。如果预计存在或监测到高工作负荷(即读取操作或写入操作需要的平均时间超过 20 毫秒),则可能必须通过分隔磁盘上的文件或将磁盘替换为更快的磁盘来消除瓶颈。

  • 为获得最佳性能,请将 tempdb 放在 RAID 10 阵列中。tempdb 数据文件数应与 CPU 内核数相同,而且 tempdb 数据文件应设置为同等大小。为此,将双核处理器算作两个 CPU。将支持超线程的每个处理器算作一个 CPU。有关详细信息,请参阅优化 tempdb 性能 (https://go.microsoft.com/fwlink/?linkid=148537&clcid=0x804)。

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

  • 有关如何配置所有日志和搜索数据库以对您的特定存储解决方案进行写入优化的信息,请咨询您的存储硬件提供商。

  • 为搜索数据库分配专用心轴。

对大型内容数据库和 SSP 搜索数据库使用多个数据文件

若要改进大型内容数据库和 SSP 搜索数据库的性能,请考虑使用多个数据文件。

备注

  • 除内容数据库和 SSP 搜索数据库外,不支持对其他数据库使用多个数据文件。

  • 不支持将 SQL Server 分区用于 SharePoint 产品和技术数据库。只使用简单的数据文件。

对内容数据库使用多个数据文件

请遵循以下建议以便获得最佳性能:

  • 仅在数据库的主文件组中创建文件。

  • 将文件分布到不同的磁盘上。

  • 数据文件的数目应小于或等于 CPU 内核的数目。为此,将双核处理器算作两个 CPU。将支持超线程的每个处理器算作一个 CPU。

  • 创建大小相同的数据文件。

Important 重要说明:

虽然可以使用 SharePoint 产品和技术中内置的备份和恢复工具来备份和恢复您在同一位置覆盖的多个数据文件,但这些工具无法将多个数据文件还原到不同的位置。因此,在对内容数据库使用多个数据文件时,我们强烈建议您使用 SQL Server 备份和恢复工具。有关备份和恢复 Office SharePoint Server 2007 的详细信息,请参阅选择备份和恢复工具 (Office SharePoint Server)

有关创建和管理文件组的详细信息,请参阅物理数据库文件和文件组 (https://go.microsoft.com/fwlink/?linkid=117909&clcid=0x804)。

对 SSP 搜索数据库使用多个数据文件

对于搜索数据库,建议使用文件组隔离主要用于爬网和查询处理的表。应该从主文件组中将承载最受爬网影响的表的文件组移动到一组不同的心轴,以便最大程度减少对 I/O 子系统造成的影响。

下表中列出的数据库表主要与爬网有关。

MSSAnchorChangeLog

MSSCrawlDeletedErrorList

MSSAnchorPendingChangeLog

MSSCrawlDeletedURL

MSSAnchorText

MSSCrawlErrorList

MSSAnchorTransactions

MSSCrawlHostList

MSSCrawlChangedSourceDocs

MSSCrawlQueue

MSSCrawlChangedTargetDocs

MSSCrawlURL

MSSCrawlContent

MSSCrawlURLLog

MSSTranTempTable0

Important 重要说明:

可使用 Transact-SQL 脚本将这些表移动到文件组中。这些脚本是用于移动与爬网相关的表的唯一受支持机制。脚本包含在博客文章 SQL 文件组和搜索 (https://blogs.msdn.com/enterprisesearch/archive/2008/09/16/sql-filegroups-and-search.aspx) 中,该文章发布在 Microsoft 企业级搜索博客上。

请遵循以下建议,以便使搜索数据库达到最佳性能:

  • 将表移动到数据库主文件组之外。

  • 将文件分布到不同的磁盘上。

Important 重要说明:

将表移动到新文件组的过程极其耗费资源,可能需要数小时才能完成,因为它涉及除去并重新创建多个聚集索引。您的数据库在移动过程中或许将会脱机。

已知问题

以下各节说明了对搜索数据库使用文件组的已知问题。

备份和还原

SharePoint 产品和技术中的备份和还原不识别文件组。无法指明应将新文件组还原到何处。还原过程会尝试将爬网文件组放在您进行备份时爬网文件组所在的驱动器上。若要进行还原,爬网文件组和主文件组所在驱动器的驱动器号必须与初始备份驱动器的驱动器号相同。

将来的更新、Service Pack 和修补程序

应用于服务器的每个更新、Service Pack 和修补程序都有可能对移到爬网文件组的索引进行修改,或将新索引添加到其中一个已移动到该文件组的表中。如果发生上述情况之一,索引将被移回主文件组或者将在主文件组中重新创建。

因为存在索引被修改的风险,所以在应用任何更新后,应该运行企业级搜索博客上提供的脚本,以重新进行将表移动到文件组的过程。

至少需要 SQL Server 2005、SQL Server 2008 首选项

用于移动索引的产品团队脚本将使用 SQL Server 2005 中发布的和在 SQL Server 2008 中继续的性能。只有当您正在运行 SQL Server 2005 时才可以进行此优化。

遵循供应商的配置建议

为在配置物理存储阵列时获得最佳性能,请遵循存储硬件供应商提供的硬件配置建议,而不是依赖操作系统的默认值。

如果供应商未提供指导,建议您使用 DiskPart.exe 磁盘配置实用工具来配置 SQL Server 2008 存储。有关详细信息,请参阅预部署 I/O 最佳实践(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=105583&clcid=0x804)(该链接可能指向英文页面)。

下载此书籍

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载内容 (https://go.microsoft.com/fwlink/?linkid=89172&clcid=0x804)。