数据库之高可用性组

高可用性组:是一组SQL Server实例,由一个或多个主数据库和多个辅助数据库构成。

高可用性组之间数据是同步的,有两种方式同步数据:同步提交模式和异步提交模式。

可用性数据库:属于可用性组的数据库。 对于每个可用性数据库,可用性组将保留一个读写副本("主数据库" )和一个到八个只读副本("辅助数据库" )。

主数据库:可用性数据库的读写副本。

辅助数据库:可用性数据库的只读副本。

可用性副本

可用性组的实例化,该可用性组由特定的 SQL Server 实例承载,并维护属于该可用性组的每个可用性数据库的本地副本。 存在两种类型的可用性副本:一个 主副本 和一至八个 辅助副本。

主要副本

使主数据库可用于来自客户端的读写连接并用于将每个主数据库的事务日志记录发送到每个辅助副本的可用性副本。

次要副本

维护各可用性数据库的辅助副本的可用性副本,充当可用性组的潜在故障转移目标。 或者,辅助副本可以支持对辅助数据库进行只读访问,并支持对辅助数据库创建备份。

可用性组侦听器

一个服务器名称,客户端可连接到此服务器以访问 AlwaysOn 可用性组的主要副本或次要副本中的数据库。 可用性组侦听器将传入连接定向到主副本或只读辅助副本。

高可用性组同步方式

同步提交模式

当向主数据库写入数据时,主数据库会将事务日志记录发送到每个辅助数据库,并且主数据库会等辅助数据库完成事务日志同步。可能会导致事务的滞后。

同步操作按下列方式维护:

  1. 从客户端收到事务后,主副本会将事务的日志写入事务日志,同时将该日志记录发送到辅助副本。
  2. 日志记录写入主数据库的事务日志后,事务将不能撤消,除非在此时故障转移到尚未收到该日志的辅助副本。 主副本将等待来自同步提交辅助副本的确认。
  3. 辅助副本将强制写入日志,并将确认消息返回给主副本。
  4. 收到来自辅助副本的确认后,主副本将完成提交处理并向客户端发送一条确认消息。

异步提交模式

与同步提交方式不同的是,主数据库不会等辅助数据库完成事务日志同步。可能会导致辅助数据库数据丢失。

故障转移

同步提交模式的故障转移

手动

手动故障转移在数据库管理员发出故障转移命令之后发生,它将导致已同步的辅助副本转换为主角色(同时确保数据受到保护),而主副本转换为辅助角色。 手动故障转移要求主副本和目标辅助副本都在同步提交模式下运行,并且辅助副本必须已同步

自动

自动故障转移是为了响应导致已同步的辅助副本转换为主角色(同时确保数据受到保护)的故障而执行的。 如果以前的主副本变为可用,则它将转换为辅助角色。 自动故障转移要求主副本和目标辅助副本都在同步提交模式下运行,并且故障转移模式设置为"自动"。 此外,次要副本必须已同步并具有 WSFC 仲裁,且满足由可用性组的灵活故障转移策略指定的条件。

异步提交模式的故障转移

异步提交模式 :

强制手动:强制故障转移是一个灾难恢复选项。 当目标辅助副本与主副本不同步时,强制故障转移是唯一可能的故障转移形式。

异步提交的强制故障转移方式可能导致数据丢失

相关推荐
远方160921 分钟前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.1 小时前
【Oracle】数据仓库
数据库·oracle
恰薯条的屑海鸥2 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖2 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
曼汐 .2 小时前
数据库管理与高可用-MySQL高可用
数据库·mysql
2301_793102492 小时前
Linux——MySql数据库
linux·数据库
喵叔哟2 小时前
第4章:Cypher查询语言基础
数据库
刘 大 望2 小时前
数据库-联合查询(内连接外连接),子查询,合并查询
java·数据库·sql·mysql
从零开始学习人工智能3 小时前
Doris 数据库深度解析:架构、原理与实战应用
数据库·架构
LiRuiJie3 小时前
深入剖析MySQL锁机制,多事务并发场景锁竞争
数据库·mysql