SQL Server 2019 无域搭建Always On环境

本文详细介绍了如何在没有域服务器的情况下,使用SQLServer2019搭建AlwaysOn高可用环境,包括服务器配置、故障转移集群创建、数据库安装与配置、证书管理及可用性组设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

看了下现在网上的很多文章,搭建Always On的环境都需要配置域服务器,配置步骤很多也很复杂,对说实话我对WinServer操作系统不是很熟,很多组件配置东西都是网上找资料,图形化界面用着很不顺手(有点怀念Linux 的命令行 😂),现在手头上正好有个新项目,客户只提供了两台服务器,正好SQL Server 2019也支持无域模式的Always On,故此记录一下。

环境介绍

软件版本
操作系统WinServer 2019
SQL SERVERSQL SERVER 2019
服务器IP
主数据库192.168.1.105
辅助数据库192.169.1.200

服务器配置

安装故障转移

两台服务器都需要配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改主机名并加入域

  • 两台服务器都需要配置
  • 这里我把主数据库命名为master,辅助数据库命名为backup,计算机全名修改为自己需要的后缀
    在这里插入图片描述

修改hosts文件

  • 两台服务器都需要配置
    这里总共需要4个IP,
192.168.1.105 master.xxxx.com
192.168.1.200 backup.xxxx.com
192.168.1.201 alwaysOn 集群IP,虚拟的
192.168.1.203 mk-SQL 监听器IP

关闭防火墙

设置允许应用或功能通过windows防火墙,这里我为了图省事直接把防火墙关了。

修改DNS

首选DNS服务器修改为 集群IP
这里也可以不用改

新建故障转移集群(任一台服务器)

在这里插入图片描述
在这里插入图片描述

  • 分别输入master、backup添加,效果如图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 查看节点状态
    在这里插入图片描述

在这里跟着提示一路走下去,增加服务器选项时分别输入 master 、backup并逐一添加

验证故障转移是否成功(任意一台电脑关机)

最好测试两台电脑(也可跳过不做这一步)
如192.168.1.105关机(有人问怎么打开这个界面?在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)

验证成功后接下来就可以继续安装SQL SERVER 2019数据库了

设置共享文件

在C盘中新建一个gdmk文件夹(两台都要建)
设置共享人为Everyone,修改权限级别为读取/写入
在这里插入图片描述

数据库安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库配置

数据库开启Always On

右击属性
在这里插入图片描述
在这里插入图片描述

在数据库里面安装证书(特别特别要小心)

  • 主数据库,在SSMS中执行
USE master;
GO
--创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT1 TO FILE = 'C:\gdmk\CERT1.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT1, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
  • 辅助数据库
USE master;
GO
--创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT2 TO FILE = 'C:\gdmk\CERT2.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT2, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

互换和载入对方的证书

将自己的证书分别拷贝至对方服务器
在这里插入图片描述

  • 主数据库
CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
  • 辅助数据库
CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';

这里注意一下,不要载入错了(更保险一点的可以删除该目录下自己本机生成的证书)

新建可用性组(此操作在连接集群ip上进行操作)

  • 为需要同步的数据库创建完整备份
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 添加副本
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 更改为任意副本
    在这里插入图片描述
  • 添加侦听器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

连接的时候连接监听器地址192.168.1.201 就可以了

这时测试下,可以让其中一台电脑故障(关机也可以),这时会自动转移到另外一台数据库上,在另外一台数据库里做增删改查等操作,但凡这台电脑开机,正常运行了,数据也会自动同步到这台电脑数据库里,这台电脑挂了,另外一台电脑的数据库依然接着继续运行,保证数据一切正常。

特别要注意的是

  • 监听器ip可以不用做 连接集群ip就可以了
  • 建立集群的时候必须要在集群ip上建立
  • 集群建立好之后先创建数据库 看到主副本数据库同步之后才能转移
  • 调节的时候我是将主数据库调节为同步模式 副本调节为异步模式
  • 测试的时候 在集群ip上创建数据库高可用性模式 ,看能否同步到主从数据库上
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值