Share via


建立或重新整理報表資料庫

這個主題描述如何建立或重新整理要作為可擴充共用資料庫的報表資料庫。如此圖所示,報表資料庫可能是實際執行資料庫的副本,或報表資料庫可能包含從一或多個實際執行資料庫中匯入的報表資料。建立或重新整理報表資料庫的處理序稱為「建立階段」或「重新整理階段」,取決於您是建立新的報表資料庫或是重新整理舊的報表資料庫。

可擴充共用資料庫的生命期間是從在一組報表磁碟區上建立新報表資料庫開始。到最後,報表資料會變得太舊而無法使用,我們稱報表資料庫「過時」。重新整理過時的報表資料庫為每一個更新週期的一部分。重新整理「過時報表資料庫」涉及更新它的資料或建立資料庫的全新版本。

若要建立或重新整理報表資料庫,您可以使用 SQL Server 提供的任何資料複製方法來複製資料或資料庫。如需詳細資訊,請參閱本主題稍後的「建立或重新整理報表資料庫的方法」。

建立或重新整理報表資料庫的方法

[!附註]

在建立或重新整理報表資料庫之前,它的報表磁碟區組必須裝載在實際伺服器上,且每一個磁碟區必須標示為讀寫。如需此程序中所有步驟的描述,請參閱本主題稍後的「建立或重新整理資料庫的步驟」。

SQL Server 2005 及更新的版本可支援下列方法來建立或重新整理報表資料庫:

  • SQL Server Integration Services (SSIS)

    您可以執行 SSIS 封裝及使用「執行 SQL」工作或「傳送資料庫」工作來建立或複製資料庫:

    • 「執行 SQL」工作會執行封裝中的 SQL 陳述式或預存程序。使用執行 SQL 工作,您可以執行 CREATE DATABASE 陳述式來建立資料庫,然後複製一或多份資料表或檢視來擴展資料庫。如需詳細資訊,請參閱<SSIS 執行 SQL 工作>。

    • 傳送資料庫工作可在相同伺服器執行個體內或執行個體之間複製資料庫。如需詳細資訊,請參閱<傳送資料庫工作>。

    [!附註]

    您也可以使用 SQL Server 匯入和匯出精靈來建立資料庫,但您必須至少複製一個資料表或檢視。如需詳細資訊,請參閱<使用 SQL Server 匯入和匯出精靈移動資料>。

  • 備份和還原

    您可以將實際執行資料庫的備份還原到報表磁碟區。這涉及在報表磁碟區上還原及復原完整資料庫備份。

    • 如果您使用的相同磁碟機代號,請將報表磁碟區裝載到不同主機,並連接到伺服器執行個體來還原資料庫。

    • 如果報表磁碟區使用與實際磁碟區不同的磁碟機代號,您必須將 WITH MOVE 子句加入 RESTORE DATABASE 陳述式中,在還原資料庫的路徑名稱中指定報表磁碟區的磁碟機代號。

    如需有關使用備份和還原來複製資料庫的詳細資訊,請參閱<使用備份與還原來複製資料庫>。

  • 複製實際執行資料庫

    在您可以手動複製資料庫或使用 [複製資料庫精靈] 的 [卸離和附加方法] 之前,您必須先使資料庫離線,在複製之後,再使它回到線上。然而,[複製資料庫精靈] 提供替代方法,即 SMO 傳送方法,可讓資料庫仍在線上時複製資料庫。雖然 SMO 傳送方法的速度比不止 [卸離和附加方法],但它有保留資料庫使用中連接的優點。

    如需詳細資訊,請參閱<使用複製資料庫精靈>。

[!附註]

我們建議您在建立報表資料庫時,一律對實際執行資料庫和報表資料庫使用相同的路徑名稱,如果可能,也對實際磁碟區和報表磁碟區 (裝載到報表伺服器時) 使用相同的磁碟機代號。

針對預期的查詢工作負載將報表資料庫最佳化是有幫助的。這種最佳化包括:

  • 對受影響的資料表和索引,依需要更新或重建統計資料。

  • 以 FILL 因數 100 重建索引。

  • 將報表資料庫置於簡單復原模式下,並執行檢查點來截斷交易記錄檔及節省記錄空間。

[!附註]

如需有關如何使用報表資料庫作為可擴充共用資料庫的指導方針,請參閱<確定可擴充共用資料庫的正確環境>。

當資料庫就緒時,您必須將報表磁碟區標示為唯讀,並從實際伺服器上卸載它們。如需詳細資訊,請參閱本主題稍後的「建立或重新整理報表階段的步驟」。

建立或重新整理階段的步驟

[!附註]

在您可以重新整理報表資料庫之前,它的報表磁碟區組必須從所有報表伺服器上卸載。如需詳細資訊,請參閱<卸離可擴充共用資料庫>。

若要建立或重新整理報表資料庫,請在實際伺服器上執行下列動作:

  1. 使用硬體廠商的公用程式,將對應到每一個報表磁碟區的邏輯單元號碼 (LUN) 取消遮罩,使磁碟區可供實際伺服器存取。如果資料庫使用多個報表磁碟區,請對每一個磁碟區執行此步驟。

  2. 裝載每一個報表磁碟區,並將它標示為讀寫。DiskPart list volumes 命令顯示電腦上所有的磁碟和磁碟區,對於取得磁碟區資訊很有幫助。若要使用 DiskPart 公用程式來裝載磁碟區,請在命令提示字元處輸入下列命令:

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> assign letter=<drive-letter>

    DISKPART> attribute clear readonly

    DISKPART> exit

    其中 <drive-number> 是 Windows 作業系統指派的磁碟區號碼,<drive-letter> 是指派給報表磁碟區的代號。如果資料庫使用多個報表磁碟區,請對每一個磁碟區執行此步驟。

  3. 如果您重新整理現有的報表資料庫:

  4. 建立或重新整理資料庫。

    管理員使用建立或重新整理報表資料庫的任何一個方法來建立或重新整理此資料庫。報表資料庫可以使用任何有效的資料庫名稱。如需詳細資訊,請參閱本主題稍早的「建立或更新資料庫的方法」。

    [!附註]

    在報表資料庫中,我們建議將 PAGE_VERIFY 設定為預設的 CHECKSUM。如需詳細資訊,請參閱<ALTER DATABASE (Transact-SQL)>。

  5. 從實際伺服器執行個體中卸離資料庫。

    您可以使用下列 Transact-SQL 陳述式來達成此目的:

    sp_detach_db @dbname='<database_name>'
    

    其中 <database_name> 是資料庫的名稱。

    [!附註]

    依預設,sp_detach_db 執行 UPDATE STATISTICS 來重新取樣統計資料。不過,有些實作可能需要您個別執行 UPDATE STATISTICS 與 FULL SCAN 選項。

  6. 將每一個報表磁碟區標示為唯讀,並從實際伺服器上卸載它。

    若要使用 DiskPart 公用程式來卸載磁碟區,請在命令提示字元中輸入下列命令:

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> attribute set readonly

    DISKPART> remove

    其中 <drive-number> 是 Windows 作業系統指派的磁碟區號碼,<drive-letter> 是指派給報表磁碟區的代號。如果資料庫使用多個報表磁碟區,請對每一個磁碟區執行此步驟。

    重要事項重要事項

    在從實際伺服器卸載之前,報表磁碟區必須為唯讀。

現在報表資料庫可作為擴充之共用資料庫。如需詳細資訊,請參閱<附加報表資料庫以作為可擴充共用資料庫>。