文章目錄
你認識 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 台灣 授權條款 釋出。