ITPub博客

首页 > 数据库 > 数据库开发技术 > mysqldump命令详解 4-按条件备份表数据

mysqldump命令详解 4-按条件备份表数据

原创 数据库开发技术 作者:ibsbforever 时间:2019-03-20 21:27:00 0 删除 编辑

 

往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号


前情提要

MySQL 5.7 Windows平台安装

MySQL 5.7 Linux平台安装 Part 1

MySQL 5.7.21 Linux平台安装 Part 2

MySQL 5.7 常用命令

[MySQL学习笔记]1. MySQL测试数据的构造

[MySQL学习笔记]2. mysqldump命令详解 Part 1

[MySQL学习笔记] 3.mysqldump命令详解 Part 2 -备份全库

mysqldump命令详解 Part 3-备份单表

[MySQL故障处理]记一次innobackupex导致的从库无法同步的问题

这个专题讲一些MySQL日常运维的异常处理

实验环境:

  • MySQL 5.7.25

  • Redhat 6.10

前面我们建立了数据库并建立相关的对象

  • 数据库

  • 表

  • 存储过程

  • 函数

  • 触发器

  • 事件

今天的内容为按条件备份表数据

1. 备份语句

我们来备份test数据库中的innodb_table表和isam_table表中id为10的数据

从这起开始在备份语句中加入--single-transaction 参数

该参数在innodb中可以不对表施加写入锁进行导出,MyISAM引擎还是锁表的

mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF  --databases test --tables innodb_table  isam_table --where='id=10'  > /tmp/table_id.sql

注意这里 innodb_table 拥有id为10的数据 而 isam_table则没有

2. 内容解析

2.1 版本信息


首先依然是mysqldump的版本信息 主机名信息

已经一些变量的设置

再次提醒 \/!123456\/ 不是注释

详情看上一节介绍

2.2 表的结构


接下来是表的信息

首先是如果表存在则删除表(DROP TABLE IF EXISTS)

之后建立表(CREATE TABLE)

2.3 表数据的备份


接下来是表数据的备份(Dumping data for table)

这里有提示只备份id=10的数据

首先锁定表不让其他进程写(LOCK TABLE WRITE)

然后使MySQL停止更新非唯一索引(ALTER TABLE DISABLE KEYS),这样能加快插入速度

之后将数据转换成insert语句(INSERT INTO)

之后重新建立丢失的索引(ALTER TABLE ENABLE KEYS)

最后释放锁(UNLOCK TABLES)

2.4 备份没有符合条件的表



可以看出虽然isam_table表没有符合条件的数据

但是还是会导出表结构 只是没有数据的导入

2.5 触发器的导出


可以看到isam_table表的触发器会一并导出

3. 总结

可以看出单独导出表的某行有如下内容

  • 删除表(如果存在)

  • 建表

  • 锁表

  • 禁用非唯一索引

  • 插入数据

  • 启用非唯一索引(重建索引)

  • 释放锁

  • 触发器(如果有)

不同于全库备份没有如下内容

  • 建立数据库(如果不存在)

  • 使用数据库

同时如果表中没有符合条件的行,表结构也是会导出的

同样不会导出存储过程和函数

今天的内容就到这里,欢迎查看





可点击阅读原文获得更好的阅读体验,推荐在PC端阅读


也可在公众号内回复 按条件备份表数据 搜索相关内容

或直接打开个人网页搜索


http://


往期专题包括:


  • Python 自动化运维

  • MySQL  安装

  • 打造属于自己的监控系统

  • Python爬虫基础

  • Oracle awr报告全解析

  • Oracle ASM全解析

  • Oracle Data Guard全解析

  • Oracle ClusterWare全解析

  • Oracle常见参数解析

  • Oracle常见故障处理

  • Oracle SQL优化案例


原文作者:宅必备;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
Oracle,MySQL DBA,Python自动化运维

注册时间:2019-01-29

  • 博文量
    245
  • 访问量
    243858