一個專案的結束,總不能船過水無痕,得留下些什麼。除了原始碼,資料庫內的資料也經常是需要被封存的對象,在地端的 SQL Server 通常只要將 MDF、LDF 檔案封存起來就可以搞定了,而雲端的 Azure SQL Database 沒有 MDF、LDF 檔案,取而代之,我們可以改用「匯出(Export)
」的方式,將整個資料庫的資料給弄出來。
匯出成 bacpac 檔案
我們瀏覽到想要匯出資料的資料庫管理介面,在畫面上點擊「匯出
」。
![](https://i.imgur.com/LlsyvSp.png)
進入到匯出功能畫面之後,依序將該填的欄位填一填。
![](https://i.imgur.com/et6Lcdm.png)
- 檔案名稱
- 訂用帳戶
- 儲存體:匯出來的 bacpac 檔案需要有一個儲存的地方,這邊就指定一個儲存體的容器,用來存放匯出來的檔案。
- 伺服器管理員登入:資料庫伺服器的管理帳號
- 密碼:資料庫伺服器管理帳號的密碼
最後按下「確定
」按鈕,匯出作業會需要一些時間,我們可以從 SQL Server 的「匯入/匯出記錄
」當中來查看進度。
![](https://i.imgur.com/bQJnnei.png)
作業完成之後,我們就可以從剛剛指定的儲存體帳戶的容器中,看到匯出的 bacpac 檔案,有需要的話,我們也可以把它下載下來。
![](https://i.imgur.com/BUmerTx.png)
匯入 bacpac 檔案到 Azure SQL Database
匯入的步驟就是把匯出的步驟倒過來,先到 SQL Server 的管理介面,點擊「匯入資料庫
」。
![](https://i.imgur.com/NA3V9gj.png)
匯入的功能畫面跟匯出長得差不多,一樣依序將該填的欄位填一填。
![](https://i.imgur.com/e2VQqB7.png)
- 訂用帳戶
- 儲存體:指定存放在儲存體帳戶容器內的 bacpac 檔案
- 定價層
- 資料庫名稱
- 定序
- 伺服器管理員登入
- 密碼
最後按下「確定
」按鈕,我們一樣可以在 SQL Server 的「匯入/匯出記錄」中查看進度。
![](https://i.imgur.com/9Nx39Xl.png)
匯入 bacpac 檔案到 SQL Server
如果我們想要把資料庫在地端的 SQL Server 還原的話,該怎麼做? 我們可以從 SSMS(SQL Server Management Studio)的介面中,在資料庫伺服器上按右鍵,點選「匯入資料層應用程式
」。
![](https://i.imgur.com/USAXcIp.png)
在「匯入設定
」的頁面中,除了選擇從已經下載好的 bacpac 檔案匯入之外,還可以直接從 Azure 儲存體帳戶的容器內,選擇 bacpac 檔案匯入。
![](https://i.imgur.com/uNnvjCh.png)
往下是「資料庫設定
」的頁面,這邊要指定「資料庫名稱
」、「資料庫檔案路徑
」(即 MDF 檔儲存路徑)、「記錄檔路徑
」(即 LDF 檔儲存路徑)。
![](https://i.imgur.com/AIC21aJ.png)
最後檢視一下設定有沒有問題?如果沒有問題就按下「完成
」按鈕。
![](https://i.imgur.com/n85fkWt.png)
等待作業完成,資料庫就還原了。
![](https://i.imgur.com/N2I8I3S.png)
![](https://i.imgur.com/CMrKJiT.png)
一般來講,很少有需要整個資料庫匯出/匯入的時機,剛好這次有可以封存 Azure SQL Database 資料庫的機會,整個操作的步驟就分享給大家,希望有起到一點幫助。
參考資料
- 匯出至 BACPAC 檔案 - Azure SQL Database 和 Azure SQL 受控執行個體
- How to restore SQL Azure Bacpac to local SQL Server?