SQL Server in Docker - 还原数据库
SQL Server in Docker 還原數(shù)據(jù)庫
上一回演示了如果在Docker環(huán)境下安裝SQL Server(使用Docker運行SQL Server),這次我們來演示下如何還原一個數(shù)據(jù)庫備份文件到數(shù)據(jù)庫實例上。
使用winscp上傳bak文件到linux服務器
上一回我們啟動docker容器的時候使用了-v參數(shù)掛賬了本地目錄/hd2/sqlserver2019_data到容器內(nèi)目錄/var/opt/mssql,所以我們只需要把文件testdb.bak上傳到/hd2/sqlserver2019_data目錄,docker容器即可訪問。
我使用了下Sql Server Management Studio的還原功能試了下,沒有成功,不知是不是SSMS版本的問題。既然SSMS不能還原,那就使用命令行來試試吧。
使用docker exec命令在容器內(nèi)執(zhí)行命令
因為SQL Server安裝在Docker容器內(nèi),所以執(zhí)行命令行都需要進入到容器內(nèi)。
sudo docker exec -it sqlserver2019 /bin/bash
接下來的命令全部在sqlserver2019容器內(nèi)執(zhí)行。
使用RESTORE FILELISTONLY命令列出備份數(shù)據(jù)文件的邏輯名
/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
使用該命令可以把數(shù)據(jù)庫的數(shù)據(jù)文件,日志文件名稱顯示出來。在接下來的恢復操作中有用。
使用RESTORE DATABASE命令還原數(shù)據(jù)庫
/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的時候表示數(shù)據(jù)庫還原成功了。讓我們使用SSMS看看數(shù)據(jù)庫是否真的還原成功了。
可以看到數(shù)據(jù)庫已經(jīng)還原上去,里面的表,數(shù)據(jù)都可以正常操作。至此,數(shù)據(jù)庫文件還原成功。
總結(jié)
以上是生活随笔為你收集整理的SQL Server in Docker - 还原数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Java面试必问JVM调优,那.NET5
- 下一篇: Xamarin 从零开始部署 iOS 上
