MSSQL 的alwaysOn 怎么用docker部署
时间: 2023-08-22 11:09:40 浏览: 98
要在 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。
阅读全文