MYSQL学习笔记3--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数据同步
.全量dump某个时点之前的数据,并记当全量dump完成后数据库日志的位置
.将全量的备份LOAD到mysql
.从刚才全量完成dump后的日志开始,通过解析日志为可执行的sql,远程LOAD到MYSQL
.通过不断的应用log,使MYSQL 慢慢追上主库
.将用户的数据库设置为只读,继续应用日志到MYSQL,直到完全同步 mysql闪回功能
binlog_format 必须是 row 模式
下载专门的mysqlbinlog工具
暂支持insert update delete 做闪回 MYSQL 闪回功能操作步聚:
. 查看binlog中的position包括start position 和 stop position确认要闪回的位置点
mysql>show binlog events in "xxxx.log";
.执行闪回命令
mysqlbinlog -B -v --start-position= --stop -position= /home/mysql/binlog.|mysql test
MYSQL学习笔记3--mysql 2PC二阶段协义 与 日志闪回的更多相关文章
- 吴裕雄--天生自然MySQL学习笔记:MySQL 安装
所有平台的 MySQL 下载地址为: MySQL 下载:https://dev.mysql.com/downloads/mysql/ 注意:安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 运算符
要介绍 MySQL 的运算符及运算符的优先级. MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 算术运算符 MySQL 支持的算术运算符包括: 在除法运算和模运算中, ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 导入数据
1.mysql 命令导入 使用 mysql 命令导入语法格式为: mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql) 实例: # mysql -uroot -p12 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 处理重复数据
有些 MySQL 数据表中可能存在重复的记录,有些情况允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 防止表中出现重复数据 可以在 MySQL 数据表中设置指定的字段为 PRIMARY K ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 临时表
MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间. MySQL临时表只在当前连接可见,如果使用PHP脚本来创建My ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 事务
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL GROUP BY 语句
GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. GROUP BY 语法 SELECT column_name, funct ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL UNION 操作符
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复的数据. 语法 MySQL UNION 操作符语法格式: SELECT ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 连接
使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# my ...
随机推荐
- leetcode第四题:Median of Two Sorted Arrays (java)
Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respectively. Find t ...
- complex(x):创建一个复数
使用python可以实现将一个整数或者浮点数转换为一个复数: 演示如下: >>> # 演示复数函数:complex(x) ... >>> x = complex(1 ...
- 计算几何模板 (bzoj 1336,poj 2451 ,poj3968)
poj 3968 (bzoj 2642) 二分+半平面交,每次不用排序,这是几个算几版综合. #include<iostream> #include<cstdio> #incl ...
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】
转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...
- Android 删除指定文件代码
package com.tware.pdfdrop; import java.io.File; import android.app.Activity; import android.graphics ...
- Yii modules中layout文件的调用
在YII中,如果我们使用了modules区分了前后台,那么在不同的modules中需要使用各自的layout文件,在使用中发现经常会调用不到modules中的layout,下面介绍一下如何才能正确的调 ...
- 解读30个提高Web程序执行效率的好经验
其实微博是个好东西,关注一些技术博主之后,你不用再逛好多论坛了,因为一些很好的文章微博会告诉你,最近看到酷勤网推荐的一篇文章<30个提高Web程序执行效率的好经验>,文章写得不错,提到一些 ...
- postMan 使用
Postman功能(https://www.getpostman.com/features) 主要用于模拟网络请求包 快速创建请求 回放.管理请求 快速设置网络代理 安装 下载地址:https://w ...
- 【CF】3B Lorry
这道题目网上有几个题解,均有问题.其实就是简单的贪心+排序,没必要做的那么复杂.一旦tot+curv > v时,显然curv==2, 有三种可能:(1)取出最小的curv==1的pp,装入当前的 ...
- bzoj1558
好题,初看以为只要差分然后维护相同的段数目但是请注意下面的情况2 3 5 8 9 1 2 3 4 这显然答案是3而不是4因此我们还要再维护ld,rd表示左右单独的段长度和s表示不包括左右单独的段,中间 ...