使用Docker运行SQL Server
現在.net core已經跨平臺了,大家也都用上了linux用上了docker。跟.net經常配套使用的SQL SERVER以前一直是windows only,但是從SQL Server 2017開始已經支持運行在docker上,也就說現在SQL Serer已經可以運行在linux下了。
下面在Ubuntu 16.4上演示安裝并使用SQL Server 2019-CTP3.2
SQL Server in Docker
sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu使用docker pull命令從docker hub拉取sqlserver 2019-ctp3.2的鏡像
使用docker run 命令啟動容器,其中要注意的是使用-v參數指定了sqlserver2019_data目錄掛載到容器的/var/opt/mssql目錄,這個目錄是用來存儲數據庫文件的,所以最好掛載到外容器外部,避免因為不小心刪除容器而丟失數據
使用docker ps 命令查看容器運行情況,可以看到sqlserver2019正在運行
使用命令行連接SQL Server
sudo docker exec -it sqlserver2019 "bash"使用docker exec命令登錄到容器內部執行命令
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "dev@123,"在容器內部執行命令,打開sqlcmd打開sqlcmd之后我們就可以進行一些數據庫的操作了,比如創建數據庫,創建表,查詢數據等。
CREATE DATABASE TEST_DB GO USE TEST_DB GO CREATE TABLE Table1 (ID INT, NAME NVARCHAR(50)) GO Insert Into Table1 Values (0, 'agile')創建TEST_DB數據庫;創建表Table1;插入一行數據;查詢表數據我們使用docker運行的SQL Server同樣可以使用Sql Server Management Studio來管理。
使用服務器ip加端口連接成功后,可以看到剛才新建的數據庫TEST_DB跟表TABLE1還有里面的數據都在。能使用SSMS管理后就簡單多了跟使用SQL Server其他版本沒啥區別。
還原數據庫
上面演示了如何在Docker環境下安裝SQL Server,下面我們來演示下如何還原一個數據庫備份文件到數據庫實例上。
使用winscp上傳bak文件到linux服務器
上一回我們啟動docker容器的時候使用了-v參數掛載了本地目錄/hd2/sqlserver2019data到容器內目錄/var/opt/mssql,所以我們只需要把文件testdb.bak上傳到/hd2/sqlserver2019data目錄,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看看數據庫是否真的還原成功了。
可以看到數據庫已經還原上去,里面的表,數據都可以正常操作。至此,數據庫文件還原成功。
至此SQL Server in Docker的基本操作演示的差不多了,還有更多的高級功能比如配置故障轉移集群,復制訂閱,Always On等功能跟windows環境配置還有點區別大家可以自己嘗試一下。
總結
以上是生活随笔為你收集整理的使用Docker运行SQL Server的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LINQ :最终统治了所有的语言!
- 下一篇: 不懂数据库索引原理?因为你心里没有一点B