65.9K
CodeProject 正在变化。 阅读更多。
Home

SharePoint 2010 日志数据库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (6投票s)

2010年4月6日

CPOL

4分钟阅读

viewsIcon

97540

直接查询 SharePoint 日志数据库的四个原因

引言

还记得我的帖子“不直接查询 SharePoint 数据库的五个理由”吗?我曾多次告诫您不要直接查询 SharePoint 数据库,并提到了它的缺点和问题。如果您还没有阅读这篇文章,我建议您在继续之前先阅读一下。

我没有自相矛盾!第一篇文章是关于 SharePoint 2007 的,但现在我说的是 SharePoint 的新版本和令人惊叹的 2010 版本。

所以你可能会问“SharePoint 日志数据库到底是什么?” 问得好!

要回答您,请启动 SQL Management Studio,然后展开您的数据库。您会注意到一个新的数据库,名为WSS_Logging

image

SharePoint 2010 通过记录到 WSS_Logging 数据库来跟踪它所做的一切。它聚合了 14 hive 下文本文件中积累的所有原始日志数据,并将其导入到这个很棒的日志数据库中。这是 Microsoft 乐于让开发人员直接读取、查询和构建报告的 唯一 SharePoint 数据库。 您可以随意使用许多有用的视图,我现在将向您展示的是“RequestUsage”视图。

每次用户访问生成页面请求时,都会将一条记录插入到此数据库中的一个分区表中,并且“RequestUsage”视图会很友好地联合所有分区表中的数据,并将其呈现给您,以便在您的自定义解决方案(Web 部件、报告、应用程序页等)中使用。 示例如下

clip_image003

让我们更深入地了解幕后发生的事情以及这些数据的来源。

  1. 导航至 SharePoint 2010 管理中心 > 监控 > 配置使用情况和运行状况数据收集。

    clip_image007

  2. 现在,让我们通过指定要记录到 14 hive 下的文本文件中的事件来配置数据收集。 使用下面的快照来配置您自己的 SharePoint 系统。

    clip_image009

    clip_image011

  3. 您是否注意到“日志收集计划”部分? 这意味着有一个计时器作业会收集 14 hive 下的日志文件,并将您指定的事件复制到您的日志数据库中,以便稍后用于报告目的。 您甚至可以根据服务器的负载模式来安排此计时器作业,正如您将在下一步中看到的那样。
  4. 我打开了我最喜欢的故障排除工具(SharePoint Manager 2010)来跟踪这个作业。 正如您在下图中看到的,我已经配置了中央管理中的“Microsoft SharePoint Foundation 使用情况数据导入”作业每分钟运行一次。

    immediately_Start_A_Timer_job

    clip_image002

  5. 出于好奇,我决定使用 .NET Reflector 来检查这个计时器作业是如何工作的,我注意到了两件事。

    clip_image005

    第一个是构造函数中指定的作业锁定类型是 SPJobLockType.None,它指示 Timer Service 在场中的所有 Web 前端上运行此作业,这是有道理的!

    JobNone LockTypes 之间的区别在于 Job LockType 确保计时器作业仅在一台服务器上运行,但 None 确保该作业在每台服务器上运行。

    image

    第二个是 execute 方法中的 ImportUsageData() 方法,该方法在计时器作业运行时被调用,此方法负责将事件从日志文件复制到您的日志数据库中。 如果您需要了解更多信息,可以进一步展开此方法。

那么,我所说的这四个好处是什么呢?

  1. Microsoft 完全支持直接从日志数据库读取、查询和构建报告。 第三方应用程序甚至可以将它们的数据写回其中。
  2. 它在所有 SharePoint 部署上默认启用。
  3. 保留策略是可自定义的,允许您管理要累积多少数据(默认为 14 天,但这可以使用 PowerShell 进行修改)
  4. Schema 将被记录,这将肯定有助于它的使用。

我还想指出的是,日志数据库构成了大量使用情况和运行状况报告的基础。 例如,Web Analytics 功能在很大程度上依赖于它,因为它从日志数据库中提取数据,对其进行一些额外的处理,将其放入分析数据库中,然后基于这些数据生成报告。

历史

  • 2010 年 4 月 6 日:初始帖子
© . All rights reserved.