卸離可擴充共用資料庫
到最後,報表資料會變得太舊而無法使用,我們稱報表資料庫「過時」。更新可擴充共用資料庫涉及三階段更新循環 (開始階段是卸離階段)。基本上,「卸離階段」包含從報表伺服器卸離過時報表資料庫以及卸載報表磁碟區。從給定伺服器執行個體卸離時,過時報表資料庫會停止成為該伺服器執行個體上的可擴充共用資料庫。
卸離階段步驟
在這個階段中,您會在每部報表伺服器上完成下列處理:
選擇性停用資料庫上的新查詢,以及允許目前查詢正常完成。如需詳細資訊,請參閱本主題稍後的「準備卸離過時報表資料庫的策略」。
從每個伺服器執行個體卸離資料庫。
您可以使用下列 Transact-SQL 陳述式來達成此目的:
sp_detach_db @dbname='<database_name>'
其中 <database_name> 是資料庫的名稱。
卸載每部報表伺服器上的這組報表磁碟區。
若要使用 DiskPart 公用程式卸載磁碟區,請在命令提示字元中輸入下列命令:
DiskPart
DISKPART> select volume=<drive-number>
DISKPART> remove
DISKPART> exit
其中 <drive-letter> 是指派給報表磁碟區的代號。如果資料庫使用多個報表磁碟區,請對每一個磁碟區執行此步驟。
遮罩與報表磁碟區對應的邏輯單元號碼 (LUN),從報表伺服器中隱藏它。若要完成這個步驟,請使用硬體廠商的公用程式。如果資料庫使用多個報表磁碟區,請對每一個磁碟區執行此步驟。
[!附註]
卸離階段是給定的報表磁碟區組之更新循環的第一個階段。不過,您可以使用兩組替代報表磁碟區,作為報表資料庫的過時及全新版本。這可讓您重疊進行兩組磁碟區的卸離和更新階段。如需詳細資訊,請參閱<將可擴充共用資料庫的可用性最大化>。
準備卸離過時報表資料庫的策略
取代過時版本的資料庫時,重要的是考慮您報表環境的商務需求。您應該從下列商務需求中評估何者較為重要:允許完成目前執行的查詢,或儘快完成更新。
根據較重要的需求,您可決定如何在每個報表伺服器上管理卸離階段。
允許查詢完成
若要保留所有進行中的查詢,請停止交易到資料庫的流程 (例如,停止 I/O 活動),以開始卸離階段。然後,在每個伺服器執行個體上,等待所有目前查詢完成。當您已從所有伺服器執行個體卸離資料庫時,即可卸載報表磁碟區。
儘快更新資料庫
若要快速完成更新,請立即結束查詢,或在指定的秒數之後取得每個伺服器執行個體上資料庫的獨佔存取權。附加重新整理版本的資料庫之後,即可重新啟動結束的查詢。
例如,若要在結束任何其餘查詢之前給予目前查詢 60 秒的時間完成,請使用下列 Transact-SQL 陳述式:
USE master; ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER WITH ROLLBACK AFTER 60; GO
現在,您可從每個伺服器執行個體卸離資料庫,以及從每個報表伺服器卸載報表磁碟區。
如需詳細資訊,請參閱<ALTER DATABASE (Transact-SQL)>。
此時,卸載的這組報表磁碟區已可用於下一個更新循環的建立或重新整理階段。
或者,在目前掛載的這組報表磁碟區上開始卸離階段之前,您可在一組替代報表磁碟區上重新整理資料庫。如需詳細資訊,請參閱<將可擴充共用資料庫的可用性最大化>。