使用 SharePoint 資料庫儲存和同步處理報表伺服器內容

當您將報表伺服器設定為以 SharePoint 整合模式執行時,報表伺服器會使用 SharePoint 組態和內容資料庫及其本身的內部資料庫來儲存內容和中繼資料。

Reporting Services 和 SharePoint 都是分散式伺服器應用程式,可以讓您分別在不同的電腦上執行服務和內部資料庫。每個伺服器都會儲存不同種類的資料。多個 SQL Server 關聯式資料庫都可以提供這兩種伺服器的內部儲存位置。知道儲存於每一種伺服器中的資料類型,有助於了解伺服器如何協同運作,這樣也可以提供背景資訊,協助您進行有關如何配置磁碟空間和排程資料庫備份的決策。

下列圖表顯示完整的資料庫集合,這些資料庫用於以 SharePoint 整合模式所執行的報表伺服器部署中。

資料庫圖表

SharePoint 組態資料庫

每個 SharePoint Web 應用程式都擁有能夠儲存應用程式設定的組態資料庫。當您設定 SharePoint Foundation 2010 或 SharePoint Server 2010 的執行個體以使用報表伺服器時,要在 SharePoint 管理中心中指定組態設定。指定的設定會儲存在此資料庫中。這些設定包括報表伺服器的 URL、報表伺服器服務的帳戶資訊、伺服器上所使用之驗證提供者的相關資訊,以及限制或啟用報表記錄 (Report History) 和記錄 (Log) 的網站層級設定。如需詳細資訊,請參閱<針對 SharePoint 2010 整合設定 Reporting Services>。

SharePoint 內容資料庫

每個 SharePoint Web 應用程式都擁有一或多個內容資料庫,可以儲存透過伺服器所存取及管理的文件和屬性。對於設定為 SharePoint 整合模式的報表伺服器而言,SharePoint 內容資料庫會為已發行的報表、報表模型、共用資料來源、資源、屬性和權限提供主要儲存區。

報表伺服器資料庫和報表伺服器暫存資料庫

每個報表伺服器執行個體或向外延展部署都會使用單一的報表伺服器資料庫來儲存永續性資料。暫存資料會隔離在次要資料庫中。這樣可以讓您建立不同的備份排程,並為每個排程設定不同的成長屬性。每個報表伺服器資料庫都擁有一個暫存資料庫。它會儲存工作階段資料和暫存快照集 (僅針對訂閱處理、互動式報表或報表快取而建立) 以增強效能。

保存在報表伺服器資料庫中的資料包含報表記錄或報表執行的排程、訂閱和快照集。報表伺服器資料庫也會保存內容檔案的內部副本 (這些內容檔案是儲存在 SharePoint 內容資料庫中)。儲存內部副本會將傳送檔案到報表伺服器以進行處理的次數減至最少,藉以提升效能。同步處理和驗證檢查能確保報表、模型和資料來源都是相同的。

重要事項重要事項

報表伺服器資料庫可以支援原生模式作業或 SharePoint 整合模式,但絕不能同時支援此兩者。如果您建立報表伺服器資料庫來支援 SharePoint 整合模式,則稍後便無法使用原生模式的報表伺服器執行個體來轉換或移轉該資料庫。報表伺服器資料庫包含模式特定的中繼資料 (也就是項目位置及權限資訊),此資料並不相容於其他模式。

資料庫連接、權限和登入

設定報表伺服器或者 Windows SharePoint Services 或 Office SharePoint Server 執行個體的使用者,必須是本機系統管理員或是電腦內建之 Administrator 群組的成員。

報表伺服器服務需要 SharePoint 內容資料庫的資料庫連接,但不需要組態資料庫的資料庫連接。報表伺服器整合設定是使用在安裝 Windows SharePoint Services 時針對管理中心工具的使用者所建立的登入與權限,儲存在組態資料庫中。

相反地,報表伺服器服務則會建立、更新和刪除 SharePoint 內容資料庫中的項目和屬性。當您在管理中心中指定信任帳戶時,就會設定連接資訊、登入和資料庫權限。

Windows SharePoint Services 或 Office SharePoint Server 執行個體都不會從報表伺服器資料庫新增或擷取資料。所有要求都會導向報表伺服器,接著報表伺服器會使用本身的連接設定來存取報表伺服器資料庫。

在報表伺服器上檢視項目或執行作業的權限,是由 Windows SharePoint Services 或 Office SharePoint Server 執行個體所管理。驗證和安全性檢查會發生在要求傳送至報表伺服器之前。每個要求都會附隨著安全性 Token,其中包含的權限資訊會決定是否要提供或拒絕要求的服務。

資料庫維護

報表伺服器會執行例行維護作業,以從 SharePoint 網站上刪除的報表伺服器資料庫中移除遺棄的報表快照集、報表記錄、排程和訂閱。遺棄的項目是指不再與 SharePoint 內容資料庫中之父項目具有關聯性的項目。

