文章目錄
你認識 SQL Server 的資料層應用程式(Data-tier Applications - DAC)嗎?
DAC 首次出現於 SQL Server 2008 R2 ,但直至今日經過了這麼久時間還是很少聽到其他人討論這個功能,雖然曾經用過但還是認識不深,最近新專案在部署至 Azure 時選擇使用 DAC 相關技術,所以花了時間暸解內容,順手筆記
資料層應用程式(Data-tier Applications - DAC) 是什麼?
資料層應用程式(Data-tier Applications - DAC) 包含所有 SQL Server 物件 (e.g. table、view、stored procedure) 定義,可以用來進行資料庫部署
依內容分成兩種檔案:
DACPAC
- 僅資料庫結構描述
- 適合用來部署
BACPAC
- 資料庫結構描述 + 資料內容
- 適合用來還原資料庫
DAC 所需權限
- Deploy :dbmanager 或擁有 CREATE DATABASE 權限
- Delete:dbmanager 或擁有 DROP DATABASE 權限
DACPAC 相關操作
Extract
將資料庫結構封裝為 DACPAC
目標資料庫右鍵 –> Tasks –> Extract Data-tier Application…

Introduction

Set Properties
- Appliaction name(名稱需相同才能進行升級)
- Version(版本必需不同)
- Description
Save tp DAC package file

Validation and Summary

Build Package


Deploy
使用 DACPAC 建立資料庫, 預設將資料庫註冊為 DAC
資料庫資料夾右鍵 –> Deploy Data-tier Application…

Intrduction

Select Package

Update Configuration

Summary

Deploy DAC


Register
將資料庫註冊為 DAC(在 SQL Server 中建立版控)
目標資料庫右鍵 –> Tasks –> Register as Data-tier Application…

Introduction

Set Properties
- DAC instance name
- Application name
- Version
- Description

Validation and Summary

Register DAC


Upgrade
使用 DACPAC 來更新資料庫
目標資料庫 –> Tasks –> Upgrade Data-tier Application…

Introduction

Select Package

Detect Package

顯示 no cahnges ? 這應該是 bug

Options
失敗是否 rollback

Review Upgrade Plan

可能造成資料遺失

Summary

Upgrade DAC


Delete
僅刪除在 SQL Server 的版本資訊
目標資料庫右鍵 –> Tasks –> Delete Data-tier Application…

Introduction

Summary

Delete DAC

BACPAC 相關操作
Export
將資料庫 schema 及資料封裝
目標資料庫右鍵 –> Tasks –> Export Data-tier Application…

Introduction

Export Settings
Settings
選擇儲存位置及檔名

Advanced
選擇匯出內容

Summary

Results


Import
使用 BACPAC 將資料庫 schema 及資料匯入
資料庫資料夾右鍵 –> Import Data-tier Application…

Introduction

Import Settings
選擇 BACPAC 檔案位置

Database Settings
設定 db 名稱及相關檔案儲放路徑

Summary

Results


參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-26
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。
