SQL Server in Docker 還原數據庫

SQL Server in Docker 還原數據庫
上一會演示瞭如果在Docker環境下安裝SQL Server,這次我們來演示下如何還原一個數據庫備份文件到數據庫實例上。

使用winscp上傳bak文件到linux服務器
上一回我們啓動docker容器的時候使用了-v參數掛賬了本地目錄/hd2/sqlserver2019_data到容器內目錄/var/opt/mssql,所以我們只需要把文件testdb.bak上傳到/hd2/sqlserver2019_data目錄,docker容器即可訪問。

我使用了下Sql Server Management Studio的還原功能試了下,沒有成功,不知是不是SSMS版本的問題。既然SSMS不能還原,那就使用命令行來試試吧。

使用docker exec命令在容器內執行命令
因爲SQL Server安裝在Docker容器內,所以執行命令行都需要進入到容器內。

sudo docker exec -it sqlserver2019 /bin/bash

接下來的命令全部在sqlserver2019容器內執行。

使用RESTORE FILELISTONLY命令列出備份數據文件的邏輯名
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/testdb.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

使用該命令可以把數據庫的數據文件,日誌文件名稱顯示出來。在接下來的恢復操作中有用。

使用RESTORE DATABASE命令還原數據庫
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE DATABASE testdb FROM DISK = "/var/opt/mssql/testdb.bak" WITH MOVE "testdb" TO "/var/opt/mssql/data/testdb.mdf" , MOVE "testdb_log" TO "/var/opt/mssql/data/testdb.ldf"'

看到RESTORE DATABASE successfully的時候表示數據庫還原成功了。讓我們使用SSMS看看數據庫是否真的還原成功了。

可以看到數據庫已經還原上去,裏面的表,數據都可以正常操作。至此,數據庫文件還原成功。

Email:[email protected]
作者:Agile.Zhou(kklldog)
出處:http://www.cnblogs.com/kklldog/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章