如何:從資料庫中擷取 DAC
您可以使用 [擷取資料層應用程式] 精靈或 Windows PowerShell 指令碼,從現有的 SQL Server 資料庫中擷取資料層應用程式 (DAC) 封裝。 此擷取程序會建立 DAC 封裝檔案,其中包含資料庫物件及其相關執行個體層級元素的定義。 例如,DAC 封裝檔案會包含資料庫資料表、預存程序、檢視表、使用者以及對應至資料庫使用者的登入。
您可以從位於 SQL Azure 或是 SQL Server 2005 Service Pack 4 (SP4) 或更新版本之執行個體的資料庫中擷取 DAC。
[擷取資料層應用程式] 精靈不會在目前的 Database Engine 執行個體中註冊 DAC 定義。 如需有關註冊 DAC 的詳細資訊,請參閱<如何:將資料庫註冊為 DAC>。
使用 PowerShell 擷取 DAC
建立和執行指令碼
建立 ExtractDAC.ps1 檔案。
加入程式碼以建立 SMO Server 物件並將它設定為包含您想要從中擷取 DAC 之資料庫的執行個體。 此範例會將 Server 物件設定為本機電腦上的預設執行個體:
## Set a SMO Server object to the default instance on the local computer. CD SQLSERVER:\SQL\localhost\DEFAULT $srv = get-item .
加入程式碼以指定資料庫。 此範例會指定名為 MyDB 的資料庫:
## Specify the database to extract to a DAC. $dbname = "MyDB"
指定 DAC 的中繼資料。 此範例會指定 DAC 名稱、版本和描述:
## Specify the DAC metadata. $applicationname = "MyApplication" $version = "1.0.0.0" $description = "This DAC defines the database used by my application."
針對擷取的 DAC 封裝檔案指定路徑和檔案名稱。
## Specify the location and name for the extracted DAC package. $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
加入程式碼以使用上述指定的資訊執行 Extract 方法。
## Extract the DAC. $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version) $extractionunit.Description = $description $extractionunit.Extract($dacpacPath)
從您已載入 SQL Server PowerShell 嵌入式管理單元的 PowerShell 工作階段執行 ExtractDAC.ps1,或使用 sqlps 命令提示字元公用程式。
擷取資料層應用程式精靈
若要開啟擷取資料層應用程式精靈
在 [物件總管] 中,展開 [資料庫]、以滑鼠右鍵按一下資料庫、指向 [工作],然後按一下 [擷取資料層應用程式]。
遵循精靈中的步驟,以便根據您所選取的資料庫建立 DAC 封裝。 如需詳細資訊,請參閱<擷取資料層應用程式精靈 F1 說明>。
變更記錄
更新的內容 |
---|
加入了使用 PowerShell 的相關章節。 |