在 XML for Analysis 中,有三個命令可備份、還原及同步處理資料庫:
備份命令會使用 Analysis Services 備份檔 (.abf) 備份Microsoft SQL Server Analysis Services 資料庫,如備份資料庫一節所述。
Synchronize 命令會將一個 Analysis Services 資料庫與另一個資料庫的數據和元數據同步處理,如同步處理資料庫一節所述。
備份資料庫
如先前所述, Backup 命令會將指定的 Analysis Services 資料庫備份至備份檔。
Backup命令具有各種屬性,可讓您指定要備份的資料庫、要使用的備份檔、如何備份安全性定義,以及要備份的遠端分割區。
這很重要
Analysis Services 服務帳戶必須具有寫入每個檔案所指定備份位置的許可權。 此外,用戶必須具有下列其中一個角色:Analysis Services 實例上的系統管理員角色,或具有要備份之資料庫的完整控制(系統管理員)許可權的資料庫角色成員。
指定資料庫和備份檔
若要指定要備份的資料庫,您可以設定命令的 BackupObject 屬性。 屬性 Object 必須包含資料庫的物件標識符,否則會發生錯誤。
若要指定備份程式所要建立及使用的檔案,您可以設定 命令的 BackupFile 屬性。 屬性 File 應該設定為 UNC 路徑,以及要建立之備份文件的檔名。
除了指定要用於備份的檔案之外,您還可以為指定的備份檔設定下列選項:
如果您將 AllowOverwrite 屬性設定為 true,
Backup則命令會在指定的檔案已經存在時覆寫備份檔。 如果您將AllowOverwrite屬性設定為 false,如果指定的備份檔已經存在,就會發生錯誤。如果您將 ApplyCompression 屬性設定為 true,則會在建立檔案之後壓縮備份檔。
如果您將 Password 屬性設定為任何非空白值,則備份檔會使用指定的密碼加密。
這很重要
如果未
ApplyCompression指定 和Password屬性,備份檔會以純文本儲存連接字串中包含的使用者名稱和密碼。 可以擷取以純文本儲存的數據。 為了提高安全性,請使用ApplyCompression和Password設定來壓縮和加密備份檔。
備份安全性設定
Security 屬性會決定命令是否Backup備份 Analysis Services 資料庫上定義的安全性定義,例如角色和許可權。 屬性 Security 也會決定備份檔是否包含定義為安全性定義成員的 Windows 使用者帳戶和群組。
屬性的值 Security 限製為下表所列的其中一個字串。
| 價值觀 | 說明 |
|---|---|
| SkipMembership | 在備份檔中包含安全性定義,但排除成員資格資訊。 |
| CopyAll | 在備份檔中包含安全性定義和成員資格資訊。 |
| IgnoreSecurity | 從備份檔排除安全性定義。 |
備份遠端數據分割
若要備份 Analysis Services 資料庫中的遠端分割區,您可以將命令的 BackupBackupRemotePartitions 屬性設定為 true。 此設定會讓 Backup 命令為每個用來儲存資料庫遠端資料分割的遠端數據源建立遠端備份檔。
若要備份每個遠端數據源,您可以藉由在命令的 BackupLocations 屬性中包含 Location 元素來指定其對應的備份檔。 元素 Location 應將其 File 屬性設定為遠端備份檔的 UNC 路徑和檔名,而其 DataSourceID 屬性設定為資料庫中定義的遠端數據源標識碼。
還原資料庫
命令 Restore 會從備份檔還原指定的 Analysis Services 資料庫。 命令 Restore 具有各種屬性,可讓您指定要還原的資料庫、要使用的備份檔、如何還原安全性定義、要儲存的遠端分割區,以及重新配置關係型 OLAP (ROLAP) 物件。
這很重要
對於每個備份文件,執行 restore 命令的用戶必須具有讀取每個檔案所指定備份位置的許可權。 若要還原未安裝在伺服器上的 Analysis Services 資料庫,使用者也必須是該 Analysis Services 實例的伺服器角色成員。 若要覆寫 Analysis Services 資料庫,用戶必須具有下列其中一個角色:Analysis Services 實例的伺服器角色成員,或具有要還原之資料庫的完整控制(系統管理員)許可權的資料庫角色成員。
備註
還原現有資料庫之後,還原資料庫的使用者可能會失去還原資料庫的存取權。 如果在執行備份時,使用者不是伺服器角色的成員,或不是具有「完全控制」許可權的資料庫角色成員,就可能發生這種存取遺失。
指定資料庫和備份檔
命令 DatabaseName 的 Restore 屬性必須包含資料庫的物件識別碼,或發生錯誤。 如果指定的資料庫已經存在,屬性 AllowOverwrite 會決定是否覆寫現有的資料庫。 如果 屬性 AllowOverwrite 設定為 false 且指定的資料庫已經存在,就會發生錯誤。
您應該將 File 命令的 Restore 屬性設定為 UNC 路徑和檔名,以便將備份檔還原至指定的資料庫。 您也可以指定的備份檔案設定 Password 屬性。
Password如果屬性設定為任何非空白值,則會使用指定的密碼解密備份檔。 如果備份檔未加密,或指定的密碼不符合用來加密備份文件的密碼,則會發生錯誤。
還原安全性設定
屬性 Security 會決定命令是否 Restore 還原 Analysis Services 資料庫上定義的角色和許可權等安全性定義。 屬性 Security 也會判斷命令是否 Restore 包含定義為安全性定義成員的 Windows 使用者帳戶和群組,做為還原程式的一部分。
此元素的值限製為下表所列的其中一個字串。
| 價值觀 | 說明 |
|---|---|
| SkipMembership | 在資料庫中包含安全性定義,但排除成員資格資訊。 |
| CopyAll | 在資料庫中包含安全性定義和成員資格資訊。 |
| IgnoreSecurity | 從資料庫排除安全性定義。 |
還原遠端數據分割
針對在上Backup一個Location命令期間建立的每個遠端備份檔,您可以藉由在 命令的 Restore 屬性中包含 Locations 元素來還原其相關聯的遠端分割區。 每個專案的 DataSourceType 屬性 Location 都必須排除或明確設定為 Remote。
針對每個指定的 Location 專案,Analysis Services 實例會連絡 屬性中指定的 DataSourceID 遠端數據源,以還原 屬性中所 File 指定遠端備份檔中定義的分割區。
DataSourceID除了 和 File 屬性之外,每個用來還原遠端分割區的專案Location都可以使用下列屬性:
若要覆寫 中
DataSourceID指定之遠端資料源的連接字串,您可以將 項目的 屬性Location設定ConnectionString為不同的連接字串。 命令Restore接著會使用 屬性中包含的ConnectionString連接字串。 如果未ConnectionString指定 ,命令會Restore使用儲存在備份檔中的連接字串,供指定的遠端數據源使用。 您可以使用ConnectionString設定,將遠端分割區移至不同的遠端實例。 不過,您無法使用ConnectionString設定,將遠端分割區還原至包含還原資料庫的相同實例。 換句話說,您無法使用ConnectionString屬性將遠端分割區設為本機分割區。針對用來將遠端資料分割儲存在遠端數據源上的每個原始資料夾,您可以指定 Folder 元素,指出要在其中還原儲存在原始資料夾中的所有遠端分割區的新資料夾。
Folder如果未指定專案,Restore命令會使用針對遠端備份檔中包含的遠端分割區所指定的原始資料夾。
重新配置 ROLAP 物件
Restore命令無法還原使用 ROLAP 記憶體之物件的匯總或數據,因為這類資訊會儲存在基礎關係型數據源上的數據表中。 不過,可以還原 ROLAP 物件的元數據。 若要還原 ROLAP 物件的元數據, Restore 命令會在關係型數據源上重新建立數據表結構。
您可以使用 Location 命令中的 Restore 元素來重新放置 ROLAP 物件。 對於用來重新放置數據源的每個 Location 元素, DataSourceType 屬性必須明確設定為 Local。 您也必須將 項目的 屬性Location設定ConnectionString為新位置的連接字串。 在還原期間,Restore命令會將 元素的 Location 屬性所DataSourceID識別之數據源的連接字串取代為 ConnectionString 元素的 Location 屬性值。
同步處理資料庫
此命令 Synchronize 會將指定 Analysis Services 資料庫的數據和元數據與其他資料庫同步處理。
Synchronize命令具有各種屬性,可讓您指定源資料庫、如何同步處理安全性定義、要同步處理的遠端數據分割,以及 ROLAP 物件的同步處理。
備註
Synchronize命令只能由伺服器管理員和資料庫管理員執行。 來源和目的地資料庫必須具有相同的資料庫相容性層級。
指定源資料庫
命令的 SynchronizeSource 屬性包含兩個屬性與 ConnectionStringObject。 屬性 ConnectionString 包含包含源資料庫的實例連接字串,而 Object 屬性則包含源資料庫的物件識別元。
目的地資料庫是執行命令之會話 Synchronize 的目前資料庫。
ApplyCompression如果命令的 Synchronize 屬性設定為 true,則從源資料庫傳送到目的地資料庫的資訊會在傳送之前壓縮。
同步處理安全性設定
SynchronizeSecurity 屬性會決定命令是否會Synchronize同步處理源資料庫上定義的角色和許可權等安全性定義。 屬性 SynchronizeSecurity 也會判斷命令是否 Sychronize 包含定義為安全性定義成員的 Windows 使用者帳戶和群組。
此元素的值限製為下表所列的其中一個字串。
| 價值觀 | 說明 |
|---|---|
| SkipMembership | 在目的地資料庫中包含安全性定義,但排除成員資格資訊。 |
| CopyAll | 在目的地資料庫中包含安全性定義和成員資格資訊。 |
| IgnoreSecurity | 從目的地資料庫排除安全性定義。 |
同步處理遠端數據分割
針對源資料庫上存在的每個遠端數據源,您可以藉由在 Location 命令 的 Synchronize 屬性中包含 Locations 元素,來同步處理每個相關聯的遠端分割區。 對於每個 Location 元素, DataSourceType 屬性必須排除或明確設定為 Remote。
若要定義並連接到目的地資料庫中的遠端資料源,Synchronize命令會使用 元素的屬性Location中ConnectionString定義的連接字串。 命令 Synchronize 接著會使用 DataSourceID 項目的 屬性 Location 來識別要同步處理的遠端分割區。
Synchronize命令會同步處理源資料庫上屬性所DataSourceID指定遠端數據源上的遠端數據分割,以及目的地資料庫上 屬性中指定的DataSourceID遠端數據源。
針對每個用來將遠端資料分割儲存在源資料庫之遠端數據源的原始資料夾,您也可以在 元素中Location指定 Folder 元素。 元素 Folder 表示目的地資料庫的新資料夾,用來同步處理儲存在遠端數據源上原始資料夾中的所有遠端分割區。
Folder如果未指定專案,Synchronize 命令會使用源資料庫中所包含遠端資料分割所指定的原始資料夾。
同步處理 ROLAP 物件
Synchronize命令無法同步處理使用 ROLAP 記憶體之物件的匯總或數據,因為這類資訊會儲存在基礎關係型數據源上的數據表中。 不過,可以同步處理 ROLAP 物件的元數據。 若要同步處理元數據, Synchronize 命令會在關係型數據源上重新建立數據表結構。
您可以使用 Location Synchronize 命令中的 元素來同步處理 ROLAP 物件。 對於用來重新放置數據源的每個 Location 元素, DataSourceType 屬性必須明確設定為 Local。 . 您也必須將 項目的 屬性Location設定ConnectionString為新位置的連接字串。 在同步處理期間,Synchronize命令會將 元素的 屬性Location所DataSourceID識別數據源的連接字串取代為 ConnectionString 元素的 Location 屬性值。