簡介
方法一,通過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位址,端口号
官網說明文檔如下:
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檔案拷貝至容器中根目錄下。
列出的資料檔案邏輯名稱為:
middol_biqs_test_xingyu 和 middol_biqs_test_xingyu_log
這裡注意一下,建議還原到一個新資料庫下,原資料庫可能有開發同僚還在用,即便沒有人用也不建議被覆寫還原,另外如果真要還原到原來資料庫可以先kill所有的用戶端連接配接程序後再還原!
這裡我們還原到一個新資料庫中,名稱叫 middol_biqs_test3_xingyu ,這個資料庫可以不用手動建立,bak檔案自動建立。
出現類似下面圖檔顯示資訊,表示還原成功。
使用 Navicat 用戶端連接配接伺服器檢視是否有該資料庫。