Sql Server 備份方式

最近工作上碰到需要對 Sql Server 做 snapshot 的場合,所以就順便來研究一下怎麼對 Sql Server 做備份

按照過去的經驗,我第一個想法就是找 Sql Server 有沒有類似 mysqldump 或 pg_dump 的工具可以直接將 schema 及 data 導出成 SQL 檔,這樣方便閱讀也方便各種場景下重建資料庫,尤其是在資料庫的 table 數量及資料量並不算大的前提下

結果,我太天真了,Microsoft 怎麼可能這麼好用 (誤),人家就是要走自己的路!

備份檔案格式

Sql Server 備份出來的檔案格式有以下幾種

  • bak: schema + data + log + file,適合做定時備份,因為他會保持包含 index 在內的資料以維持 single point of time 的 transactionally consistent
  • DACPAC: schema,適合建立測試環境或比對各環境版本;但也支持下參數加上 data 的備份。實際上是 xml 的壓縮檔
  • BACPAC: schema + data,適合轉移或 archive db。schema 部分與 DACPAC 相同,只是加上用 BCP 匯出資料
  • sql

備份工具

主要有以下幾種備份工具

SqlCmd (官方)

需要安裝 Sql Server 或 Microsoft Command Line Utility。若 powershell 要使用,還需要安裝 SqlServer 模組

2021-11-16    
Hugo 半自動部署
將手動部署 Hugo 到 GitHub Pages 轉為半自動
2021-11-03    
Spring Boot 實作 API 版本控制
在 Spring Boot Web 專案實作動態 API 版本控制,並能兼容 Swagger 及 Spring Security
2019-09-19    
Spring Security 整合 RBAC
探討如何利用 Spring Security 提供的自訂方式整合 RBAC
2019-05-30    
Github Flow 簡介
依照官方說明簡述 GitHub flow
2019-05-29    
Hugo 入門教學
介紹 Hugo 及基本使用
2019-05-07    
AOP 及 Spring AOP 簡述
探討 AOP 概念及 Spring AOP 應用
2018-04-10    
Java 字串判定
探討 Java 字串的空字串及 null 判定
2018-02-06    
Java 樂透抽取算法初探
初步探討樂透抽取演算法及 Java 中的隨機
2017-11-15    
Macbook Pro 的設置 2017 版
紀錄 2017 年我在 MBP 上的設定
2017-11-03