匯出資料層應用程式

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

匯出已部署的資料層應用程式 (DAC) 或資料庫,會建立匯出檔,而此檔案包含資料庫中物件的定義以及資料表中所含的所有資料。 然後可以將匯出檔匯入到資料庫引擎的另一個執行個體,或匯入到 Azure SQL 資料庫。 您可以合併匯出/匯入作業,以在執行個體之間移轉 DAC、建立封存或針對 SQL Database 中所部署的資料庫建立內部部署複本。

開始之前

匯出程序會使用兩個階段來建立 DAC 匯出檔。

  1. 匯出會在匯出檔 (BACPAC 檔案) 中建置 DAC 定義,其方式相當於 DAC 擷取在 DAC 套件檔案中建置 DAC 定義。 匯出的 DAC 定義包含目前資料庫中的所有物件。 如果匯出程序是針對原本從 DAC 部署的資料庫來執行,並已在部署之後直接變更資料庫,則匯出的定義會符合資料庫中所設定的物件,而非原始 DAC 中所定義的物件。

  2. 匯出會大量複製資料庫中所有資料表的資料,並將資料合併至匯出檔。

匯出程序會將 DAC 版本設定為 1.0.0.0,而將匯出檔中的 DAC 描述設定為空字串。 如果已從 DAC 部署資料庫,則匯出檔中的 DAC 定義會包含指定給原始 DAC 的名稱,否則,DAC 名稱會設定為資料庫名稱。

限制事項

DAC 或資料庫只能從 SQL Database 或 SQL Server 2005 (9.x) Service Pack 4 (SP4) 或更新版本中的資料庫匯出。

如果 DAC 或包含的使用者中不支援資料庫的物件,則無法匯出資料庫。 如需有關 DAC 中支援之物件類型的詳細資訊,請參閱< DAC Support For SQL Server Objects and Versions>。

如果偶爾收到因磁碟空間不足而失敗訊息,建議您將系統的 %TEMP% 資料夾設定為位於不同的資料磁碟上。 這樣,就可以確保匯出程序有足夠的空間順暢執行,避免潛在的磁碟空間並發問題。

若要設定系統的 %TEMP% 資料夾:

  • 按下 Windows 鍵 + Pause/Break 或以滑鼠右鍵按一下 [這部電腦],然後選取 [屬性],以開啟 [系統屬性] 視窗。

  • 選取左側標示為 [進階系統設定] 的連結。

  • 在隨後的 [系統屬性] 視窗中,瀏覽至底部,然後選取 [環境變數]。

  • 在標示為 [系統變數] 的區段下,找出 TEMP 和 TMP 變數,然後選取與每個變數相關聯的 [編輯]

  • 修改這兩個變數的值,以指向您已建立之單獨資料磁碟上的路徑。 例如,如果資料磁碟指定為 D:,請將值設定為 D:\Temp

  • 選取 [確定] 並關閉所有開啟的視窗,以確認變更。

權限

若要匯出 DAC,您必須至少擁有 ALTER ANY 登入和資料庫層級 VIEW DEFINITION 權限,以及 ssys.sql_expression_dependencies 上的 SELECT 權限。 對於在 DAC 的來源資料庫中擔任 securityadmin 固定伺服器角色和 database_owner 固定資料庫角色的個人來說,此任務是可實現的。 此外,對於屬於 sysadmin 固定伺服器角色或有權存取名為 sa 之內建 SQL Server 系統管理員帳戶的人員而言,匯出 DAC 是可行的。

在 Azure SQL Database 上,您需要針對每個資料庫授與所有資料表或特定資料表的 VIEW DEFINITION 與 SELECT 權限

使用匯出資料層應用程式精靈

若要使用精靈匯出 DAC

  1. 連線至 SQL Server 的執行個體,無論是內部部署或在 SQL Database 中。

  2. 在物件總管 中,展開您要匯出 DAC 的執行個體來源節點。

  3. 以滑鼠右鍵按一下資料庫名稱。

  4. 選取 [任務],然後選取 [匯出資料層應用程式...]

  5. 完成精靈對話方塊:

簡介頁面

此頁面描述匯出資料層應用程式精靈的步驟。

選項

不要再顯示此頁面 - 選取此核取方塊,之後就不會再顯示 [簡介] 頁面。

下一步 - 繼續進行 [Select DAC Package (選取 DAC 封裝)] 頁面。

取消 - 取消作業並關閉精靈。

匯出設定頁面

請使用此頁面來指定要建立 BACPAC 檔案的位置。

  • 儲存至本機磁碟 - 在本機電腦的目錄中建立 BACPAC 檔案。 選取 [瀏覽...] 巡覽本機電腦,或在提供的空間中指定路徑。 路徑名稱必須包含檔案名稱和 .bacpac 副檔名。

  • 儲存至 Azure - 在 Azure 容器中建立 BACPAC 檔案。 您必須連線到 Azure 容器,才能驗證此選項。 此選項也會要求您指定暫存檔案的本機目錄。 暫存檔將建立在指定的位置,而且作業完成之後,將保留在該位置。

若要指定要匯出的資料表子集,請使用 [進階] 選項。

驗證頁面

您可以使用 [驗證] 頁面來檢閱封鎖作業的任何問題。 若要繼續進行,請解決封鎖問題,然後選取 [重新執行驗證] 確定驗證成功。

若要繼續,請選取 [下一步]。

摘要頁面

您可以使用此頁面來檢閱作業的指定來源和目標設定。 若要使用指定的設定來完成匯出操作,請選取 [完成]。 若要取消匯出操作並結束精靈,請選取 [取消]

進度頁面

此頁面會顯示進度列,指出作業的狀態。 若要檢視詳細狀態,請選取 [檢視詳細資料] 選項。

結果頁面

此頁面會報告匯出作業成功或失敗,並顯示每個動作的結果。 發生錯誤的所有動作在 [結果] 資料行中都會有一個連結。 選取連結來檢視該動作的錯誤報告。

選取 [完成] 以關閉精靈。

使用 .NET Framework 應用程式

在 .Net Framework 應用程式中使用 Export() 方法,匯出 DAC。

  1. 建立 SMO Server 物件,並將它設定為包含要匯出之 DAC 的執行個體。

  2. 開啟 ServerConnection 物件,並連接到相同的執行個體。

  3. 使用 Microsoft.SqlServer.Management.Dac.DacStore 類型的 Export 方法,匯出 DAC。 指定要匯出之 DAC 的名稱,以及要放置匯出檔之資料夾的路徑。

另請參閱