在上篇《MySQL--当mysqldump --single-transaction遇到alter table》中测试发现,在MySQL 5.6版本中,如果在mysqldump期间修改表,可能会导致mysqldump报错,而该结论与同事的执行现象不符,因此在MySQL 5.5版本中进行下测试。

测试环境:

MySQL 5.5.14

在数据库testdb01下有表tb1001,当前表中存有两条数据:

##=========================================================##

发现竟然返回的是空集,没有任何报错。

这也就合理解释我同事操作的现象:在mysqldump过程中,修改表结构,修改操作没有被阻塞,mysqldump操作也”正常完成“。

由于SELECT /*!40001 SQL_NO_CACHE */ * FROM `tb1001`操作没有返回错误也没有返回数据,mysqldump进程会将tb1001当做一个空表来处理,然后继续导出后面的表直至导出所有的表然后返回执行成功的状态。但导出的备份已经缺失tb1001的数据,如果恰好采用该备份去恢复数据,那么必然最终导致“数据丢失”。

解决办法:

在对MySQL 5.5版本进行修改表操作前,先检查当前服务器是否在进行mysqldump操作,避免两者并行执行。

如果对mysqldump已经导出过的表进行修改操作,修改操作会被阻塞,直到mysqldump结束,该情况与MySQL 5.6版本一致。

##=========================================================================================##

总结:

对于MySQL 5.5版本,mysqldump与表修改操作同时执行:

如果修改表操作在 ”mysqldump开启后但还未导出修改表数据前“ 的时间段内开始,则修改表操作成功完成,而mysqldump不会执行失败,但是无法正常导出修改表的数据;

如果修改表操作在 “mysqldum已导出修改表数据但还未结束mysqldump操作前”的时间段内开始,则修改表操作被阻塞,mysqldum能成功完成,在mysqldump操作完成后修改表操作方可正常执行。

对于MySQL 5.5版本,应该避免mysqldump和修改表操作同时进行,以避免备份丢失修改表的数据,造成数据不一致!

##=========================================================================================##

MySQL--当mysqldump --single-transaction遇到alter table(2)的更多相关文章

  1. MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354

    MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354 [SQ ...

  2. SQL ALTER TABLE 命令

    SQL ALTER TABLE 命令 SQL ALTER TABLE 命令用于添加.删除或者更改现有数据表中的列. 你还可以用 ALTER TABLE 命令来添加或者删除现有数据表上的约束. 语法: ...

  3. alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案

    在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久. 官网的一段话,可以理解下 http:// ...

  4. mysql 添加索引,ALTER TABLE和CREATE INDEX的区别

    nvicat-->mysql表设计-->创建索引. (1)使用ALTER TABLE语句创建索引,其中包括普通索引.UNIQUE索引和PRIMARY KEY索引3种创建索引的格式: PRI ...

  5. MySQL alter table时执行innobackupex全备再看Seconds_Behind_Master

    1.场景描述 早上7:25 接到Report中心同学告警,昨天业务报表数据没有完整跑出来,缺少500位业务员的数据,并且很快定位到,缺少的是huabei_order库上的数据.Report中心的数据是 ...

  6. mysql ERROR 1062: ALTER TABLE causes auto_increment resequen

    当我用Navicat尝试修改已有记录的mysql数据表的主键为自动增长时,报出以下错误 1602 ALTER TABLE causes auto_increment resequencing, res ...

  7. 【待整理】MySQL alter table modify vs alter table add产生state不一样

    MySQL:5.6.35 OS:redhat5.8 今天更新数据库某些表字段,有如下两SQL: ①alter table xx modify xxxx;(表大概是77w) ②alter table s ...

  8. MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN

    ALTER COLUMN 语法: ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} 作用: 设置或删除列的默认值.该操作会直接修 ...

  9. mysql 的 alter table 操作性能小提示

    通常情况下,修改表的结构一般不会有太大问题,无非就是一个 alter table 操作,但是对于大表做 alter 操作是一个大问题,请小伙伴们慎重. mysql执行大部分修改表结构操作方法是创建一个 ...

  10. mysql Alter table设置default的问题,是bug么?

    不用不知道,用了没用? 昨天在线上创建了一个表,其中有两个列是timestamp类型的,创建语句假设是这样的: create table timetest(id int, createtime tim ...

随机推荐

  1. EMC在线测试题目及答案 绿色为正确答案,红色为错误答案

    1. 以下哪一项技术可以将IT的物理资源放在一个共享池中以及提升它们的利用率? 分区 虚拟化 协调 LUN 屏蔽 2. 哪一项是EMC的基于块-存储(block-based)的高端存储? Atmos ...

  2. webapi “ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。

    今天在来一发  webapi的一个知识点 相信用过webapi的对这个错误 已经看在眼里 痛在心里了把 我百度也搜了一下  看了一下   然后发现他们的解决办法 并没有什么软用. 然后想起来当时上学的 ...

  3. 【图解HTTP】笔记摘要

    第1章 了解Web及网络基础 根据Web浏览器(Web客户端)地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示出Web页面. CERN(欧洲核子研究组 ...

  4. AtomicInteger的使用

    JDK API 1.7相关介绍 可以用原子方式更新的 int 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicInteger 可用在应用 ...

  5. What does a Bayes factor feel like?(转)

    A Bayes factor (BF) is a statistical index that quantifies the evidence for a hypothesis, compared t ...

  6. Apache许可翻译

    https://www.apache.org/licenses/LICENSE-2.0 Apache许可 2.0 2004.1 使用.复制和发行的术语和条件. 1 定义 "License&q ...

  7. Swoole笔记(二)

    本文示例代码详见:https://github.com/52fhy/swoole_demo. Task 我们可以在worker进程中投递一个异步任务到task_worker池中.此函数是非阻塞的,执行 ...

  8. 配置Nginx作为web server详解

    keepalived+nginx:实现高可用 corosync+ngin Nginx: 轻量级的反向代理 web服务器 处理静态文件,索引文件以及自动索引,打开文件描述缓存 使用缓存加速反向代理,简单 ...

  9. 自己动手实现html去标签和文本提取

    随意观看 [TOC] 工具 python3.6 正则表达式(别的语言思路一样,容易借鉴) python正则表达式:flags的应用 这里主要介绍一下re.compile(pattern[, flags ...

  10. VR全景:vr元年过后,这些企业如何发动“vr+”应用引擎?

    2016年,VR可谓是四处衍生.从如痴如迷的游戏行业到喜闻乐见的影视行业,再到医疗.军事.房地产,随便呼出一个"+",VR便能左右逢源,VR+各行各业,俨然成为一种标配.最近,Ma ...