共用方式為


AMO 其他類別和方法

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

本節包含非 OLAP 或數據採礦特有的通用類別,而且在 Analysis Services 中管理或管理物件時很有説明。 這些類別涵蓋預存程式、追蹤、例外狀況和備份和還原等功能。

下圖顯示本主題所說明類別的關聯性。

AMO 其他類別

元件物件

Assembly 對像是藉由使用 Update 方法,將它新增至伺服器的元件集合,然後將 Assembly 物件更新至伺服器來建立。

若要移除 Assembly 對象,必須使用 Assembly 物件的Drop方法卸除它。 從資料庫的元件集合中移除 Assembly 物件並不會卸載元件,它只會防止您在應用程式中看到該物件,直到下次執行應用程式為止。

如需可用方法和屬性的詳細資訊,請參閱 Microsoft.AnalysisServices 中的 Assembly

重要

COM 元件可能會造成安全性風險。 由於此風險和其他考慮,不再支援 COM 元件。

備份和還原方法

備份和還原是可用來建立資料庫複本,並使用復本復原資料庫的方法。 Backup 方法屬於 Database 物件,而 Restore 方法則屬於 Server 物件。

只允許伺服器和資料庫管理員執行資料庫的備份。 只有伺服器管理員可以將資料庫還原到與備份來源不同的伺服器。 資料庫管理員只有在擁有要覆寫的資料庫時,才能覆寫現有的資料庫來還原資料庫。 還原之後,如果資料庫使用其原始安全性定義進行還原,資料庫管理員可能會失去還原資料庫的存取權。

資料庫備份文件必須具有 .abf 擴展名。

備份方法

若要備份資料庫,請使用具有備份檔名稱做為參數的資料庫物件的Backup方法。

預設值

AllowOverwrite=false

BackupRemotePartitions=false

Security=CopyAll

ApplyCompression=true

還原方法

若要將資料庫還原至伺服器,請使用伺服器的 Restore 方法搭配備份檔做為參數。

預設值

AllowOverwrite=false

DataSourceType=Remote

Security=CopyAll

限制

  1. 本機分割區無法還原為遠端分割區。

  2. 遠端分割區無法還原為本機分割區,但遠端分割區會還原到與備份位置不同的伺服器上。

備份和還原方法的常見參數和屬性

  • 檔案 是要備份的檔名(UNC 名稱)到/從中。

  • 位置 指定伺服器特定的備份資訊,例如 BackupFile。這可讓您指定遠端資料庫的個別備份檔。

  • DatasourceID 指定遠端伺服器中次級資料庫的識別碼。

  • ConnectionString 可讓您在遠端伺服器變更時調整遠端數據源。 當 ConnectionString 存在時,必須一律指定 DatasourceID。

  • 資料夾 允許重新對應本機硬碟上分割區的資料夾

  • 原始 是本機分割區的原始資料夾。

  • 是本機分割區的新位置,用來位於對應 『Original』 舊資料夾中。

  • 密碼,如果非空白,則指定伺服器將加密備份檔。

追蹤物件

追蹤是用來監視、重新執行及管理 Analysis Services 實例的架構。 用戶端應用程式,例如 SQL Profiler,會訂閱追蹤,而伺服器會傳回追蹤事件,如追蹤定義中所指定。

每個事件都會由事件類別描述。 事件類別描述產生的事件類型。 在事件類別中,事件子類別會描述更精細的分類層級。 每個事件都會由數個數據行描述。 描述追蹤事件的數據行適用於所有事件,且符合 SQL 追蹤結構。 每個數據行中記錄的資訊可能會因事件類別而有所不同;也就是說,每個追蹤都會定義一組預先定義的數據行,但數據行的意義可能會因事件類別而有所不同。 例如,TextData 數據行用來記錄所有語句事件的原始 ASSL。

追蹤定義可以包含一或多個要同時追蹤的事件類別。 針對每個事件類別,可以將一或多個數據行加入至追蹤定義,但並非所有追蹤數據行都必須使用。 資料庫管理員可以決定追蹤中要包含哪些可用的數據行。 此外,可以根據追蹤中任何數據行的篩選準則,選擇性地追蹤事件類別。

