發佈日期: 2005 年 8 月 23 日
由 作者:Edward Melomed
**摘要:**本白皮書將簡短討論幾個有關執行 Analysis Services Backup 命令的問題,引導您學習選擇正確的備份策略、學習 Backup 命令所提供的各種選項,以及透過相關範例學習將 Analysis Services 備份自動化。
概觀
備份使用者介面
Backup 命令
備份策略
備份效能考量
利用 SQL Server 代理程式作業將備份自動化
備份和還原作業屬於 Analysis Services 基礎結構中不可或缺的一部份。在 Microsoft® SQL Server™ 2005 Analysis Services 中,備份作業已經完全重建。
我們先參考下圖,看看 Analysis Services、備份和資料檔之間的互動:
圖 1
藉著 XML 對 Analysis Services 發出 Analysis 命令,達到備份和還原的目的。
收到 Backup 命令之後,Analysis Services 會決定哪些檔案需要封裝到同一個備份檔中,此並在執行備份和還原時兼顧資料庫的一致性。Analysis Services 還會確認備份檔中所有的物件都出自同一個版本。
講到這,不能不提備份和還原的仔細程度。備份時是把整個 Analysis Services 資料庫備份到一個檔案中,還原時也是將整個資料庫一起還原。
要了解備份功能,最簡單的方式就是先從 SQL Server Management Studio 所提供的備份使用者介面著手。
若要使用備份使用者介面:
啟動 SQL Server Management Studio。
開啟 Analysis Services 伺服器的連線。
用滑鼠右鍵按一下您要備份的資料庫,然後選取 [Back up]。
這時候會出現 [圖 2] 所示的 [備份資料庫] 對話方塊,您可以設定其中幾項設定。
圖 2
輸入備份檔的名稱和位置。
如果您要將備份檔加密,請選取 [Encrypt backup file],然後輸入密碼。
您可以編寫 Backup 命令的指令碼。請按一下對話方塊最上面的 [Script],取得如下所示的指令碼:
<Backup xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>FoodMart 2000</DatabaseID> </Object> <File>FoodMart 2000.abf</File> </Backup>
執行這個指令碼,即可將資料庫備份到 FoodMart 2000.abf 檔中,該檔所在的預設位置是 C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\OLAP\\Backup 資料夾。
Backup 命令的 DDL 如下所示:
object_refBackupFile [true/false] [true/false] [ [BackupFileDatasource ID] ] [true/false] [Password]
您可以利用 Backup 命令的 Location 引數,來控制在使用遠端磁碟分割時,光一個 Backup 命令是否能夠備份位於多個伺服器的一個資料庫。
如 [圖 3] 所示,如果您的從屬伺服器含有遠端磁碟分割,則可將 Backup 命令傳送到主要伺服器,並且在 Locations 引數指定正確的資訊,讓一個 Backup 命令備份整個資料庫。此舉會使主要伺服器和從屬伺服器建立兩個備份檔,有這兩個檔案構成整個備份。
圖 3
您可以指定是否讓備份作業壓縮資料檔。此舉通常不會對磁碟分割檔有太大的幫助,主要是因為它們已經以壓縮格式儲存了。不過,對於掌管維度的檔案來說,倒是可以節省一些空間,尤其如果您在維度中使用大量字串的話更有幫助。
密碼選項可以指定是否要將備份檔加密。Analysis Services 並不會儲存您所輸入的密碼,將它保管在安全的地方是資料庫管理員的責任。
您必須選對備份 Analysis Services 資料庫的策略。如果選錯策略又做了不少備份作業,可能就會浪費大量備份空間。或者發現備份不夠新時已經已經遺失不少資料了。
您必須瞭解 Analysis Server 物件的儲存模式。
如果資料庫中所有的磁碟分割和維度都使用 OLAP 儲存模式 (與 ROLAP 和 HOLAP 相反),則匯入到 Analysis Services 資料庫中的資料只會在處理時變更。因此在處理之後立刻備份資料,也就不無道理了。
如果您對 Analysis Services 資料庫中的物件是採用 ROLAP 或 HOLAP 儲存模式,應該就能瞭解 Analysis Services 不會真的儲存資料。Analysis Services 會動態讀取最近所做的更新以及最新的資料,
因此,最需要備份的資訊並不是 Analysis Services 儲存的資料,而是物件定義。
如果您的資料庫完全採用 ROLAP,則可以發出相同的 Backup 命令,將資料庫備份到較小的檔案。
如果是採用 HOLAP 或是某種主動式的快取方案,就可以利用 Analysis Management Objects (AMO) 提供的介面來編寫資料庫物件的指令碼進行備份,輕鬆簡單極了。這時您要備份的只不過是資料庫重新上線時就可以重建的快取。
甚至如果您已經備份關聯式資料庫,而且非常確定在還原資料倉儲的關聯部份後可以重新處理 Analysis Services 資料庫,
那麼為了節省備份所需的空間和時間,您可以考慮只備份資料庫的 Create 陳述式。
請注意,Analysis Services 資料庫一經徹底重建,就必須完全重新處理。 因此務必先測試還原程序,確保自己能夠全部還原之後,再選擇這項策略。
如果您要使用 Analysis Services 的回寫功能,請務必先備份關聯式回寫資料表。
如果您要利用查詢記錄收集資料庫的統計資料,以便稍後採用根據用量的分析方式將查詢效能發揮極致,您應該將查詢記錄表一併備份。
請注意,查詢記錄表含有伺服器所有資料庫的相關資訊。查詢記錄表一旦還原,所有資料庫的統計資料也將全部重設。
您可以使用查詢記錄表中的 [資料庫] 欄,找出與資料庫相關的資訊,只備份這些資訊。
備份作業是由 Analysis Services 管理員或資料庫管理員負責執行。
Analysis Services 在備份時執行的作業主要有兩種:
找出哪些檔案要傳送到備份檔中。
建立備份檔。
第一個作業相當快速,您在這個階段幾乎看不到明顯的處理器活動。
第二個作業則是大量 I/O 密集的作業。
接著 Analysis Services 就開始將資料檔傳送到備份檔中。
您可以把備份檔置於另一個磁碟機,提高備份作業的效能,同時防止讀取與寫入作業互相衝突。
備份作業會在它所運作的資料庫取得讀取鎖定。雖然您可以啟動處理作業,不過處理作業無法在備份完成之前進行認可。
在某些情況下,您可以備份整個資料夾,以確保能夠從災害中復原。
有的 SQL Server 2000 Analysis Services 客戶就是採用這個方法來備份系統。
不過在 SQL Server 2005 Analysis Services 中,我們並不建議您採用這個方法,除非您已經對設定做過徹底的分析,並且確實解決所有必須留意的問題。
下面我們將列出幾個需要注意的問題範例。
您可以備份含所有 Analysis Services 資料的整個資料夾,而不只是備份一個資料庫。
不過,在磁碟分割使用 StorageLocation 屬性時,必須追蹤所有您置於檔案系統不同位置的磁碟分割。
如果您是使用遠端磁碟分割,而且要還原異名電腦上的資料夾,則必須確實調整所有指定遠端磁碟分割位置所用的資料來源。
若要將 Analysis Services 備份自動化,有幾種方法可以採用。
我們先看看 SQL Server 代理程式作業所提供的自動化。
若要利用 SQL Server 代理程式作業來管理備份:
以滑鼠右鍵按一下 SQL Server Management Studio 中 SQL Server 代理程式下面的 [作業] 節點,開始建立新作業。
這時候應該會出現 [圖 4] 所示的對話方塊。
圖 4
為 [名稱] 文字方塊中的作業命名。
按一下左窗格中的 [步驟] 節點,再按一下 [新增],在作業建立新的步驟。這時候應該會出現 [圖 5] 所示的對話方塊。
為該步驟命名,並且選擇步驟類型 [SQL Server Analysis Services 命令]。
輸入您要執行這個命令的 Analysis Services 伺服器名稱。然後再剪下您要執行的 Backup 命令,將它貼到 [命令] 視窗中。
圖 5
按一下 [新增作業步驟] 對話方塊中的 [確定] (圖 5),然後再按一下 [新增作業] 對話方塊中的 [確定] (圖 4)。
回到 SQL Management Studio,這時候就會看到您剛剛為作業建立的新節點。
以滑鼠右鍵按一下這個新節點加以啟動。
這時候應該會出現一個進度對話方塊,接著是您所建立的備份。
從這裡開始,您就可以完全發揮 SQL Server 代理程式的威力來管理作業了。
比方說,另外加入一個步驟,將資料庫檔案複製到安全的地方等等。
SQL Server 代理程式也可以讓您查看執行作業的歷史,並且另外提供其他幾種很棒的功能。
當您學會 Backup 命令所有的選項之後,請選擇適合的備份策略,並且確定自動化指令碼能夠正常運作。萬一發生什麼狀況時,才能應對自如,不致手忙腳亂。