阿里云数据库基本架构
上图展示的是阿里云数据库的基本架构(share-nothing)。该结构采取一主一从的备份方式保证可靠性,其中 Proxy代理客户端所有读写数据库请求,HA为执行健康检查策略的主机,M为主数据库,S为从数据库。
一般数据读写过程
主备库之间的数据读写过程大致分为三类:
- 异步模式:主库收到commit 请求后,依次执行:写redo log prepare,写入binlog,写redo log commit,向客户端返回成功。
- 半同步模式:主库收到commit 后,依次执行 redo log prepare,写binlog/发往从库(两个步骤并行),等待从库回复收到ack,redo log commit,向客户端返回成功。
- 强同步模式:主库收到commit 后,依次执行 redo log prepare,写binlog/发往从库(并行),等待从库将数据刷新到磁盘后,redo log commit,向客户端返回成功。
健康检查机制
在Share-Nothing结构中,HA通过心跳链接获取Proxy,M和S健康状态信息,心跳链接通过执行update语句对MySQL实例的VIP和IP进行检测。心跳检测成功后,HA将主库的时间戳信息保存到本地,同时更新主从库各自的心跳表,让从