[小菜一碟] 如何匯出/匯入 Azure SQL Database 的資料庫?

一個專案的結束,總不能船過水無痕,得留下些什麼。除了原始碼,資料庫內的資料也經常是需要被封存的對象,在地端的 SQL Server 通常只要將 MDF、LDF 檔案封存起來就可以搞定了,而雲端的 Azure SQL Database 沒有 MDF、LDF 檔案,取而代之,我們可以改用「匯出(Export)」的方式,將整個資料庫的資料給弄出來。

匯出成 bacpac 檔案

我們瀏覽到想要匯出資料的資料庫管理介面,在畫面上點擊「匯出」。

進入到匯出功能畫面之後,依序將該填的欄位填一填。

  1. 檔案名稱
  2. 訂用帳戶
  3. 儲存體:匯出來的 bacpac 檔案需要有一個儲存的地方,這邊就指定一個儲存體的容器,用來存放匯出來的檔案。
  4. 伺服器管理員登入:資料庫伺服器的管理帳號
  5. 密碼:資料庫伺服器管理帳號的密碼

最後按下「確定」按鈕,匯出作業會需要一些時間,我們可以從 SQL Server 的「匯入/匯出記錄」當中來查看進度。

作業完成之後,我們就可以從剛剛指定的儲存體帳戶的容器中,看到匯出的 bacpac 檔案,有需要的話,我們也可以把它下載下來。

匯入 bacpac 檔案到 Azure SQL Database

匯入的步驟就是把匯出的步驟倒過來,先到 SQL Server 的管理介面,點擊「匯入資料庫」。

匯入的功能畫面跟匯出長得差不多,一樣依序將該填的欄位填一填。

  1. 訂用帳戶
  2. 儲存體:指定存放在儲存體帳戶容器內的 bacpac 檔案
  3. 定價層
  4. 資料庫名稱
  5. 定序
  6. 伺服器管理員登入
  7. 密碼

最後按下「確定」按鈕,我們一樣可以在 SQL Server 的「匯入/匯出記錄」中查看進度。

匯入 bacpac 檔案到 SQL Server

如果我們想要把資料庫在地端的 SQL Server 還原的話,該怎麼做? 我們可以從 SSMS(SQL Server Management Studio)的介面中,在資料庫伺服器上按右鍵,點選「匯入資料層應用程式」。

在「匯入設定」的頁面中,除了選擇從已經下載好的 bacpac 檔案匯入之外,還可以直接從 Azure 儲存體帳戶的容器內,選擇 bacpac 檔案匯入。

往下是「資料庫設定」的頁面,這邊要指定「資料庫名稱」、「資料庫檔案路徑」(即 MDF 檔儲存路徑)、「記錄檔路徑」(即 LDF 檔儲存路徑)。

最後檢視一下設定有沒有問題?如果沒有問題就按下「完成」按鈕。

等待作業完成,資料庫就還原了。

一般來講,很少有需要整個資料庫匯出/匯入的時機,剛好這次有可以封存 Azure SQL Database 資料庫的機會,整個操作的步驟就分享給大家,希望有起到一點幫助。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學