mysql 2PC二阶段协义 与 日志闪回

Posted zengkefu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 2PC二阶段协义 与 日志闪回相关的知识,希望对你有一定的参考价值。

mysql两份日志:

binlog :server
innodb redo log:engine

两份日志顺序一致性:否则主备不一致
两份日志:原子性,同时都有,同时都无

2PC二阶段协义:
  第一阶段:准备界段
  第二阶段:提交阶段
  
买房子示例
   准备界段: 
     房产局确认:
        买方:钱是否准备好
        卖方:房子是否可卖
   提交界段:
      政务中心:
         买方: 确认按手印
         卖方:确认按手印  
 ----------------------------------------------------------------
 mysql 日志两阶段提交: 刷日志
   准备阶段:
        innodb_prepare
        binlog_prepare
       
        
   提交阶段
        binlog_commit
        innodb_commit
        
优化后的状态:
   准备阶段:
        innodb_prepare
        binlog_prepare   //binlog commit合并到此操作     ???
   提交阶段
        innodb_commit
  
------------------------------------------------------------------- 
两种日志异常处理:
        binlog的commit log 与innodb的commit log同时存在:不操作
        binlog的prepare log与innodb的prepare log同时存在 :innodb commit
        
        binlog的prepare log存在,innodb的prepare log 不存在 :re-play innodb
        binlog的prepare log不存在,innodb的prepare log 存在 :rollback
        
       (以binlog 为准,主备一致原则)
   
mysql日志gpoup commit
     mysql数据库innodb 存储引警一直有一个bug,就是当开启binlog时,无法进行group commit,
     究其原因,是为了保证innodb 存储引警的事务日志与binlog日志的顺序一致性
     
在prepare 前需要取得mutex,直到commit 完成之后释放,这也禁用了group commit功能

mariadb 彻底解决了这个组提交的问题
     
 
 
 
 MYSQL数据同步
      1.全量dump某个时点之前的数据,并记当全量dump完成后数据库日志的位置
      2.将全量的备份LOAD到mysql
      3.从刚才全量完成dump后的日志开始,通过解析日志为可执行的sql,远程LOAD到MYSQL
      4.通过不断的应用log,使MYSQL 慢慢追上主库
      5.将用户的数据库设置为只读,继续应用日志到MYSQL,直到完全同步 
      
mysql闪回功能
   binlog_format 必须是 row 模式
   下载专门的mysqlbinlog工具
   暂支持insert update delete 做闪回
 
MYSQL 闪回功能操作步聚:
  1. 查看binlog中的position包括start position 和 stop position确认要闪回的位置点
     mysql>show binlog events in "xxxx.log";
  2.执行闪回命令
     mysqlbinlog -B -v --start-position=120 --stop -position=8836 /home/mysql/binlog.000002|mysql test
   

 

以上是关于mysql 2PC二阶段协义 与 日志闪回的主要内容,如果未能解决你的问题,请参考以下文章

Mysql事务—内部XA的两阶段提交(2pc)

二阶段提交和三阶段提交

一分钟了解两阶段提交2PC(运营MM也懂了)

使用 Atomikos 的两阶段提交 (2PC) 配置

分布式事务-02:2PC 二阶段提交协议实现过程及原理

1PC, 2PC, 3PC