天天看點

Docker環境下SqlServer資料庫使用bak檔案還原

​​簡介​​

​​方法一,通過SSMS可視化工具還原步驟​​

1. 下載下傳 SSMS

2. 安裝SSMS

3. 連接配接資料庫

4. 上傳備份bak檔案至Linux伺服器

5. 選擇Linux伺服器上的備份bak檔案

6. 還原

​​方法二、通過指令行sqlcmd還原步驟​​

1. 拷貝bak檔案至Linux系統中

2. 拷貝bak檔案至Docker容器中

3. 進入Docker容器中

4. 使用RESTORE FILELISTONLY指令列出備份資料檔案的邏輯名

5. 使用RESTORE DATABASE指令還原資料庫

簡介

公司項目用到Sqlserver,開發環境在雲主機 Linux系統Docker環境下,有時候項目調試copy客戶資料庫資料BAK檔案,項目經理希望将bak檔案還原到開發環境中的Sqlserver中。

之前通過 Navicat 導出導入sql檔案進行,資料量大會很慢,有可能逾時中斷,好在官網有docker環境下的bak檔案還原說明:

​​https://docs.microsoft.com/zh-cn/sql/linux/tutorial-restore-backup-in-sql-server-container?view=sql-server-ver15​​

不過官網有點看着累, 稍微記錄一下簡單步驟:

這裡說下有主要兩種方法:

通過工具還原,需要安裝 ssms程式,目前好像隻有windows版本的

通過sqlcmd指令行還原,無需安裝任何工具程式

方法一,通過SSMS可視化工具還原步驟

SQL Server Management Studio (SSMS) 是一個 **【免費】**的 內建環境,用它可以輕松備份還原資料庫。

​​https://download.microsoft.com/download/d/9/7/d9789173-aaa7-4f5b-91b0-a2a01f4ba3a6/SSMS-Setup-CHS.exe​​

第一欄 伺服器ip位址,端口号

Docker環境下SqlServer資料庫使用bak檔案還原
Docker環境下SqlServer資料庫使用bak檔案還原
Docker環境下SqlServer資料庫使用bak檔案還原

官網說明文檔如下:

​​https://docs.microsoft.com/zh-cn/sql/relational-databases/backup-restore/quickstart-backup-restore-database?view=sql-server-2017​​

方法二、通過指令行sqlcmd還原步驟

我這邊使用的是filezilla 工具,

假設檔案名稱為:BIQS_XY20200806.bak

拷貝到 根目錄 /下

shell指令行下:

mssql2017 是 Sqlserver 2017 Docker容器的名稱, 将BIQS_XY20200806.bak檔案拷貝至容器中根目錄下。

Docker環境下SqlServer資料庫使用bak檔案還原

列出的資料檔案邏輯名稱為:

middol_biqs_test_xingyu 和 middol_biqs_test_xingyu_log

這裡注意一下,建議還原到一個新資料庫下,原資料庫可能有開發同僚還在用,即便沒有人用也不建議被覆寫還原,另外如果真要還原到原來資料庫可以先kill所有的用戶端連接配接程序後再還原!

這裡我們還原到一個新資料庫中,名稱叫 middol_biqs_test3_xingyu ,這個資料庫可以不用手動建立,bak檔案自動建立。

出現類似下面圖檔顯示資訊,表示還原成功。

Docker環境下SqlServer資料庫使用bak檔案還原

使用 Navicat 用戶端連接配接伺服器檢視是否有該資料庫。

Docker環境下SqlServer資料庫使用bak檔案還原