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