文章目錄
三種用來備份還原 SQL Server schema 與資料的做法
部份公司團隊在專案開發流程上有較多的環境需要建置,或是有時需要針對不同環境的資料及 schema 進行除錯與比對時就是件辛苦的事了,這樣的工作我們一定需要透過工具來處理,避免人為的疏忽也讓人力去做更有價值的工作
但工具的安裝在許多環境是不被允許的,或是有些環境的權限比較嚴謹,我們的工具無法直接存取目接資料庫或是沒有目標資料庫的權限,這時我們就得考慮將資料庫備份回其他環境進行還原才能完成比對工作
所以來介紹工作中常使用的幾種 SQL Server 備份還原方式及優缺點
一、使用 .bak 檔案
備份
目標資料庫 –> 右鍵 –> Tasks –> Back Up..
備份選項
主要是指定備份檔案名稱
備份成功
還原
Databases 資料夾 –> 右鍵 –> Restore Database…
Device –> …
Select backup devices
選取後就會將相關資訊填入 Destination 及 Restore plan 中
其他還原選項:資料庫存在時的策略、資料庫檔案儲存位置
優缺點
優點:
- 備份還原速度快,三種方式最快的
缺點:
- 新版 SQL Server 備份出來的檔案無法還原至較舊的 SQL Server 中
- Azure SQL 無法使用
二、使用 script
備份
目標資料庫 –> 右鍵 –> Tasks –> Generate Scripts..
Introduction
Choose Onjects
可以自由選擇需要匯出的資料庫物件
Set Scripting Options
紅框可以自訂進階匯出選項(以下分享幾個我自己常用的設定項目)
Script DROP and CREATE (選擇產生 drop 或 create 語法)
Script Server Version (針對不同版本 SQL Server 產生對應的 script)
Types of data to script (選擇產生 schema 或 data 的 script )
Script for the database engine type(選擇一般資料庫或是 Azure SQL)
綠框可以選擇匯出的目標
- 儲存成檔案
- 儲存至剪貼簿
- 儲存至新的查詢視窗
Summary
Save of Publish Scripts
還原
直接執行產生的 script 即可
優缺點
優點:
- 可以選擇產出舊版 SQL Server 的 script
- 可以自行調整 script
缺點:
- 特殊字元或是 binary 無法匯入
- 如果想要建立相同的資料庫需要調整的內容較多
三、使用 .bacpac
較詳細的內容可以參考 你認識 SQL Server 的資料層應用程式(Data-tier Applications - DAC)嗎?
備份
目標資料庫 –> 右鍵 –> Tasks –> Export Data-tier Application…
Introduction
Export Settings
Settings
選擇儲存位置及檔名
Advanced
選擇匯出內容
Summary
Results
還原
資料庫資料夾 –> 右鍵 –> Import Data-tier Application…
Introduction
Import Settings
選擇 BACPAC 檔案位置
Database Settings
設定 db 名稱及相關檔案儲放路徑
Summary
Results
優缺點
優點:
- 使用 XML 來進行資料描述,比 script 可攜性高
- 速度比產生 script 快
- Azure SQL 可以直接使用
缺點:
- 舊版 DAC 工具無法讀取新版 DAC 產生的檔案
- 有些比較進階的特性不支援
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-26
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。