SQL Server AlwaysOn部署
一. AlwaysOn简介
AlwaysOn可用性组是在SQL Server 2012开始提供的全新功能,确保了应用程序数据的可用性,实现零数据丢失。AlwaysOn可用性组技术融合了数据库群集和数据库镜像的优点,此技术的一大好处是提供非共享存储,可以避免因为存储的单点故障而造成的整个可用性方案失效。
AlwaysOn可用性组基于数据库(组)级别,是将一组用户数据库(可以是一个或多个)划到一个组中。每组可用性数据库都由一个可用性副本承载。可用性副本包括一个主副本和一到四个辅助副本。 主副本用于承载主数据库,辅助副本则承载一组辅助数据库并作为可用性组的潜在故障转移目标。主副本使主数据库可用于客户端的读写连接,实现对数据库的更改操作。同时在数据库级别进行同步。 主副本将每个主数据库的事务日志记录发送到每个辅助数据库。 每个辅助副本缓存事务日志记录,然后将它们还原到相应的辅助数据库。 主数据库与每个连接的辅助数据库独立进行数据同步。因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。
部署 AlwaysOn 可用性组需要一个 Windows Server 故障转移群集 (WSFC) 群集。 给定可用性组的每个可用性副本必须位于相同 WSFC 群集的不同节点上。部署AlwaysOn可用性组时,系统会为每个可用性组创建一个 WSFC 资源组。WSFC 群集将监视此资源组,判断节点间的状态,以便评估主副本的运行状况。 当发生失败时实现故障的转移,针对 AlwaysOn 可用性组的仲裁基于 WSFC 群集中的所有节点,而与某一给定群集节点是否承载任何可用性副本无关。
用户可以通过创建一个可用性组侦听器来提供到给定可用性组的主副本的客户端连接。 "可用性组侦听器"采用DNS名称的方式连接给定可用性组的资源,以便将客户端连接定向到相应的可用性副本。
AlwaysOn 可用性组允许将一组数据库同步到最多4个只读副本,这是SQL Server 2012 引入的新特性。SQL Server 2014 将只读副本的数量提升到8个
二. 部署环境准备
1. 部署环境
计算机名 | IP地址 | 操作系统 | 角色 | 备注 |
DC01.contoso.com | 10.0.0.2 | Win2012R2 | DC、DNS服务器 | 提供仲裁文件夹 |
SQL01.contoso.com | 10.0.0.3,20.0.0.2 | Win2012R2 | SQL Server 2014,WSFC群集节点 | AlwaysOn可用性组名称SG01 |
SQL02.contoso.com | 10.0.0.4,20.0.0.3 | Win2012R2 | SQL Server 2014,WSFC群集节点 | |
SQLCluster | 10.0.0.5 | 故障转移群集名称 | ||
SQL | 10.0.0.10 | 侦听器名称 |
2. 创建故障转移群集
配置SQL01和SQL02的LAN和心跳网络
在SQL01和SQL02中添加角色和功能性向导,选择故障转移群集
创建故障转移群集名称计算机SQLCluster
把群集节点SQL01和SQL0添加到安全属性中并赋予完全访问权限
创建完成后,禁用账号
打开故障转移群集管理器,创建群集
添加成员服务器节点
输入之前创建群集计算机账号SQLCluster
群集创建成功后,会自动启用计算机账号和创建dns记录
在域控创建仲裁见证文件夹
配置群集仲裁
三. 安装SQL Server
在SQL01和SQL02上安装本地独立SQL
四. 启用AlwaysOn
新建数据库
恢复模式必须是完整模式
备份此数据库
对Backup启用文件夹共享
打开新建可用性组向导
输入可用性组名称
选择需要添加至可用性组的数据库
添加副本,选择节点二SQL02
五. 创建侦听器
输入侦听器的名称和IP,后续我们访问SQL就通过此FQDN和IP地址进行访问管理
六. 测试群集
当前SQL运行节点为SQL01
关闭SQL01的LAN网卡进行测试
当网卡禁用后,SQL自动切换到SQL02上,变成主动节点
此时我们访问SQL,会发现原来SQL02辅助节点,而现在则是主要节点