AMO 其他類別和方法
本節包含有助於管理 Microsoft SQL Server Analysis Services 中的物件,而且非屬 OLAP 或資料採礦特有的通用類別。這些類別涵蓋如預存程序、追蹤、例外狀況以及備份與還原等功能。
本主題包含下列各節:
組件物件
備份與還原方法
追蹤物件
CaptureLog 類別和 CaptureXML 屬性
AMOException 例外狀況類別
下圖顯示在本主題中說明的類別關聯性。
組件物件
建立 Assembly 物件的方式是將它加入伺服器的組件集合,然後使用 Update 方法將 Assembly 物件更新到伺服器。
若要移除 Assembly 物件,必須使用 Assembly 物件的 Drop 方法來卸除它。從資料庫的組件集合移除 Assembly 物件並不會卸除組件,它只會讓您無法在應用程式中看到組件,直到下次執行應用程式為止。
如需有關可用之方法和屬性的詳細資訊,請參閱<Microsoft.AnalysisServices>中的<Microsoft.AnalysisServices..::..Assembly>。
安全性注意事項 |
---|
COM 組件可能會造成安全性風險。由於這項風險和其他考量,COM 組件在 SQL Server 2008 Analysis Services (SSAS) 中已經被取代。在未來的版本中,可能不再支援 COM 組件。 |
備份與還原方法
備份與還原是可用以建立 Analysis Services 資料庫複本以及使用該複本復原資料庫的方法。Backup 方法屬於 Database 物件,而 Restore 方法則屬於 Server 物件。
只允許伺服器和資料庫管理員執行資料庫的備份。只有伺服器管理員可以將資料庫還原到與備份來源不同的伺服器。資料庫管理員可以覆寫現有的資料庫以還原資料庫,只要他們擁有要覆寫的資料庫。在還原之後,如果資料庫是用其原始安全性定義還原,資料庫管理員可能會喪失對已還原資料庫的存取權。
資料庫備份檔案必須有 .abf 副檔名。
Backup 方法
若要備份資料庫,請以備份檔案名稱做為參數來使用資料庫物件的 Backup 方法。
預設值:
AllowOverwrite=false
BackupRemotePartitions=false
Security=CopyAll
ApplyCompression=true
Restore 方法
若要將資料庫還原到伺服器,請以備份檔案做為參數來使用伺服器的 Restore 方法。
預設值:
AllowOverwrite=false
DataSourceType=Remote
Security=CopyAll
限制
無法將本機資料分割還原為遠端資料分割。
無法將遠端資料分割還原為本機資料分割,但是可以將遠端資料分割還原到不同於備份來源的伺服器。
Backup 與 Restore 方法的共同參數與屬性
File 是要備份的目的或來源檔案名稱 (UNC 名稱)。
Location 指定伺服器特定的備份資訊,例如 BackupFile。這可讓您為遠端資料庫指定不同的備份檔案。
DatasourceID 指定遠端伺服器中從屬資料庫的識別碼。
ConnectionString 可讓您在遠端伺服器變更時,調整遠端資料來源。當有 ConnectionString 時,一定要指定 DatasourceID。
Folder 允許為本機硬碟上的資料分割重新對應資料夾。
Original 是本機資料分割的原始資料夾。
New 是本機資料分割的新位置,該資料分割原是在對應的 'Original' 舊資料夾中。
Password 若非空白,則指定伺服器將加密備份檔案。
追蹤物件
追蹤是用於監視、重新執行和管理 Analysis Services 執行個體的架構。像 SQL Server Profiler 等用戶端應用程式會訂閱追蹤,而且伺服器會按照追蹤定義的指定將追蹤事件傳送回去。
每個事件由事件類別描述。事件類別描述所產生的事件類型。在事件類別中,事件子類別描述更細的分類層級。每個事件由若干資料行描述。在所有事件中,描述追蹤事件的資料行都是一致的,而且符合 SQL 追蹤結構。記錄在每一個資料行中的資訊,可能會因事件類別而不同,也就是,每個追蹤都有一組預先定義的資料行,但是資料行的意義可能會隨事件類別而不同。例如,TextData 資料行是用以記錄所有陳述式事件的原始 ASSL。
追蹤定義可以包括同時要追蹤的一或多個事件類別。對於每個事件類別,可以將一或多個資料行加入追蹤定義,但是不一定會使用所有的追蹤資料行。資料庫管理員可以決定要在追蹤中包括哪些可用的資料行。此外,可以根據追蹤中任何資料行上的篩選準則,選擇性地追蹤事件類別。
可以啟動並刪除追蹤。可以同時執行多個追蹤。可以即時擷取追蹤事件,或是導向檔案以供稍後分析或是重新執行之用。SQL Server Profiler 是用以分析和重新執行 Analysis Services 追蹤事件的工具。允許多個連接從相同的追蹤接收事件。
追蹤可以分成兩個群組:伺服器追蹤和工作階段追蹤。伺服器追蹤將通知伺服器中的所有事件,工作階段追蹤將只會通知目前工作階段中的事件。
伺服器追蹤集合中的追蹤是以下列方式定義:
建立 Trace 物件並擴展其基本資料,包括追蹤識別碼、名稱、記錄檔名稱、附加|覆寫等等。
將要監視的事件加入追蹤物件的 Events 集合。對於每個事件,會加入資料行。
透過將不需要的資料列加入篩選集合,將 Filters 設定成排除它們。
啟動追蹤,建立追蹤並不會開始收集資料。
停止追蹤。
使用 SQL Server Profiler 檢閱追蹤檔案。
工作階段物件中的追蹤是以下列方式取得:
定義函式以處理 SessionTrace 在應用程式中所產生的追蹤事件。可能的事件是 OnEvent 及 Stopped。
將定義的函式加入事件處理常式。
啟動工作階段追蹤。
執行您的處理序並讓函式處理常式擷取事件。
停止工作階段追蹤。
繼續執行您的應用程式。
CaptureLog 類別和 CaptureXML 屬性
AMO 執行的所有動作都會當做 XMLA 訊息傳送到伺服器。AMO 提供不需 SOAP 標頭即可擷取所有這些訊息的方法。如需詳細資訊,請參閱<AMO 類別簡介>。CaptureLog 是 AMO 中用以編寫物件與作業之指令碼的機制,將會使用 XMLA 來編寫物件與作業的指令碼。
若要開始擷取 XML,需要將 CaptureXML 伺服器物件屬性設定為 true。接著所有要傳送到伺服器的動作都會在 CaptureLog 類別中開始擷取,而不必將動作傳送到伺服器。CaptureLog 被視為類別,因為它有 Clear 這個可用來清除擷取記錄的方法。
若要讀取記錄,請取得字串集合並開始對字串反覆運算。另外,您可以使用伺服器物件方法 ConcatenateCaptureLog,將所有的記錄串連成一個字串。ConcatenateCaptureLog 有三個參數,其中有兩個是必要的。兩個必要的參數分別是布林類型的 transactional 和 parallel。如果將 transactional 設定為 true,表示會將 XML 批次檔案建立成單一交易,而不是將每個命令視為個別交易。如果將 parallel 設定為 true,表示將以並行執行方式記錄批次檔案中的所有命令,而不是以循序方式來記錄。
AMOException 例外狀況類別
您可以使用 AMOException 例外狀況類別,輕鬆地擷取應用程式中由 AMO 擲回的例外狀況。
AMO 在找到不同的問題時將會擲回例外狀況。下表列出 AMO 所處理的例外狀況種類。例外狀況是從 AmoException 類別衍生。
例外狀況 |
起源 |
描述 |
---|---|---|
基底類別 |
當必要的父物件遺失時,或是當集合中找不到要求的項目時,應用程式會收到這個例外狀況。 |
|
衍生自 AMOException |
當 AMO 與引擎不同步,而且引擎傳回 AMO 不認識的物件參考時,應用程式會收到這個例外狀況。 |
|
衍生自 AMOException |
這是應用程式經常收到的重要例外狀況。這個例外狀況包含來自伺服器的錯誤詳細資料,有可能是因為 Update、Process 或 Drop 等錯誤的 AMO 作業所造成。 |
|
衍生自 AMOException |
當引擎以 AMO 不了解的格式傳回訊息時,就會發生這個例外狀況。 |
|
衍生自 AMOException |
當無法 (以 Server.Connect ) 建立連接,或是當 AMO 與引擎通訊而遺失連接時 (例如在 Update、Process 或 Drop 期間),就會發生這個例外狀況。 |