我创建了一个 SSIS 包来遍历 SSAS 实例上的所有数据库。它在 vbscript 中使用 AMO 获取 DatabaseId,然后生成 XMLA 来备份每个数据库。
大多数数据库备份都没有问题,但是当 ForEach 访问一个特定的数据库时,Execute Analysis Services DDL 任务似乎挂起。.abf 文件已创建,但 SSIS 包似乎没有收到命令已完成的响应。就像备份过程卡在文件上一样。
当我使用 SSMS 对话框备份数据库时,出现了同样的问题。我使用这种方法验证了其他数据库备份成功。
我应该注意,根据 SSMS 中的数据库属性,所讨论的数据库的“估计”大小为 0.0MB。数据库真的是空的,还是这可能是损坏的迹象?
为什么备份过程没有完成?我没有收到任何错误消息,只是一个不会结束的长时间运行的进程。我能做些什么来找到根本原因吗?
备份挂起是因为 SSAS 数据库损坏,这是服务器强制重启的结果。
这提出了一些问题:
如果 SSAS 数据库的估计大小为 0,是否总是表示数据库已损坏?是否有任何其他方法可以通过使用 SSMS 对话框或 AMO 来检测 SSAS 数据库损坏?