ubuntu docker容器运行sqlserver2022以及完整备份

发布时间:2023年12月22日

docker Docker 运行 SQL Serve文档

拉取sqlserver2022 最新版本docker镜像

#拉取镜像
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest

sqlserver2022

运行sqlserver2022 容器( SA_PASSWORD 环境变量已弃用。 请改用 MSSQL_SA_PASSWORD)

#创建mssql2022文件夹
sudo mkdir /opt/mssql2022
#回车确认

#进入/opt目录更改mssql2022文件家权限,这里不设置权限,sqlserver 启动会失败
sudo chmod 777 mssql2022
#回车确认

#运行容器 "MSSQL_PID=Enterprise" 指定企业版本,如果添加--cap-add SYS_PTRACE  -u 0:0 以系统用户允许sqlserver 容器上面两步,可以不执行
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Suixin@123" -e "MSSQL_PID=Enterprise" \
   -p 1433:1433 --name sqlserver2022 --hostname sqlserver2022 \
   -d \
   -v /opt/mssql2022:/var/opt/mssql \
   -v /opt/mssql2022_backup:/opt/mssql2022_backup \
   mcr.microsoft.com/mssql/server:2022-latest



创建文件
容器

进入容器连接sqlserver

#进入sqlserver容器内
sudo docker exec -it sqlserver2022  "bash"

#sqlcmd 连接sqlserver
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Suixin@123"

#回去确认

验证

查看版本信息

#查看sqlserver版本信息
SELECT @@VERSION
GO

#回去确认

版本

开启sqlserver代理服务

#进入到容器, 加 -u root 参数表示以root用户身份进入容器 
sudo docker exec  -it sqlserver2022  "bash"

#开启代理服务
/opt/mssql/bin/mssql-conf set sqlagent.enabled true 

#重启docker 容器

#备份sql语句,注意替换数据库
DDECLARE @BackupFilePath NVARCHAR(500)  
DECLARE @BackupFileName NVARCHAR(225)  
DECLARE @CurrentDateTime NVARCHAR(30)  

SET @CurrentDateTime = REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(30), GETDATE(), 120), '-', '_'),' ','_'),':','') 
SET @BackupFileName = 'test_backup_' + @CurrentDateTime  
SET @BackupFilePath ='/opt/mssqlbackup/'+ @BackupFilePath+ '.bak' 
BACKUP DATABASE [test] TO  DISK = @BackupFileName  WITH NOFORMAT, NOINIT,  NAME = @BackupFilePath, SKIP, REWIND, NOUNLOAD,  STATS = 10
GO

备份计划作业

欢迎关注我的公众号“点滴分享技术猿”,原创技术文章第一时间推送。

关注

文章来源:https://blog.csdn.net/u010784529/article/details/135148058
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。