資料層應用程式 (DAC)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
資料層應用程式 (DAC) 是邏輯資料庫實體,其定義與使用者資料庫相關聯的所有 SQL Server 物件,例如資料表、檢視表,以及執行個體物件,包括登入。 DAC 是整個資料庫模型中的獨立單位,且可透過稱為 DAC 封裝或 .dacpac 的成品成為可攜式。 適用於資料層應用程式的工具支援可讓開發人員和資料庫管理員將 .dacpac 部署至新的或現有的資料庫。 部署至現有的資料庫時會將資料庫模型從現有的狀態更新,以符合 .dacpac 的內容。 開發人員從 SQL 資料庫專案建置 DAC,這是用於建置 SQL 物件的宣告式開發概念,可對資料庫結構描述中進行原始程式碼控制。
.bacpac 是與此相關的成品,其預設會封裝資料庫結構描述,以及在資料庫中儲存的資料。 BACPAC 的主要使用案例是將資料庫從某個伺服器移至另一個伺服器 (或將資料庫從本機伺服器移轉至雲端),以及以開放式格式封存現有資料庫。
資料層應用程式的優點
資料庫應用程式的生命週期涉及開發人員和 DBA 互相交換指令碼及共用單一使用整合附註,以進行應用程式的更新活動。 雖然這個流程在某些情況下是可以接受的,但可能很難與 Azure 管線及一般開發流程整合。
資料層應用程式實現了宣告式資料庫的開發,簡化了開發流程,並提供更一致且可預測的開發體驗。 開發人員可在其選擇的整合式開發環境 (IDE) 中撰寫 SQL 資料庫專案的資料庫。 SQL 資料庫專案可以在本機或 Azure 管線中編譯成 DAC 封裝。 DAC 封裝接著會透過自動化流程或手動使用 CLI 或 GUI 工具,部署至測試、預備或生產資料庫。 .dacpac 可用來以新的或修改的物件來更新資料庫、還原為舊版的資料庫,或佈建全新的資料庫。 反過來說,.dacpac 也可以從現有的資料庫產生,並用來建立以目前資料庫結構描述為基礎的 SQL 資料庫專案。
與移轉驅動的流程相比,DAC 驅動部署流程之的優勢在於,此流程可識別和驗證來自不同來源資料庫和目標資料庫的行為。 資料庫部署/升級期間所使用的工具有提供選項,可用來標示具有風險的動作,例如變更資料行大小可能導致資料遺失,或是直接編寫升級計畫指令碼的功能。 在更新之前,您可以手動評估此計畫。
Operations
DAC 簡化了支援應用程式之資料層元素的開發、部署與管理。
DACPAC
DAC 支援下列作業:
EXTRACT - 使用者可將資料庫擷取至 .dacpac。 如需詳細資訊,請參閱 SqlPackage 擷取和從資料庫擷取 DAC。
DEPLOY/PUBLISH - 使用者可將 .dacpac 部署至主機伺服器。 當部署至現有的資料庫時,資料庫與 DAC 之間的差異會以物件更新作業的方式套用至資料庫。 術語「發佈」通常與「部署」交換使用。如需詳細資訊,請參閱 SqlPackage 發佈、部署資料層應用程式以及使用 DAC 部署資料庫。
這些功能在 SqlPackage、SQL Server Management Studio、Azure Data Studio 和 SQL Server Data Tools 中皆能夠找到。
SQL Database 專案
SQL 專案支援下列作業:
BUILD - 使用者可將 SQL 資料庫專案組建為 .dacpac。
PUBLISH - 使用者可將 SQL 資料庫專案發佈至主機伺服器。
EXTRACT - 使用者可將資料庫擷取至 SQL 資料庫專案。
這些功能在 Azure Data Studio、Visual Studio Code 和 SQL Server Data Tools 中皆能夠找到。
BACPAC
另一方面,.bacpac 著重於擷取結構描述和資料,以支援兩項主要作業:
EXPORT- 使用者可將資料庫的結構描述和資料匯出至 .bacpac。 如需詳細資訊,請參閱 SqlPackage 匯出和匯出資料層應用程式。
IMPORT - 使用者可將結構描述和資料匯入新資料庫。 如需詳細資訊,請參閱 SqlPackage 匯入和匯入 BACPAC 檔案以建立新的使用者資料庫。
這些功能可由 SqlPackage、SQL Server Management Studio、Azure Data Studio 和 Azure 入口網站的工具支援。
DAC 工具
資料層應用程式成品和 SQL 專案可以跨數種工具使用。 這些工具能解決不同使用者角色的需求。
DACPAC 與 BACPAC
下列工具支援 DAC 封裝和 BAC 封裝格式:
在這些工具中,資料庫可以擷取至 .dacpac 或匯出至 .bacpac。 反過來說,.bacpac 也可匯入新的資料庫,而 .dacpac 也可發佈至新的或現有的資料庫。
DACPAC 和 SQL 專案
下列工具除了提供 SQL 資料庫專案的編輯之外,亦支援 DAC 封裝格式:
透過這些工具,開發人員可以在未連線的用戶端開發環境中設計資料庫。 這些工具可用來建立 DAC 封裝、將 DAC 封裝部署至資料庫,以及將資料庫封裝匯入至 SQL 專案。
DAC 概念
版本支援
DAC 工具通常能夠讀取舊版 SQL Server DAC 工具所產生的 .dacpac 檔案,也能將 DAC 封裝部署至舊版 SQL Server。 不過,舊版 DAC 工具無法讀取新版 DAC 工具所產生的 .dacpac 檔案。 DAC 工具至少會支援其發行時的 SQL Server 支援版本。
檔案格式
.dacpac 是具有 .dacpac 副檔名的壓縮資料夾,同理,.bacpac 是有 .bacpac 副檔名的壓縮資料夾。 進階使用者可以解壓縮檔案,以檢視數個 XML 區段,這些區段代表著來源的詳細資料、資料庫中的物件和其他特性。 如需解壓縮 .dacpac 或 .bacpac,請將副檔名取代為 .zip,並使用檔案壓縮公用程式將檔案解壓縮。
資料層應用程式註冊
在 SQL Server Management Studio 中,可對資料庫採取其他動作,將其註冊為資料層應用程式。
REGISTER - 使用者可將資料庫註冊為資料層應用程式。
UNREGISTER - 以前註冊為 DAC 的資料庫可以取消註冊。
UPGRADE - 可使用 .dacpac 來升級資料庫。
如需關於這些動作的詳細資訊,請參閱下列工作。
Task | 文章連結 |
---|---|
描述如何使用新的 DAC 封裝檔案,將執行個體升級為新版的 DAC。 | 升級資料層應用程式 |
描述如何移除 DAC 執行個體。 您可以選擇同時卸離或卸除相關聯的資料庫,或讓資料庫保持完整。 | 刪除資料層應用程式 |
描述如何將現有的資料庫升級為 DAC 執行個體。 DAC 定義會建立並儲存在系統資料庫中。 | 將資料庫註冊為 DAC |
描述如何先檢閱 DAC 封裝的內容以及 DAC 升級要執行的動作,再於實際執行系統中使用該封裝。 | 驗證 DAC 封裝 |