分析服务2016 DBCC CHECKDB简介

日期: 2015-11-29 作者:Ashish Kumar Mehta翻译:冯昀晖 来源:TechTarget中国 英文

SQL Server分析服务(SSAS)2016版本有一项新功能将获得DBA和SQL Server商业智能开发者社区的好评,它就是:数据库一致性检查工具(DBCC)CHECKDB命令工具。该命令提供了针对表格和多维数据库执行数据库一致性检查的功能。DBCC CHECKDB由单独的XMLA命令组成,它会跨分析数据库或者任何个体对象检查数据损坏问题。DBCC命令会获取对象定义,如果发现分析服务对象有问题,就会返回空结果集或者详细的错误信息。

要检查SSAS多维数据库中的索引损坏问题,你可以执行DBCC CHECKDB命令按以下项目检查: 验证元数据 扫描段,检查物理损坏问题 检查段统计和索引 要检……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

SQL Server分析服务(SSAS)2016版本有一项新功能将获得DBA和SQL Server商业智能开发者社区的好评,它就是:数据库一致性检查工具(DBCC)CHECKDB命令工具。该命令提供了针对表格和多维数据库执行数据库一致性检查的功能。DBCC CHECKDB由单独的XMLA命令组成,它会跨分析数据库或者任何个体对象检查数据损坏问题。DBCC命令会获取对象定义,如果发现分析服务对象有问题,就会返回空结果集或者详细的错误信息。

要检查SSAS多维数据库中的索引损坏问题,你可以执行DBCC CHECKDB命令按以下项目检查:

  • 验证元数据
  • 扫描段,检查物理损坏问题
  • 检查段统计和索引

要检查SSAS表格数据库中的索引损坏问题,你可以执行DBCC CHECKDB命令按以下项目检查:

  • 检查字典
  • 验证压缩
  • 检查列统计
  • 检查段统计

要注意的是,要想检查自上一次SSAS实例重启以来分析服务数据库中出现的所有损坏问题,需要给SSAS服务器做一次重启然后再检查。只是重新连接到分析服务器实例检测不到新变化或者新的损坏问题。因此,强烈建议在日常维护窗口期间执行DBCC检查。

你必须以服务器管理员身份操作(或者说服务器角色成员),在SSAS数据库或者对象上运行DBCC CHECKDB命令来识别表格或者多维数据库中的损坏问题。图1展示了针对SSAS数据库执行DBCC命令的一个例子。

打开SQL Server管理器(SSMS),连接到SQL Server分析服务2016的实例。

打开新的XMLA查询窗口,复制如图1所示示例代码,针对分析服务示例数据库AdventureWorksDW 执行DBCC检查。该示例数据库是表格或者多维数据库。

图1:执行DBCC检查

图2展示了创建DBCC命令并在SSAS数据库对象上运行的例子。在XMLA查询窗口中,从图2中复制XMLA示例代码,在分析服务数据库中针对分析服务对象运行DBCC命令。

图2:在分析服务数据库中针对分析服务对象运行DBCC命令

你可以使用SQL Server 2016 Profiler或者分析服务xEvents查看DBCC输出信息。要注意的是,DBCC错误信息并不会写到Windows应用日志或者MSMDSRV.LOG文件中。

对分析服务执行DBCC检查可以发现物理的和逻辑的数据损坏问题,这种情况通常发生在段内有孤立信息存在的时候。然而,DBCC命令会略过远程的、未处理的或者空的分区。DBCC命令以读事务模式运行,分区检查同时以并行模式运行。

图3展示了在AdventureWorksDW 数据库上成功执行DBCC CHECKDB命令之后的输出示例。

图3:DBCC CHECKDB命令输出

如果在分析服务对象或者分析服务数据库中没有检测到损坏问题,在上面的结果标签页(Result)中DBCC命令会显示空的结果集。

图4:没有检测到损坏问题

在上面的消息标签页(messages)中,你可以看到详细信息,不过对于较小的分析数据库这些信息有时不太可靠。有时候,状态信息会被裁剪来表明DBCC命令执行成功了。图5展示了一个示例结果集。不过,正如上面提到的,强烈推荐在重启SSAS实例之后再执行DBCC命令,这样可以检测到自SSAS实例上一次重启以来发生过的所有损坏错误。

图5:多维验证检查示例消息

要想跟踪DBCC XMLA输出,可以打开SQL Server 2016 Profiler开启一个新的跟踪,其中会包含诸如进度报告事件之类的信息(比如:进度报告开始,进度报告现状,进度报告结束,进度报告出错)。然后在SSMS中执行DBCC XMLA命令,在SQL Server 2016 Profiler中看看DBCC输出结果详细信息。

作者

Ashish Kumar Mehta
Ashish Kumar Mehta

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