Share via


資料層應用程式

資料層應用程式 (DAC) 是邏輯資料庫管理實體,會定義與使用者資料庫相關聯的所有 SQL Server 物件,如資料表、檢視表,以及包括登入的執行個體物件。 DAC 是 SQL Server 資料庫部署的自主單位,可讓資料層開發人員和資料庫管理員將 SQL Server 物件包裝為可攜式成品,稱為 DAC 封裝,又稱為 DACPAC。

BACPAC 是相關的成品,會封裝資料庫結構描述,以及在資料庫中儲存的資料。

資料層應用程式的優點

大多數資料庫應用程式的開發週期包含開發人員和 DBA 共用及交換應用程式更新和維護活動的指令碼和特定整合注意事項。 雖然這對小量資料庫是可接受的,但是一旦資料庫數目、大小和複雜性等方面都增加時,這很快會變得無法擴充。

DAC 是資料庫生命週期管理和生產力工具,讓宣告式資料庫開發可以簡化部署和管理。 開發人員可以在 SQL Server Data Tools 資料庫專案中撰寫資料庫,然後建立資料庫成為 DACPAC 以遞交給 DBA。 DBA 可以使用 SQL Server Management Studio,將 DAC 部署至 SQL Server 測試或實際執行的執行個體或 Windows Azure SQL 資料庫。 或者,DBA 可以使用 DACPAC 來升級以前使用 SQL Server Management Studio 部署的資料庫。 為了完成開發週期,DBA 可以將資料庫擷取至 DACPAC 並將它遞交給開發人員,以反映測試或實際執行調整,或啟用進一步的資料庫設計變更以回應應用程式變更。

DAC 驅動部署優於指令碼驅動方法,因為此工具協助 DBA 識別及驗證不同來源和目標資料庫的行為。 在升級期間,如果升級可能會導致資料遺失,工具會警告 DBA,而且還提供升級計畫。 DBA 可以評估該計畫,然後利用該工具進行升級。

DAC 還支援版本設定,協助開發人員和 DBA 維護和管理資料庫週期中的資料庫歷程。

DAC 概念

DAC 會簡化支援應用程式之資料層元素的開發、部署與管理:

  • 資料層應用程式 (DAC) 是邏輯資料庫管理實體,會定義與使用者資料庫相關聯的所有 SQL Server 物件,例如資料表、檢視表和執行個體物件。 它是 SQL Server 資料庫部署的自主單位,可讓資料層開發人員和 DBA 將 SQL Server 物件包裝為可攜式成品,稱為 DAC 封裝或 .dacpac 檔案。

  • SQL Server 資料庫若要被視為 DAC,必須註冊,無論是透過使用者作業明確註冊,或其中一個 DAC 作業隱含註冊。 當資料庫註冊時,就會記錄 DAC 版本和其他屬性做為資料庫中繼資料的一部分。 相反地,資料庫也可以取消註冊並移除其 DAC 屬性。

  • DAC 工具通常能夠讀取舊版 SQL Server DAC 工具所產生的 DACPAC 檔案,也可以將 DACPAC 部署至舊版 SQL Server。 不過,舊版 DAC 工具無法讀取新版 DAC 工具所產生的 DACPAC 檔案。 具體來說:

    • DAC 作業是在 SQL Server 2008 R2 中導入。 除了 SQL Server 2008 R2 資料庫之外,工具還支援 SQL Server 2008、SQL Server 2005 和 SQL Server 2000 資料庫所產生的 DACPAC 檔案。

    • 除了 SQL Server 2012 資料庫之外,SQL Server 2012 隨附的工具還可以讀取 SQL Server 2008 R2 隨附的 DAC 工具所產生的 DACPAC 檔案。 這包含 SQL Server 2008 R2、SQL Server 2008 和 SQL Server 2005 資料庫,但不包含 SQL Server 2000 資料庫。

    • SQL Server 2008 R2 的 DAC 工具無法讀取 SQL Server 2012 工具所產生的 DACPAC 檔案。

  • DACPAC 是副檔名為 .dacpac 的 Windows 檔案。 檔案支援開放式格式,包含代表 DACPAC 來源詳細資料、資料庫的物件和其他特性的多個 XML 區段。 進階使用者可以使用產品隨附的 DacUnpack.exe 公用程式來解除封裝檔案,更仔細檢查每個區段。

  • 使用者必須是 dbmanager 角色的成員或被指派 CREATE DATABASE 權限,才能建立資料庫,包括部署 DAC 封裝來建立資料庫。 使用者必須是 dbmanager 角色的成員或被指派 DROP DATABASE 權限,才能卸除資料庫。

DAC 工具

