ITPub博客

首页 > 数据库 > 数据库开发技术 > mysqldump命令详解 Part 3-备份单表

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

原创 数据库开发技术 作者:ibsbforever 时间:2019-03-12 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 -备份全库

实验环境:

  • MySQL 5.7.25

  • Redhat 6.10

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

  • 数据库

  • 表

  • 存储过程

  • 函数

  • 触发器

  • 事件

今天的内容为备份全库

1. 备份语句

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

mysqldump -h127.0.0.1 -usystem -p123456  --set-gtid-purged=OFF  --databases  test --tables innodb_table  isam_table > /tmp/table.sql

2. 内容解析

2.1 版本信息


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

已经一些变量的设置

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

详情看上一节介绍

2.2 表的结构


接下来是表的信息

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

之后建立表(CREATE TABLE)

2.3 表数据的备份


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

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

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

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

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

最后释放锁(UNLOCK TABLES)

2.4 触发器的导出


可以看到单独导出表的话,该表的触发器会一并导出

3. 总结

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

  • 删除表(如果存在)

  • 建表

  • 锁表

  • 禁用非唯一索引

  • 插入数据

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

  • 释放锁

  • 触发器(如果有)

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

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

  • 使用数据库

同时一条语句不能导出多个数据库中的表

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




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


也可在公众号内回复 mysqldump 搜索相关内容

或直接打开个人网页搜索


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
  • 访问量
    243902