報表伺服器會依照每日間隔,確認儲存於報表伺服器資料庫中的項目,是否與現存於 SharePoint 內容資料庫中的報表相關聯。若要修改清除程序的頻率,請在 RSReportServer.config 檔案中加入 DailyCleanupMinuteofDay 組態設定。清除程序會在背景中執行,並使用定義於組態檔案中的排程資訊。您無法視需要執行此程序。

如果無法使用 Windows SharePoint Services 或 Office SharePoint Server 執行個體 (例如,如果伺服器離線),就不會發生任何清除作業。如果您還原報表伺服器資料庫,而資料庫中有舊資料無法與目前儲存在 SharePoint 資料庫中的項目相對應,則這些項目在下次清除程序執行時就會被移除。

清除程序只會刪除內容;不會同步處理或更新儲存在 SharePoint 內容資料庫中的報表伺服器項目。根據預設,清除程序會在每日的早上 2:00 執行。

若要指定不同的時間,您必須將 DailyCleanupMinuteofDay 加入至 RSReportServer.config 檔案並設定不同的值。例如:

<Add Key=" DailyCleanupMinuteOfDay " Value="120" />

根據預設,該設定並不在 RSReportServer.config 檔案中。若要加入,請複製該項目並將其與該區段中的其他 Add 元素一起放在 Configuration 項目下方。該值是以分鐘為單位,起於早上 12:00,最小值為 30,最大值為 1380 (23 個小時)。

同步處理和驗證作業

若要確保報表伺服器上針對內部處理所保存的副本與 SharePoint 程式庫中的原始項目相同,報表伺服器會在處理要求之前,執行同步處理和項目驗證等步驟。

同步處理是建立、更新或刪除項目內部副本的程序 ( 此項目是儲存在報表伺服器資料庫中 )。報表伺服器會從 SharePoint 程式庫擷取項目和屬性,並將其儲存在報表伺服器資料庫中。時間戳記資訊是比較的基礎。時間戳記是以 UTC 格式儲存。如果報表伺服器和 SharePoint 網站或伺服陣列位於不同的時區,則時間戳記會在儲存時轉換成當地的伺服器時間。

驗證是決定是否需要同步處理的步驟。如果原始項目和內部副本的時間戳記相同,則不會發生同步處理。

同步處理項目的方式

同步處理是由報表伺服器執行。這是一項背景程序,每當建立、更新或擷取項目時就會自動觸發。您無法管理、設定或明確地控制同步處理作業。同步處理的範圍是根據建立或更新項目的特定要求而設定,並沒有可以同時調整所有項目和屬性的全域同步處理作業。若要手動同步處理報表、報表模型或共用資料來源,則必須加以執行。

當項目不存在於報表伺服器資料庫,或者報表伺服器資料庫中的項目比 SharePoint 程式庫中的對應項目來得舊時,就會建立或更新項目的內部副本。內部副本會因下列事件而建立:

  • 要求報表或報表模型。此事件會針對報表、報表模型以及由這兩者其中任一項所參考的共用資料來源而建立內部副本。

  • 從報表設計師或模型設計師將報表或報表模型發行至 SharePoint 程式庫。在項目加入至 SharePoint 內容資料庫之後,就會建立報表或模型的副本,並將其加入至報表伺服器資料庫。如果在發行報表模型時也一併發行共用的資料來源,則在使用該共用資料來源之前,並不會為其建立內部副本。

在 SharePoint 網站上使用 [上傳] 動作,將會延遲在報表伺服器資料庫中建立內部副本的作業。對於任何上傳的報表伺服器項目而言,在接到使用該項目的要求時,就會建立內部副本。

不會針對報表中所使用的外部影像檔製作內部副本,也不會針對報表伺服器資料庫中以獨佔方式存放的排程、快照集或訂閱製作內部副本。

關於組態設定和權限

雖然必須同時在兩台伺服器上正確定義組態設定,同步處理程序還是會將這些設定排除在外。如果您變更報表伺服器服務帳戶、URL、驗證類型或報表伺服器的伺服器執行模式,使其以原生模式而非 SharePoint 整合模式執行,則必須在 SharePoint 管理中心或 Reporting Services 組態工具中明確地更新伺服器組態設定。

在 SharePoint 網站或伺服陣列上設定的權限是由報表伺服器所使用。在 SharePoint 網站或伺服陣列以及報表伺服器之間並不會進行權限的同步處理。

伺服器可用性和同步處理失敗

項目、屬性和作業的同步處理會要求屬於部署一部分的所有電腦及連接都必須可用且正常運作。同步處理在下列條件為真時無法作業:

  • 伺服器或後端資料庫離線或因其他原因而無法使用。

  • 任何伺服器或後端資料庫的連接資訊變成無效。例如,如果不正確地變更 URL 或者變更了服務帳戶或密碼,就會發生這種情況。

  • 未先將伺服器設定為離線即修改連接資訊,導致時間和同步作業流程中斷。

當同步處理因為伺服器無法彼此連接或與其後端資料庫連接而無法執行時,報表伺服器會在連接恢復時以及接到特定的報表、報表模型、共用的資料來源或訂閱要求時,重新調整不同步的內容或中繼資料。

如果同步處理失敗,就會發生 rsItemNotFound 錯誤。這表示未在 SharePoint 程式庫中找到項目。