数据库之高可用性组

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

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

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

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

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

可用性副本

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

主要副本

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

次要副本

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

可用性组侦听器

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

高可用性组同步方式

同步提交模式

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

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

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

异步提交模式

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

故障转移

同步提交模式的故障转移

手动

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

自动

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

异步提交模式的故障转移

异步提交模式 :

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

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

相关推荐
JH30735 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介7 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人8 分钟前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康1 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
代码吐槽菌2 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
数字扫地僧2 小时前
WebLogic 版本升级的注意事项与流程
数据库
Viktor_Ye2 小时前
高效集成易快报与金蝶应付单的方案
java·前端·数据库
努力算法的小明3 小时前
SQL 复杂查询
数据库·sql
斗-匕3 小时前
MySQL 三大日志详解
数据库·mysql·oracle