2016-01-13 147 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

相關問題