日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

使用Docker运行SQL Server

發布時間:2023/12/4 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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的鏡像

sudo mkdir /hd2/sqlserver2019_data sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dev@123," -p 14330:1433 --name sqlserver2019 -v /hd2/sqlserver2019_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu

使用docker run 命令啟動容器,其中要注意的是使用-v參數指定了sqlserver2019_data目錄掛載到容器的/var/opt/mssql目錄,這個目錄是用來存儲數據庫文件的,所以最好掛載到外容器外部,避免因為不小心刪除容器而丟失數據

sudo docker ps -a

使用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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。