孝感网站建设公司,网站建设与网络推广的关系,搜索引擎营销的英文缩写,网页统计代码大全现在.net core已经跨平台了#xff0c;大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only#xff0c;但是从SQL Server 2017开始已经支持运行在docker上#xff0c;也就说现在SQL Serer已经可以运行在linux下了。下面在Ubuntu 16.4上… 现在.net core已经跨平台了大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only但是从SQL Server 2017开始已经支持运行在docker上也就说现在SQL Serer已经可以运行在linux下了。下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2SQL Server in Dockersudo 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_EULAY -e SA_PASSWORDdev123, -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 Serversudo docker exec -it sqlserver2019 bash
使用docker exec命令登录到容器内部执行命令/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P dev123,
在容器内部执行命令打开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 dev123, -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 dev123, -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环境配置还有点区别大家可以自己尝试一下。