GTID主从
2、http协议 是什么?
状态码
3、lamp架构运行的原理
gtid概念
- GTID即全局事务ID (global transaction identifier),其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID
- GTID能够保证每个MySQL实例事务的执行(不会重复执行同一个事务,并且会补全没有执行的事务)。
- GTID在一组复制中,全局唯一。
开启GTID的必备条件
gtid_mode=on (必选)
enforce-gtid-consistency=1 (必选)
log_bin=mysql-bin (可选) #高可用切换,最好开启该功能
log-slave-updates=1 (可选) #高可用切换,最好打开该功能
GTID工作原理
- master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。
- slave端的i/o 线程将变更的binlog,写入到本地的relay log中。
- sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。
- 如果有记录,说明该GTID的事务已经执行,slave会忽略。
- 如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。
- 在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。
GTID主从配置
数据库角色 | IP | 应用与系统版本 |
---|---|---|
主数据库 | 192.168.253.140 | centos8/redhat8 mysql-5.7 |
从数据库 | 192.168.253.142 | centos8/redhat8 mysql-5.7 |