SQL Server 2016 AlwaysOn搭建
来源:互联网 发布:keynote for windows 编辑:程序博客网 时间:2024/05/29 10:31
AlwaysOn可用性组信息
角色
节点
节点类型
同步方式
支持故障转移类型
Availability Group
Primay Replica
SQLC01
SQL Cluster
Synchronous-commit
Automatic failover
Secondary Replica
A06
Instance
Synchronous -commit
Automatic failover
Secondary Replica
A08
Instance
Asynchronous -commit
Forced failover
示意图如下,可用性组FrontDBServer由三个节点组成,A06为主副本,A08和SQLC01为从副本,A08为同步提交数据,自动故障转移,可供查询,SQLC01为异步提交数据,手工强制故障转移,只有只读直连时可供查询;[ 客户端通过公共网络进行访问,节点之间通过私有网络进行通信。
1 配置所有副本支持AlwaysOn
打开Sql Server Configuration Manager,点开SQL Server属性,开启AlwaysOn可用性组,重启SQL Server Service。
注意:AlwaysOn是基于Windows故障转移群集的,所以所有节点必须加入同一Windows故障转移群集。
如果不是群集节点则提示:
This computer is not a node in a failover cluster.
本打算用SQL故障转移集群做主副本的,可是群集做主副本不支持自动故障转移,只好做罢,改做个只读备份。
2 用向导创建一个AlwaysOn可用性组。
2.1 打开SQL Server Management Studio,连接任一副本,选择菜单AlwaysOn High Availability->Availability Group,右键选择菜单New Availability Group Wizard…
2.2 下一步,命名组,勾选Database Level Health Detection开启Database Level Health Detection是开启数据库级别的健康检查,是推荐配置,更多参考:https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/sql-server-always-on-database-health-detection-failover-option
2.3 勾选包含的数据库,这些库将组成一个可用性组,若出现异常则做为一个整体进行故障转移。
要求数据库恢复模式为完全,且已做过完整备份。
若无备份则提示:
若非完全恢复模式:
2.4 设置副本属性
2.4.1 设置转移方式,提交方式及副本的可读性
Readable Secondary有三种取值,如下:No
No
Direct connections are allowed to secondary databases of this replica. They are not available for read access. This is the default setting.
Read-intent only
Only direct read-only connections are allowed to secondary databases of this replica. The secondary database(s) are all available for read access.
Yes
All connections are allowed to secondary databases of this replica, but only for read access. The secondary database(s) are all available for read access.
2.4.2 设置副本之间通讯信息
A06和A08设置私有网卡的IP,SQLC01是集群,看来只能用实例名,好在只是个只读备份
注意最后一列SQL Server Service Account,要使用域账号,且对数据库有读写权限.
2.4.3 设置监听器
设置监听器DNS名和虚拟IP,用于连接可用组.这个是给客户端使用的,所以用公共网卡IP
使用本地账号则会提示:
2.5 副本上数据库的初始化方式
2.6 下一步 运行验证
2.7 下一步
2.8 下一步,创建成功
创建成功后,可用管理器直接连监听器名FrontDBServer,查看副本状态,如有错误,可通过SQL Server错误日志定位问题,如下是有一个SQL Server实例是用本地账户运行导致的.
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log
ErrorLog
2017-07-14 13:32:43.82 Logon Database Mirroring login attempt by user 'WSW\WIN2012R2A06$.' failed with error: 'Connection handshake failed. The login 'WSW\WIN2012R2A06$' does not have CONNECT permission on the endpoint. State 84.'. [SERVER: 192.168.187.155]
连接只读副本时需要指定ApplicationIntent=ReadOnly,下图是SQL Server Managerment Studio连接时的设置,.Net代码连接串也要加这个
- SQL Server 2016 AlwaysOn搭建
- 配置SQL Server 2016无域AlwaysOn
- SQL Server AlwaysOn
- SQL Server AlwaysOn
- SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测
- AlwaysOn Availability Groups (SQL Server)
- SQL Server AlwaysOn 和 ILB
- SQL Server 2016 AlwaysON 非域部署脚本
- SQL Server 2016 无域群集配置 AlwaysON 可用性组
- SQL Server 2012 管理新特性:AlwaysOn
- SQL Server 2012中的AlwaysOn尝试
- SQL Server 2012 AlwaysOn探索(上)
- SQL Server 2012 AlwaysOn探索(下)
- SQL Server 2012中的AlwaysOn尝试
- SQL Server 2012 AlwaysOn 异步操作
- SQL Server AlwaysOn中的几个误区
- SQL Server 2012 AlwaysOn探索(上)
- SQL Server 2012 AlwaysOn探索(下)
- VS2015快捷键配置 对比 eclipse
- 单例模式
- webp如何使用,webp是什么?webp如何生成,
- 数据结构之头指针链表de三种插入方式(头插法,尾插法,在pos处插入)
- CSS中的居中方式
- SQL Server 2016 AlwaysOn搭建
- bootstrapValidator中threshold不生效
- 经典算法面试题整理
- PackageManagerService分析(三)
- 数据结构:头结点线性链表
- linux基本命令及操作6(文件权限)
- 关于angular和vue的区别
- lua-1 安装-基础
- Android Studio 打开项目慢的问题