匯出資料層應用程式

適用於: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,您必須至少擁有 ALTER ANY 登入和資料庫層級 VIEW DEFINITION 權限,以及 sys.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 的名稱,以及要放置匯出檔之資料夾的路徑。

限制事項

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 中,開啟系統屬性>屬性,然後選取標示為進階系統設定的連結。

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

  • 系統變數區段下,找出 TEMP 和 TMP 變數,然後選取與每個變數關聯的編輯

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

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