共用方式為


移動分析服務資料庫

當 Analysis Services 資料庫管理員 (dba) 想要將多維度或表格式模型資料庫移至不同的位置時,通常會有這種情況。 這些情況通常是由商務需求驅動,例如將資料庫移至不同的磁碟,以獲得更好的效能、取得資料庫成長空間,或升級產品。

資料庫可以透過許多方式移動。 本文件說明下列常見案例:

  • 以互動方式使用 SSMS

  • 以程序設計方式使用 AMO

  • 通過脚本使用 XMLA

所有案例都需要使用者存取資料庫資料夾,並使用方法將檔案移至所需的最終目的地。

備註

卸離資料庫而不指派密碼給資料庫,讓資料庫處於不安全的狀態。 我們建議將密碼指派給資料庫,以保護機密資訊。 此外,應將對應的存取安全性套用至資料庫資料夾、子資料夾和檔案,以防止未經授權的存取。

程序

使用 SSMS 互動地移動資料庫

  1. 找出要移至 SSMS 左窗格或右窗格中的資料庫。

  2. 以滑鼠右鍵點選資料庫,然後選取 [中斷連結...]

  3. 將密碼指派給要卸離的資料庫,然後按兩下 [ 確定 ] 以執行卸離命令。

  4. 使用任何作系統機制或標準方法來移動檔案,將資料庫資料夾移至新位置。

  5. 在 SSMS 的左窗格或右窗格中找出 [資料庫] 資料夾。

  6. 以滑鼠右鍵按兩下 [ 資料庫] 資料夾,然後選取 [ 附加...

  7. 資料夾 文字框中,輸入資料庫資料夾的新位置。 或者,您可以使用瀏覽按鈕 (...) 來尋找資料庫資料夾。

  8. 選取資料庫的ReadWrite模式。

  9. 輸入步驟 3 中使用的密碼,然後按下 [ 確定 ] 以執行附加命令。

使用 AMO 以程式設計方式移動一個資料庫

  1. 在您的 C# 應用程式中,調整下列範例程式代碼並完成指示的工作。

private void MoveDb(Server server, string dbName,

string dbInitialLocation, string dbFinalLocation,

string dbPassword, ReadWriteMode dbReadWriteMode)

{

//Verify dbInitialLocation exists before continuing

if (server.Databases.ContainsName(dbName))

{

Database db;

//Save current cursor and change cursor to Cursors.WaitCursor

db = server.Databases[dbName];

db.Detach(dbPassword);

//Add your own code to copy the database files to the destination where you intend to attach the database

//Verify dbFinalLocation exists before continuing

server.Attach(dbFinalLocation, dbReadWriteMode, dbPassword);

//Restore cursor to its original

}

}

  1. 在您的 C# 應用程式中,呼叫MoveDb() 並提供必要的參數。

  2. 編譯並執行程式代碼以移動資料庫。

使用 XMLA 腳本移動資料庫

  1. 在 SSMS 中開啟新的 XMLA 索引標籤。

  2. 複製 XMLA 的下列文本範本範本

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. %dbName% 取代為資料庫的名稱,並將 %password% 取代為密碼。 % 字元是範本的一部分,必須移除。

  2. 執行 XMLA 命令。

  3. 使用任何作系統機制或標準方法來移動檔案,將資料庫資料夾移至新位置。

  4. 在新的 XMLA 頁籤中複製下列 XMLA 的腳本範本。

<Attach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Folder>%dbFolder%</Folder>

<ReadWriteMode xmlns="https://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>

</Attach>

  1. %dbFolder%替換為資料庫資料夾的完整 UNC 路徑,將%ReadOnlyMode%替換為對應的ReadOnlyReadWrite值,並將%password%替換為密碼。 % 字元是範本的一部分,必須移除。

  2. 執行 XMLA 命令。

另請參閱

Attach*
Microsoft.AnalysisServices.Database.Detach*
附加和卸載分析服務資料庫
資料庫儲存位置
Database ReadWriteModes
附加元素
分離元素
ReadWriteMode 元素
DbStorageLocation 元素