前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysqldump命令详解 Part 4-备份单表

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

作者头像
bsbforever
发布2020-08-19 16:54:31
2.4K0
发布2020-08-19 16:54:31
举报

前情提要

实验环境:

  • MySQL 5.7.25
  • Redhat 6.10

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

  • 数据库
  • 存储过程
  • 函数
  • 触发器
  • 事件

今天的内容为备份全库

1. 备份语句

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

代码语言:javascript
复制
mysqldump -h127.0.0.1 -usystem -p123456  --set-gtid-purged=OFF  --databases test --tables innodb_table  isam_table > /tmp/table.sql

2. 内容解析

2.1 版本信息

1.png
1.png

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

已经一些变量的设置

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

详情看上一节介绍

2.2 表的结构

2.png
2.png

接下来是表的信息

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

之后建立表(CREATE TABLE)

2.3 表数据的备份

3.png
3.png

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

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

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

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

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

最后释放锁(UNLOCK TABLES)

2.4 触发器的导出

4.png
4.png

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

3. 总结

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

  • 删除表(如果存在)
  • 建表
  • 锁表
  • 禁用非唯一索引
  • 插入数据
  • 启用非唯一索引(重建索引)
  • 释放锁
  • 触发器(如果有)

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情提要
  • 1. 备份语句
  • 2. 内容解析
    • 2.1 版本信息
      • 2.2 表的结构
        • 2.3 表数据的备份
          • 2.4 触发器的导出
          • 3. 总结
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档