2016-01-13 110 views
1

我开始研究由前员工创建的SSAS解决方案。我做的第一件事是重命名SSAS服务器实例上的现有数据库名称。新名称是RMSBak。SSAS多维数据集正在使用错误的数据库

在SSAS解决方案中,我更改了几列。删除了一些度量/列。然后部署和处理立方体。 部署工作。从视觉工作室处理立方体效果很好。

我们有一个SQL Server代理作业,它会触发一个SSIS包,然后处理这些多维数据集。然而,这项工作仍然失败。当我查看SSMS中的报告时,它显示它正在尝试使用我已重命名的数据库。

错误(S)是这样的:

Process Cubes:Error: Errors in the OLAP storage engine: An error occurred while the 'Basis MTM' attribute of the 'MTM' dimension from the 'RMS Data CubesBak' database was being processed.

我已经检查每一个连接字符串,我知道。他们都指向正确的数据库。然而,该工作或SSIS包或坚持使用我已重命名的数据库。

+1

打开SSIS包处理SSAS几行,查看XML代码,并为旧的数据库名称进行查找。接下来,检查作业本身 - 连接字符串可以直接嵌入到那里 – AHiggins

+0

您也可以检查SQL Server代理作业,可能存在与其关联的与DB名称相关的变量。 –

+2

这里模糊的回忆,SSIS包会保留多维数据集的内部ID进行处理,所以它想尝试处理旧的而不是新的。也许你的配置已经应用到你的连接管理器和/或覆盖设计时间值的任务 – billinkc

回答

4

@billinkc是对的。如果您在SSIS中使用SSAS处理任务,则DatabaseID将在设计时进行硬编码。连接字符串不会改变它正在处理的数据库ID。您必须再次设计SSAS处理任务。

或者你可以备份两个数据库,删除两个数据库,然后恢复它们。还原将修复DatabaseID以匹配数据库名称。

我个人更喜欢使用SSIS一个C#脚本任务运行的AMO代码基于连接字符串(而不是硬编码DatabaseID)

+0

实际上,我只是能够通过右键单击来纠正这个问题(一旦我知道它是什么 - 感谢@GregGalloway) SSDT 2012中的SSIS包并选择“查看代码”,然后执行搜索和替换以用新的数据库名称替换旧的数据库名称。 – paulH

相关问题