四、AlwaysOn配置
1、开启AlwaysOn高可用性功能。
1.1、开启Server01的可用性组
1.2、需要重启服务:属于SQL server群集节点的服务,需要通过故障转移界面重启
1.3、故障转移后,并能将此设置同步到节点02。如下界面显示。
1.4、开启Server03的可用性组,设置界面
1.5、重启服务界面
2、新建并备份需要配置的数据库
2.1、新建共享文件夹,用于存放共享备份文件。
2.2、所有用户共享
2.3、新建数据库并备份需要配置可用性组的数据库:AlwaysOn01,AlwaysOn02
2.4、拷贝备份文件:\\server01\soft到server03本地服务器。
2.5、还原两个数据库到指定磁盘,norecovery;以下是还原界面
3、配置AlwaysOn可用性组(界面)
3.1、打开客户端连接工具连接CLUSTEST03\CLUSTEST03;打开alwaysOn高可用性,右键新建高可用性向导,进入新建可用性组界面。
3.2、指定可用性组名称:AlwaysOn01
3.3、现在需要配置的数据库:alwaysOn01,alwaysOn02;alwaysOn03和alwaysOn04没有备份,因此会提示需要完整备份。
3.4、指定副本服务器,添加副本服务器界面:server03
3.5、默认不同步提交,不自动故障转移,不可读辅助副本,以下是副本界面
3.6、端点配置,“端点 URL”标识数据库镜像端点的传输协议 — TCP、服务器实例的系统地址以及与端点关联的端口号;以下是端点配置界面。
3.7、备份首选项,自动备份放在哪里执行,一般默认即可。若执行自动备份脚本时,需确认备份脚本适合在哪个副本上执行,建议首先在辅助副本上优先,若有多个副本则可设置每个副本的优先级(1-100),确定哪个副本优先备份,若副本都不能备份,则需要主副本上执行自动备份。
3.8、暂不创建侦听。
3.9、由于已经手动还原,此处仅仅是将数据库连接即可。
3.10、由于暂不创建,检查侦听警告。由于不是完整配置,则会跳过磁盘和网络等检查。
3.11、摘要界面。
3.12、配置成功界面。
此警告属于以下第一点:承载主副本的群集节点没有一票。我们目前的主节点是SQL群集的虚拟IP,因此不存在仲裁,此警告可以忽略。
3.13、同步完成后主副本会显示已同步,辅助副本显示正在同步(异步传送情况)。
3.14、可用性组侦听器右键,创建侦听器,进入创建页面。
3.15、侦听器DNS名称:FailOver;端口:55944;静态IP:10.0.0.224
3.16、侦听器创建成功后与AlwaysOn组的依赖关系:AlwaysOn依赖于侦听器
3.17、使用侦听器IP连接,默认连接到主副本服务器。
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];