追蹤可以啟動和刪除。 您可以隨時執行多個追蹤。 追蹤事件可以即時擷取或導向至檔案,以供稍後分析或重新執行。 SQL Profiler 是用來分析及重新執行追蹤事件的工具。 允許多個連線接收來自相同追蹤的事件。

追蹤可以分成兩個群組:伺服器追蹤和會話追蹤。 伺服器追蹤會通知伺服器中的所有事件;會話追蹤只會通知目前會話中的事件。

來自伺服器追蹤集合中的追蹤會以下列方式定義:

  1. 建立 Trace 物件並填入其基本數據,包括追蹤標識符、名稱、記錄檔名稱、append|overwrite 和其他數據。

  2. 將要監視的事件新增至追蹤物件的 Events 集合。 針對每個事件,會新增數據行。

  3. 將 [篩選] 設定為排除不必要的數據列,方法是將它們新增至篩選集合。

  4. 啟動追蹤;建立追蹤並不會開始收集數據。

  5. 停止追蹤。

  6. 使用 SQL Profiler 檢閱追蹤檔案。

從工作階段物件取得追蹤的方式如下:

  1. 定義函式,以處理 SessionTrace 在應用程式中產生的追蹤事件。 可能的事件為 OnEvent 和 Stopped。

  2. 將已定義的函式新增至事件處理程式。

  3. 啟動工作階段追蹤。

  4. 執行您的程式,並讓函式處理程式擷取事件。

  5. 停止會話追蹤。

  6. 繼續您的應用程式。

CaptureLog 類別和 CaptureXML 屬性

AMO 要執行的所有動作都會以 XMLA 訊息的形式傳送至伺服器。 AMO 提供方法來擷取不含 SOAP 標頭的所有訊息。 如需詳細資訊,請參閱 AMO 類別簡介。 CaptureLog 是 AMO 中用來編寫對象和作業腳本的機制;對象和作業將在 XMLA 中編寫文本。

若要開始擷取 XML,CaptureXML 伺服器物件屬性必須設定為 true 。 然後,要傳送至伺服器的所有動作將會開始在 CaptureLog 類別中擷取,而不會將動作傳送至伺服器。 CaptureLog 會被視為類別,因為它有一個用來清除擷取記錄的方法 Clear。

若要讀取記錄檔,您會取得字串集合,並開始逐一查看字串。 此外,您可以使用伺服器物件方法 ConcatenateCaptureLog,將所有記錄串連到字串中。 ConcatenateCaptureLog 需要三個參數,其中兩個是必要參數。 必要的參數是布爾型別的交易式,以及布爾型別 平行。 如果 交易式 設定為 true ,表示 XML 批處理檔會建立為單一交易,而不是將每個命令視為分隔交易。 如果 平行 設定為 true,表示批處理檔中的所有命令都會記錄為並行執行,而不是依序記錄。

AMOException 例外狀況類別

您可以使用 AMOException 例外狀況類別,輕鬆地攔截 AMO 擲回之應用程式中的例外狀況。

AMO 會在發現的不同問題時擲回例外狀況。 下表列出 AMO 所處理的例外狀況種類。 例外狀況衍生自 AmoException 類別。

例外 起源 描述
AmoException 基類 當遺漏必要的父物件,或集合中找不到要求的專案時,應用程式會收到此例外狀況。
OutOfSyncException 衍生自 AMOException 當 AMO 與引擎同步處理不足,且引擎傳回 AMO 不知道的物件參考時,應用程式會收到這個例外狀況。
OperationException 衍生自 AMOException 這是應用程式經常收到的重要例外狀況。 此例外狀況包含來自伺服器之錯誤的詳細數據,可能是因為更新或進程或卸除等錯誤 AMO 作業。
ResponseFormatException 衍生自 AMOException 當引擎以 AMO 不瞭解的格式傳回訊息時,就會發生此例外狀況。
ConnectionException 衍生自 AMOException 當無法建立連線(使用 Server.Connect)或 AMO 與引擎通訊時連線遺失時,就會發生此例外狀況(例如,在更新或進程或卸載期間)。