移動 Analysis Services 資料庫
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services 資料庫管理員 (dba) 想要將多維度或表格式模型資料庫移至不同位置時,通常會發生的情況。 這些情況通常是由商務需求驅動,例如將資料庫移至不同的磁碟,以獲得更好的效能、取得資料庫成長空間,或升級產品。
資料庫可以透過許多方式移動。 本文件說明下列常見案例:
以互動方式使用SSMS
以程序設計方式使用 AMO
使用 XMLA 編寫文本
所有案例都需要使用者存取資料庫資料夾,並使用方法將檔案移至所需的最終目的地。
注意
卸離資料庫而不指派密碼給資料庫,讓資料庫處於不安全的狀態。 我們建議將密碼指派給資料庫,以保護機密資訊。 此外,應將對應的存取安全性套用至資料庫資料夾、子資料夾和檔案,以防止未經授權的存取。
程式
使用SSMS以互動方式行動資料庫
找出要移至 SSMS 左窗格或右窗格中的資料庫。
以滑鼠右鍵按兩下資料庫,然後選取 [卸離...
將密碼指派給要卸離的資料庫,然後按兩下 [確定] 以執行卸離命令。
使用任何操作系統機制或標準方法來移動檔案,將資料庫資料夾移至新位置。
在 SSMS 的左窗格或右窗格中,找出 [Databases] 資料夾。
以滑鼠右鍵按兩下 [資料庫] 資料夾,然後選取 [附加...
在 [資料夾] 文字框中,輸入資料庫資料夾的新位置。 或者,您可以使用瀏覽按鈕 (...) 來尋找資料庫資料夾。
選取資料庫的 ReadWrite 模式。
輸入步驟 3 中使用的密碼,然後按兩下 [確定] [確定] 以執行附加命令。
使用 AMO 以程式設計方式行動資料庫
- 在您的 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
}
}
在您的 C# 應用程式中,使用必要的參數叫用
MoveDb()
。編譯並執行程式代碼以移動資料庫。
使用 XMLA 文稿移動資料庫
在 SSMS 中開啟新的 XMLA 索引標籤。
複製 XMLA 的下列文本範本範本
<Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
將
%dbName%
取代為資料庫名稱,並以密碼%password%
。 % 字元是範本的一部分,必須移除。執行 XMLA 命令。
使用任何操作系統機制或標準方法來移動檔案,將資料庫資料夾移至新位置。
在新的 XMLA 索引標籤中複製 XMLA 的下列腳本範本範本
<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Folder>%dbFolder%</Folder>
<ReadWriteMode xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>
</Attach>
將
%dbFolder%
取代為資料庫資料夾的完整 UNC 路徑,%ReadOnlyMode%
以對應的值 ReadOnly 或 ReadWrite,並以密碼%password%
。 % 字元是範本的一部分,必須移除。執行 XMLA 命令。
另請參閱
附加和卸離 Analysis Services 資料庫
資料庫儲存位置
Database ReadWriteModes
Attach 元素
Detach 元素
ReadWriteMode 元素
DbStorageLocation 元素