用docker部署MSSQL的alwayson可行吗?
时间: 2023-12-01 16:02:13 浏览: 36
在 Docker 中使用 AlwaysOn 高可用性方案部署 MSSQL Server 可能存在一些挑战,但是在某些情况下是可行的。
AlwaysOn 是 MSSQL Server 的高可用性方案,它可以提供自动故障转移、读取负载平衡和数据复制等功能。要在 Docker 中部署 AlwaysOn,需要在容器之间设置复杂的网络拓扑、协调容器之间的故障转移、保证数据同步等等。这些工作通常需要一些专业技能和经验。
另外,Docker 在本质上是一个轻量级虚拟化技术,它并不提供完整的虚拟机功能,例如虚拟网络、虚拟存储等等。因此,在使用 Docker 部署 AlwaysOn 时,需要特别关注容器的网络配置、存储配置等,确保容器之间可以正常通信,并且数据可以正确地同步。
总的来说,使用 Docker 部署 AlwaysOn 可能需要一些额外的工作和注意事项,但是在一些场景下是可行的。如果您需要在 Docker 中使用 AlwaysOn,请务必进行充分的测试和验证,确保系统的可靠性和稳定性。
相关问题
MSSQL 的alwaysOn 怎么用docker部署
要在 Docker 中部署 MSSQL AlwaysOn,需要完成以下步骤:
1. 首先,创建 MSSQL AlwaysOn 的 Docker 容器。可以使用以下命令:
```
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
```
这个命令将下载 MSSQL 服务器的最新版本,并创建一个容器。
2. 接下来,需要创建两个以上的容器,并让它们之间可以互相访问。这可以通过创建一个 Docker 网络来完成。可以使用以下命令:
```
docker network create alwaysnet
```
这个命令将创建一个名为 "alwaysnet" 的 Docker 网络。
3. 然后,需要在每个容器中设置 AlwaysOn 的配置。可以使用以下命令:
```
docker exec -it <container_name> /opt/mssql/bin/sqlservr-setup --setup-role AlwaysOn --force
```
这个命令将在容器中设置 AlwaysOn 的配置。
4. 接下来,需要在每个容器中创建一个 MSSQL AlwaysOn 节点。可以使用以下命令:
```
docker exec -it <container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong!Passw0rd>' -Q 'CREATE AVAILABILITY GROUP ag1 WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY, DB_FAILOVER = ON, DTC_SUPPORT = PER_DB, CLUSTER_TYPE = NONE) FOR REPLICA ON N'<container_name>' WITH (ENDPOINT_URL = N'tcp://<container_name>:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC)'
```
这个命令将在容器中创建一个名为 "ag1" 的 AlwaysOn 节点。
5. 最后,需要将容器加入到 AlwaysOn 节点中。可以使用以下命令:
```
docker exec -it <container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong!Passw0rd>' -Q 'ALTER AVAILABILITY GROUP ag1 ADD REPLICA ON N'<container_name>' WITH (ENDPOINT_URL = N'tcp://<container_name>:5022')'
```
这个命令将容器加入到 "ag1" 节点中。
完成以上步骤后,就可以在 Docker 中部署 MSSQL AlwaysOn。
docker 部署 mssql 2019
可以通过 Docker 部署 SQL Server 2019,以下是具体步骤:
1. 在 Docker 中搜索并下载 SQL Server 2019 镜像:
```shell
docker pull mcr.microsoft.com/mssql/server:2019-latest
```
2. 运行容器:
```shell
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong!Passw0rd' -p 1433:1433 --name sql2019 -d mcr.microsoft.com/mssql/server:2019-latest
```
其中,`-e 'ACCEPT_EULA=Y'` 表示接受许可协议,`-e 'SA_PASSWORD=YourStrong!Passw0rd'` 表示设置 sa 用户的密码,`-p 1433:1433` 表示将宿主机的 1433 端口映射到容器的 1433 端口,`--name sql2019` 表示指定容器名称为 sql2019,`-d` 表示以后台模式运行。
3. 进入容器:
```shell
docker exec -it sql2019 /bin/bash
```
4. 使用 SQL Server Management Studio (SSMS) 或其他工具连接到 SQL Server,连接字符串如下:
```
Server=localhost,1433;Database=master;User Id=sa;Password=YourStrong!Passw0rd;
```
注意,`localhost` 指的是宿主机 IP,如果是连接到本机的容器,则可以使用 `127.0.0.1` 或 `localhost`。
以上就是使用 Docker 部署 SQL Server 2019 的步骤。