AlwaysOn可用性组测试环境安装与配置(二)

时间:2022-11-19 01:27:42

四、AlwaysOn配置

1、开启AlwaysOn高可用性功能。

1.1、开启Server01的可用性组

AlwaysOn可用性组测试环境安装与配置(二)

1.2、需要重启服务:属于SQL server群集节点的服务,需要通过故障转移界面重启

AlwaysOn可用性组测试环境安装与配置(二)

1.3、故障转移后,并能将此设置同步到节点02。如下界面显示。

AlwaysOn可用性组测试环境安装与配置(二)

1.4、开启Server03的可用性组,设置界面

AlwaysOn可用性组测试环境安装与配置(二)

1.5、重启服务界面

AlwaysOn可用性组测试环境安装与配置(二)

2、新建并备份需要配置的数据库

2.1、新建共享文件夹,用于存放共享备份文件。

AlwaysOn可用性组测试环境安装与配置(二)

2.2、所有用户共享

AlwaysOn可用性组测试环境安装与配置(二)

2.3、新建数据库并备份需要配置可用性组的数据库:AlwaysOn01,AlwaysOn02

AlwaysOn可用性组测试环境安装与配置(二)

2.4、拷贝备份文件:\\server01\soft到server03本地服务器。

AlwaysOn可用性组测试环境安装与配置(二)

2.5、还原两个数据库到指定磁盘,norecovery;以下是还原界面

AlwaysOn可用性组测试环境安装与配置(二)

3、配置AlwaysOn可用性组(界面)

3.1、打开客户端连接工具连接CLUSTEST03\CLUSTEST03;打开alwaysOn高可用性,右键新建高可用性向导,进入新建可用性组界面。

AlwaysOn可用性组测试环境安装与配置(二)

3.2、指定可用性组名称:AlwaysOn01

AlwaysOn可用性组测试环境安装与配置(二)

3.3、现在需要配置的数据库:alwaysOn01,alwaysOn02;alwaysOn03和alwaysOn04没有备份,因此会提示需要完整备份。

AlwaysOn可用性组测试环境安装与配置(二)

3.4、指定副本服务器,添加副本服务器界面:server03

AlwaysOn可用性组测试环境安装与配置(二)

3.5、默认不同步提交,不自动故障转移,不可读辅助副本,以下是副本界面

AlwaysOn可用性组测试环境安装与配置(二)

3.6、端点配置,“端点 URL”标识数据库镜像端点的传输协议 — TCP、服务器实例的系统地址以及与端点关联的端口号;以下是端点配置界面。

AlwaysOn可用性组测试环境安装与配置(二)

3.7、备份首选项,自动备份放在哪里执行,一般默认即可。若执行自动备份脚本时,需确认备份脚本适合在哪个副本上执行,建议首先在辅助副本上优先,若有多个副本则可设置每个副本的优先级(1-100),确定哪个副本优先备份,若副本都不能备份,则需要主副本上执行自动备份。

AlwaysOn可用性组测试环境安装与配置(二)

3.8、暂不创建侦听。

AlwaysOn可用性组测试环境安装与配置(二)

3.9、由于已经手动还原,此处仅仅是将数据库连接即可。

AlwaysOn可用性组测试环境安装与配置(二)

3.10、由于暂不创建,检查侦听警告。由于不是完整配置,则会跳过磁盘和网络等检查。

AlwaysOn可用性组测试环境安装与配置(二)

3.11、摘要界面。

AlwaysOn可用性组测试环境安装与配置(二)

3.12、配置成功界面。

AlwaysOn可用性组测试环境安装与配置(二)

此警告属于以下第一点:承载主副本的群集节点没有一票。我们目前的主节点是SQL群集的虚拟IP,因此不存在仲裁,此警告可以忽略。

AlwaysOn可用性组测试环境安装与配置(二)

3.13、同步完成后主副本会显示已同步,辅助副本显示正在同步(异步传送情况)。

AlwaysOn可用性组测试环境安装与配置(二)

3.14、可用性组侦听器右键,创建侦听器,进入创建页面。

