前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[MySQL学习笔记] 3.mysqldump命令详解 Part 2 -备份全库

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

作者头像
bsbforever
发布2020-08-18 16:51:25
8590
发布2020-08-18 16:51:25
举报

往期专题请查看www.zhaibibei.cn 这是一个坚持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 5.7.25
  • Redhat 6.10

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

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

今天的内容为备份全库

1. 备份语句

1.1 备份所有数据库

我们使用如下语句来备份所有数据库

mysqldump -h127.0.0.1 -usystem -p123456 --all-databases >/tmp/all.sql

或者如下命令

mysqldump -h127.0.0.1 -usystem -p123456  -A >/tmp/all.sql

命令后警告信息后面章节介绍

1.2 备份独立数据库

下面语句备份单独test数据库 ,多个数据库用空格隔开即可

mysqldump -h127.0.0.1 -usystem -p123456 --databases test >/tmp/test.sql

2. 备份内容解释

下面对备份出来的语句进行解释

2.1 版本信息

第一行是mysqldump的版本

这里为10.13的版本

第二三行显示主机名为127.0.0.1

数据库版本为5.7.25

接下来为一些系统变量的设置

注意这里/* !12345 */ 不是注释 (/* */ 是MySQL的多行注释符)

它表示如果MySQL的版本大于4.1.1 则执行相应的语句

2.2 GTID信息

-- 是MySQL的注释符号

接下来是清除掉的GTID的设置

如果在备份时未使用 --set-gtid-purged=off 参数 则会出现这行

这里建议加入该参数,否则在还原到其他服务器时会出错

GTID是全局事务唯一标识符,在一个MySQL环境中保持唯一,主要用于复制

GTID_PURGED的数字代表该GTID的事务及以前的事务不包含在所有的BINLOG中,这意味着无法重现该事务

关于GTID后续解释

2.3 数据库和表的信息

接下来是备份数据库的语句

Current Database :mysql 代表当前进行的是mysql数据库

后面跟的是建数据库的语句(CREATE DATABASE mysql)

如果不存在的话(IF NOT EXISTS),如果存在也不会删除

之后使用该数据库(use mysql)

接下来是表结构相关的(Table structure for table)

如果已经有该表则先删除(DROP TABLE IF EXISTS)

之后是建立mysql数据库下表的表结构的语句(Create TABLE )

2.4 表数据的备份

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

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

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

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

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

最后释放锁(UNLOCK TABLES)

直到该数据库所有的表导出完毕后进行下一个数据库

2.5 结束备份

最后是备份的完成日期

3.总结

所以全库备份出来的语句主要包含如下内容

  • 建立数据库(如果不存在)
  • 使用数据库
  • 删除表(如果存在)
  • 建表
  • 锁表
  • 禁用非唯一索引
  • 插入数据
  • 启用非唯一索引(重建索引)
  • 释放锁

另外:可能注意到了上面的语句中只有数据库和表的信息

没有存储过程 函数 触发器等的信息

所以默认这些是不导出的

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

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

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

或直接打开个人网页搜索

http://www.zhaibibei.cn

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情提要
  • 1. 备份语句
    • 1.1 备份所有数据库
      • 1.2 备份独立数据库
      • 2. 备份内容解释
        • 2.1 版本信息
          • 2.2 GTID信息
            • 2.3 数据库和表的信息
              • 2.4 表数据的备份
                • 接下来是表数据的备份(Dumping data for table)
                  • 2.5 结束备份
                  • 3.总结
                  相关产品与服务
                  云数据库 MySQL
                  腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档