【From bky】Linux下Docker容器安装SQL Server为发布订阅功能做准备

1. 宿主机pull最新镜像
docker pull mcr.microsoft.com/mssql/server:latest
2. 宿主机命令行跑docker run
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=pwd" -e "MSSQL_AGENT_ENABLED=true"  -e "MSSQL_LCID=2052"  -e "MSSQL_COLLATION=Chinese_PRC_CI_AS" \
-e "TZ=Asia/Shanghai"  -p 1501:1433 --name mssql -h mssql \
-d mcr.microsoft.com/mssql/server:latest
3. 进入容器终端新建快照文件夹
cd /var/opt/mssql
mkdir ReplData
chmod 777 ReplData
4. 查询容器服务器名称
select @@servername
5.创建分发库

其中distributor为容器hostname (docker run命令-h 指定的名称)

USE master
GO
EXEC sp_adddistributor @distributor = N'mssql'
GO
EXEC sp_adddistributiondb @database = N'distribution', @data_folder = N'/var/opt/mssql/data',
@log_folder = N'/var/opt/mssql/data', @log_file_size = 2, @min_distretention = 0, @max_distretention = 72,
@history_retention = 48, @deletebatchsize_xact = 5000, @deletebatchsize_cmd = 2000, @security_mode = 1,@password='pwd'
GO
SELECT name, create_date FROM sys.databases
GO
6.设置复制功能右键“发布服务器属性”菜单可见

其中publisher为容器hostname (dockers run命令-h 指定的名称)

USE [distribution]

IF (NOT EXISTS (SELECT * FROM sysobjects WHERE name = 'UIProperties' AND type = 'U ')) 

CREATE TABLE UIProperties(id INT)

GO

IF (EXISTS (SELECT * FROM ::fn_listextendedproperty('SnapshotFolder', 'user', 'dbo', 'table', 'UIProperties', null, null)))
  EXEC sp_updateextendedproperty N'SnapshotFolder', N'/var/opt/mssql/ReplData', 'user', dbo, 'table', 'UIProperties'

ELSE

  EXEC sp_addextendedproperty N'SnapshotFolder', N'/var/opt/mssql/ReplData', 'user', dbo, 'table', 'UIProperties'

GO

EXEC sp_adddistpublisher @publisher = N'mssql', @distribution_db = N'distribution', @security_mode = 1,

@working_directory = N'/var/opt/mssql/ReplData', @trusted = N'false', @thirdparty_flag = 0,

@publisher_type = N'MSSQLSERVER'

GO
7. 还原或新建数据库

准备一个发布库和一个订阅库。

8.新建发布订阅
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值