AlwaysOn可用性组测试环境安装与配置(二)

3.15、侦听器DNS名称:FailOver;端口:55944;静态IP:10.0.0.224

AlwaysOn可用性组测试环境安装与配置(二)

3.16、侦听器创建成功后与AlwaysOn组的依赖关系:AlwaysOn依赖于侦听器

AlwaysOn可用性组测试环境安装与配置(二)

3.17、使用侦听器IP连接,默认连接到主副本服务器。

AlwaysOn可用性组测试环境安装与配置(二)

4、配置AlwaysOn可用性组(T-SQL)

4.1 添加端点—主备都要执行

--1--主机创建镜像端点--windows验证方式

IF NOT EXISTS (SELECT TOP 1 1

FROM master.sys.tcp_endpoints

WHERE type_desc = 'DATABASE_MIRRORING')

CREATE ENDPOINT Hadr_endpoint

STATE
= STARTED

AS TCP ( LISTENER_PORT = 5022,LISTENER_IP = ALL)

FOR DATABASE_MIRRORING (

AUTHENTICATION
= WINDOWS NEGOTITE,

ENCRYPTION
= REQUIRED ALGORITHM AES,

ROLE
=ALL);

4.2 添加域用户—主备都要执行

--2--添加用于镜像的域账户fzcyjh\clustest--专门用于alwaysOn的配置

USE master;

GO

CREATE LOGIN [fzcyjh\clustest] FROM WINDOWS;

GO

-- And Grant this login connect permissions on the endpoint:

GRANT CONNECT ON ENDPOINT::Hadr_endpoint

TO [fzcyjh\clustest];

GO

4.3 备份主机数据库—主机备份

--3--备份相关数据库到共享路径

--主机上

backup database alwayson03 to disk =N'D:\soft\alwayson03_full.bak'

backup log alwayson03 to disk =N'D:\soft\alwayson03_log.bak'

backup database alwayson04 to disk =N'D:\soft\alwayson04_full.bak'

backup log alwayson04 to disk =N'D:\soft\alwayson04_log.bak'

4.4 创建可用性组—主机执行

--4--创建可用性组

CREATE AVAILABILITY GROUP MyAG

FOR

DATABASE alwayson03, alwayson04

REPLICA
ON

'CLUSTEST03\CLUSTEST03' WITH --主副本

(

ENDPOINT_URL
= 'TCP://CLUSTEST03.fzcyjh.com:5022',

AVAILABILITY_MODE
= ASYNCHRONOUS_COMMIT,

FAILOVER_MODE
= MANUAL

),

'Server03' WITH --辅助副本

(

ENDPOINT_URL
= 'TCP://Server03.fzcyjh.com:5022',

AVAILABILITY_MODE
= ASYNCHRONOUS_COMMIT,

FAILOVER_MODE
= MANUAL

);

4.5 还原备机数据库

--新建备份测试数据库

create database alwayson03

create database alwayson04

--还原数据库

restore database alwayson03 from disk =N'C:\alwayson03_full.bak'

with replace,norecovery,move 'alwayson03' to 'C:\alwayson03.mdf',

move
'alwayson03_log' to 'C:\alwayson03_log.ldf'

restore log alwayson03 from disk =N'C:\alwayson03_log.bak'

with norecovery

restore database alwayson04 from disk =N'C:\alwayson04_full.bak'

with replace,norecovery,move 'alwayson04' to 'C:\alwayson04.mdf',

move
'alwayson04_log' to 'C:\alwayson04_log.ldf'

restore log alwayson04 from disk =N'C:\alwayson04_log.bak'

with norecovery

4.6 将备机连接到主机

--4--将备机加入可用性组

ALTER AVAILABILITY GROUP [MyAG] JOIN

4.7 将备机数据库连接到主机

--5--将数据库加入可用性组

ALTER DATABASE [alwayson04] SET HADR AVAILABILITY GROUP = [MyAG];

ALTER DATABASE [alwayson03] SET HADR AVAILABILITY GROUP = [MyAG];