DACPAC 可以橫跨 SQL Server 2012 隨附的多個工具緊密地使用。 這些工具將 DACPAC 做為互通性單位,解決不同使用者角色的需求。

  • 應用程式開發人員

    • 資料庫開發人員可以使用 SQL Server Data Tools 資料庫專案來設計資料庫。 此專案成功建立會導致在 .dacpac 檔案中產生 DACPAC。

    • 此外,開發人員可以將 DACPAC 匯入資料庫專案中並繼續進行資料庫設計。

    • SQL Server Data Tools 還支援 Local DB,以進行未連接的用戶端資料庫應用程式開發。 開發人員可以取得此本機資料庫的快照集,以建立包含在 .dacpac 檔案中的 DACPAC。

    • 開發人員可以獨立地將資料庫專案直接發行至資料庫,甚至不需產生 DACPAC。 發行作業遵循類似於其他工具部署作業的行為。

  • 資料庫管理員

    • DBA 可以使用 SQL Server Management Studio 從現有的資料庫中擷取 DACPAC,也可以執行其他 DAC 作業。

    • 此外,SQL 資料庫 的 DBA 可以使用 SQL Azure 管理入口網站執行 DAC 作業。

  • 獨立軟體廠商

    • SQL Server 主機服務和其他資料管理產品可以使用 DACFx API 執行 DAC 作業。
  • IT 管理員

    • IT 系統整合人員和管理員可以使用 SqlPackage.exe 命令列工具執行 DAC 作業。

DAC 作業

DAC 支援下列作業:

  • EXTRACT – 使用者可將資料庫擷取到 DACPAC。

  • DEPLOY – 使用者可將 DACPAC 部署到主機伺服器。 從管理功能工具 (如 SQL Server Management Studio 或 SQL Azure 管理入口網站) 完成部署後,主機伺服器上所產生的資料庫會隱含註冊為資料層應用程式。

  • REGISTER – 使用者可將資料庫註冊為資料層應用程式。

  • UNREGISTER – 以前註冊為 DAC 的資料庫可以取消註冊。

  • UPGRADE – 可以使用 DACPAC 來升級資料庫。 即使以前未註冊為資料層應用程式的資料庫也支援升級,但因為升級,資料庫會隱含註冊。

備份封裝 (.bacpac)

BACPAC 是封裝資料庫結構描述和資料庫中所儲存之資料的成品。 BACPAC 是副檔名為 .bacpac 的 Windows 檔案。 類似於 DACPAC,BACPAC 檔案格式是開放式;BACPAC 的結構描述內容與 DACPAC 的結構描述內容相同。 資料是以 JSON 格式儲存。

DACPAC 和 BACPAC 相似,但它們以不同的案例為目標。 DACPAC 專注於擷取及部署架結構描述,包括升級現有資料庫。 DACPAC 的主要使用案例是將嚴格定義的結構描述部署至開發、測試、最後至實際執行環境,以及反向:擷取實際執行的結構描述並將它反向套用至測試和開發環境。

另一方面,BACPAC 專注於擷取結構描述和資料。 BACPAC 是資料庫備份的邏輯對等項目,並不能用來升級現有資料庫。 BACPAC 的主要使用案例是將資料庫從某個伺服器移至另個伺服器 (或從本機伺服器移至雲端),以及以開放式格式封存現有資料庫。

BACPAC 支援兩個主要作業:

  • EXPORT – 使用者可將資料庫的結構描述和資料匯出至 BACPAC。

  • IMPORT – 使用者可以將結構描述和資料匯入主機伺服器中的新資料庫。

這些功能都受到資料庫管理工具支援:Server Management Studio、SQL Azure 管理入口網站和 DACFx API。

權限

您必須是 dbmanager 角色的成員或被指派 CREATE DATABASE 權限,才能建立資料庫,包括部署 DAC 封裝來建立資料庫。 您必須是 dbmanager 角色的成員或被指派 DROP DATABASE 權限,才能卸除資料庫。

資料層應用程式工作

工作描述

主題

描述如何使用 DAC 封裝檔案來建立新的 DAC 執行個體。

部署資料層應用程式

描述如何使用新的 DAC 封裝檔案,將執行個體升級為新版的 DAC。

升級資料層應用程式

描述如何移除 DAC 執行個體。 您可以選擇同時卸離或卸除相關聯的資料庫,或讓資料庫保持不動。

刪除資料層應用程式

描述如何使用 SQL Server 公用程式來檢視目前已部署 DAC 的健全狀態。

監視資料層應用程式

描述如何建立包含在 DAC 中的資料和中繼資料之封存的 .bacpac 檔案。

匯出資料層應用程式

描述如何使用 DAC 封存檔案 (.bacpac) 執行 DAC 的邏輯還原,或將 DAC 移轉至另一個 Database Engine 或 SQL 資料庫 的執行個體。

匯入 BACPAC 檔案以建立新的使用者資料庫

描述如何匯入 BACPAC 檔案,在 SQL Server 執行個體內建立新的使用者資料庫。

從資料庫中擷取 DAC

描述如何將現有的資料庫升級為 DAC 執行個體。 DAC 定義會建立並儲存在系統資料庫中。

將資料庫註冊為 DAC

描述如何先檢閱 DAC 封裝的內容以及 DAC 升級要執行的動作,再於實際執行系統中使用該封裝。

驗證 DAC 封裝

描述如何先將 DAC 封裝的內容放入資料庫管理員可以檢閱 DAC 作用的資料夾,再將它部署至實際伺服器。

解除封裝 DAC 封裝

描述如何使用精靈來部署現有的資料庫。 精靈會使用 DAC 來執行這種部署。

使用 DAC 來部署資料庫

請參閱

概念

SQL Server 物件與版本的 DAC 支援