0

我目前無法通過電子郵件進行從SSRS基於時間的訂閱報告上了一個新的SQL Server 2012安裝服務器上2012SSRS - 更名的TempDB現在訂閱報告而不是通過電子郵件

我收到以下錯誤在SSRS LogFiles

schedule!WindowsService_5!dc4!10/14/2013-10:01:09:: i INFO: Handling Event TimedSubscription with data 1a762da1-75ab-4c46-b989-471185553304. library!WindowsService_5!dc4!10/14/2013-10:01:09:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: , An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database.; library!WindowsService_5!dc4!10/14/2013-10:01:09:: w WARN: Transaction rollback was not executed connection is invalid schedule!WindowsService_5!dc4!10/14/2013-10:01:09:: i INFO: Error processing event 'TimedSubscription', data = 1a762da1-75ab-4c46-b989-471185553304, error = Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database. ---> System.Data.SqlClient.SqlException: Invalid object name 'ReportServerTempDB.dbo.ExecutionCache'.

數據庫從SQL 2008遷移,這是由第三方完成的,我不確定是否有某些內容被忽略。

任何援助將不勝感激。

謝謝。

Dane

+1

您是否嘗試過任何操作或只是將錯誤信息轉儲出來? –

+0

我很抱歉沒有添加我在這個問題上找到的信息的參考信息,但我花時間尋找解決方案。沒有太多的SSRS知識和我在這裏發佈的信息,希望有人能提供一些指導。 – Morallis

回答

1

此主題似乎解決您的問題。

http://www.sqlservercentral.com/Forums/Topic553765-147-1.aspx

請發佈錯誤消息之前做的研究一點點。

從鏈接 「 感到如此的恐慌之後,我發現了一個觸發引用無效的對象。觸發器[Schedule_UpdateExpiration]上的ReportServer表附表中有違規的參考。在測試中,我改變了這種觸發以引用正確的報告服務器tempdb,現在訂閱似乎正常工作,到目前爲止,我沒有發現其他任何內容被破壞。「

「如果有人正在尋找一個快速的答案,然後這裏是我做過什麼來解決我的問題:

  • 更新於dbo.schedule觸發以引用正確的tempdb
  • 用他們的權限將所有存儲過程編寫到一個新的查詢中,然後用新的「查找並替換」舊的tempdb的所有實例。「
+0

謝謝。根據上面的內容,我確實看到了發佈前我能找到的內容 – Morallis

+0

沒問題,我比預想的要慢,我很抱歉。關於如何/要問什麼,有非常具體的指導原則,因爲這會讓每個人的生活更輕鬆。很高興的解決方案幫助。 –

0

Daniel E. answer是正確的。

我花了很多時間來找到它,並同時更新現有的訂閱

我收到錯誤「報表服務器數據庫中出現錯誤。這可能是由於數據庫中的連接失敗,超時或磁盤狀況不佳所致。 (rsReportServerDatabaseError)「

當我在線搜索上述錯誤時,我無法解決它。經過很長一段時間,我發現tigger指向舊數據庫。 臨時數據庫在下面:[ReportServerTempDB] 更新到正確的tempDB後,所有開始工作正常。

ALTER TRIGGER [dbo].[Schedule_UpdateExpiration] ON [dbo].[Schedule] 
AFTER UPDATE 
AS 
UPDATE 
    EC 
SET 
    AbsoluteExpiration = I.NextRunTime 
FROM 
    [ReportServerTempDB].dbo.ExecutionCache AS EC 
    INNER JOIN ReportSchedule AS RS ON EC.ReportID = RS.ReportID 
    INNER JOIN inserted AS I ON RS.ScheduleID = I.ScheduleID AND RS.ReportAction = 3 
1

一會兒尋找解決的辦法來解決這個問題之後,我發現,這是由SQL Server代理的工作定義造成不完全遷移到新的服務。對於在SSRS中創建的每個訂閱,都有一個在SQL Server代理中定義的關聯作業。對於通過訂閱進行的報告交付,服務會大量回復,所以最好導出這些作業定義並將它們導入到新服務器中。