mysqldump备份过程中都干了些什么
mysqldump备份方便,易读,功能丰富,相信大家都有 使用过这个命令进行备份,但是这个命令在备份的过程中都做了写什么呢,下面打开general_log进行查看:
1.登录mysql命令行客户端:
set global general_log=1;
2.使用下面的命令进行备份:
mysqldump -uroot -p'password' --opt --default-character-set=utf8 --triggers -R --master-data=2 --hex-blob --single-transaction --no-autocommit --all-databases -S /data/mysql3306/mysql3306.sock > aa.sql
3.默认情况下,查询日志在datadir目录下的`hostname`.log中,打开这个日志查看内容:
160105 15:20:46 26 Connect root@localhost on
26 Query /*!40100 SET @@SQL_MODE='' */ #修改sql模式
26 Query /*!40103 SET TIME_ZONE='+00:00' */ #修改时区
26 Query FLUSH /*!40101 LOCAL */ TABLES ##把内存中的表结构的改动同步到磁盘
26 Query FLUSH TABLES WITH READ LOCK #对于非事务表,给全局加上意向S锁,能读不能写的状态,这样就拿到了一个一致性备份,等复制完了再unlock tables;
26 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ #修改隔离级别为RR,在这个隔离级别下,可以实现一致性非锁定读,即可以拿到一个一致性快照
26 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */ #开始一个一致性快照,最后要么rollback,要么commit,注意,这个在整个备份过程中是一个大的事务
26 Query SHOW VARIABLES LIKE 'gtid\_mode' #如果开启了gtid,那么会获取出gtid_executed 的位置,即,已经同步到数据文件中的事务的位置
26 Query SHOW MASTER STATUS #对于Myisam表,在全局S锁的情况下,只有读,没有写,获取binlog filename和position,即就是当前备份数据的位置,对于innodb表,因为前面START TRANSACTION显式开启一个事务,所以事务内获取的就是快照数据的位置
26 Query UNLOCK TABLES #在获得了binlog filename和position之后,解锁表
#下面查询INFORMATION_SCHEMA.FILES表的SQL是针对NDB存储引擎的
26 Query SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME
26 Query SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME
26 Query SHOW DATABASES #查看有哪些库
26 Query SHOW VARIABLES LIKE 'ndbinfo\_version' #NDB基本用不到,这里无须关注
26 Init DB mysql #开始备份mysql库
26 Query SHOW CREATE DATABASE IF NOT EXISTS `mysql`
26 Query SAVEPOINT sp #定义的一个保存点,为了避免在整个备份这个大事务中出错,采用了断点设置,在这里定义一个保存点,表示这个位置是从show master status的位置,后面每个表
26 Query show tables #查看mysql库有哪些表
26 Query show table status like 'columns\_priv' #查看这个表的状态
26 Query SET SQL_QUOTE_SHOW_CREATE=1 #给每个表的每个字段加个反引号
26 Query SET SESSION character_set_results = 'binary' #表结构的备份都是binary格式,所以要先改这个
26 Query show create table `columns_priv` #查看这个表的定义
26 Query SET SESSION character_set_results = 'utf8'
26 Query show fields from `columns_priv` #查看表有哪些字段
26 Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `columns_priv` #查询表中的数据,结合show fields from `columns_priv`的字段信息生成insert into语句
26 Query SET SESSION character_set_results = 'binary'
26 Query use `mysql`
26 Query select @@collation_database
26 Query SHOW TRIGGERS LIKE 'columns\_priv'
26 Query SET SESSION character_set_results = 'utf8'
26 Query ROLLBACK TO SAVEPOINT sp ##一个表执行完之后,就回滚到前面打的事务标签的位置,即回滚到这个保存点的位置再重新开始
...... #此处省略其他表,所有表的备份过程这里都是一样的
26 Query RELEASE SAVEPOINT sp #同一个库中的所有表备份完成之后,就会释放这个保存点
26 Query use `mysql`
26 Query select @@collation_database
26 Query SET SESSION character_set_results = 'binary'
26 Query SHOW FUNCTION STATUS WHERE Db = 'mysql' #查询mysql库的所有存储函数
26 Query SHOW PROCEDURE STATUS WHERE Db = 'mysql' #查询mysql库的所有存储过程
26 Query SET SESSION character_set_results = 'utf8'
26 Query show table status like 'general\_log' #查询日志的表状态信息
26 Query SET SQL_QUOTE_SHOW_CREATE=1
26 Query SET SESSION character_set_results = 'binary'
26 Query show create table `general_log` #查询日志的表定义
26 Query SET SESSION character_set_results = 'utf8'
26 Query show fields from `general_log` #查询日志的表字段信息
26 Query show table status like 'slow\_log' #查询慢日志表状态信息
26 Query SET SQL_QUOTE_SHOW_CREATE=1
26 Query SET SESSION character_set_results = 'binary'
26 Query show create table `slow_log` #查询慢日志表结构
26 Query SET SESSION character_set_results = 'utf8'
26 Query show fields from `slow_log` #查询慢日志表字段信息
26 Init DB test #初始化另外一个库,循环开始上面的过程
26 Quit #整个过程完成,退出进程
注:以上过程为个人理解,如有错误,还望指正
转载于:https://www.cnblogs.com/xiaoboluo768/p/5103196.html
mysqldump备份过程中都干了些什么相关推荐
- mysql在备份过程中不允许_mysqldump备份过程中都干了些什么
mysqldump备份方便,易读,功能丰富,相信大家都有 使用过这个命令进行备份,但是这个命令在备份的过程中都做了写什么呢,下面打开general_log进行查看: 1.登录mysql命令行客户端: ...
- 职业大揭秘,算法攻城狮在日常工作中都干了些啥?
前言 有很多小伙伴一直很好奇,算法攻城狮日常工作中到底都在干些啥?其实对于算法工程师而言,最大的日常就是做数据了,今天就给大家分享一下算法攻城狮的那些事. 为什么很少做模型 在大家想象当中,可能算法工 ...
- 【一周读书】哲学家,你们都干了些什么?
书籍:<哲学家们都干了些什么> 在读这本书之前,我对哲学的印象是这样的: 哲学似乎和宗教有点关系?似乎在解决人的精神痛苦方面的问题?哲学就是一大堆难懂并且无用的理论!我要是和同学谈哲学肯定 ...
- C专家编程 第6章 运动的诗章:运行时数据结构 6.3 操作系统在a.out文件里干了些什么
操作系统在a.out文件里干了些什么 为什么a.out要以段的形式组织.段可以方便地映射到链接器在运行时可以直接载入的对象中!载入器只是取文件中的每个段的映像,并直接将它们放入到内存中.从本 ...
- 什么是哲学?《哲学家们都干了些什么?》读后感
<哲学家们都干了些什么?> 前言 自从听到哲学这两个字开始,其实多年来心中有个问题,对,什么是哲学,哲学有什么用,直到我读了,<哲学家们都干了些什么?>林欣浩,林欣浩 并不是什 ...
- Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?
作者:18届cyl 时间:2022.5.11 参考文章:https://blog.csdn.net/qq_42406643/article/details/109545766 最近帮舍友配pytorc ...
- 【哲学问题】-《哲学家们都干了些什么?》
引言 本文来源于<哲学家们都干了些什么?>这本书以及本人阅读此书之后的一些想法.这本书虽通熟易懂,但贯穿了哲学所涉及的大部分内容,我将挑出书中涉及的比较重要的内容并融入我的部分思考分几次来 ...
- 西西弗的石头----读《哲学家都干了些什么》有感
<西西弗的神话>里讲述了一个希腊神话,说西西弗被众神惩罚,把一个巨石推向山顶.但石头一到山顶又会自己滚下来,西西弗必须重复这样的苦役,直到永远.加缪用这个例子来说明我们生活的荒谬. 西西弗 ...
- 《哲学家们都干了些什么》读后感
上帝既然知道亚当和夏娃会偷吃禁果,为什么一开始不去阻止他们? 奥古斯丁的解释是,关键在于自由.上帝给了亚当和人类自由意志,所以也必须让人类拥有作恶的可能. 更具体地说,上帝是善的,而上帝的善表现在上帝 ...
- 卫哲加盟阿里巴巴满百日:他干了些什么?
卫哲这位最年轻的跨国公司中国区CEO,在加盟阿里巴巴刚满百日的时间里,他做了三件事情,主要是明确战略:参与阿里巴巴新的三年.五年的发展规划:将买家体验提升到战略高度,重新推出买家发展和服务部门,增加海 ...
最新文章
- Ubuntu NFS 服务器和客户端挂载详解
- Swift学习:自动引用计数
- ueditor编辑器java使用_ueditor编辑器的用法图文教程
- 黑苹果找不到触控板_苹果App内测找不到苹果企业签名怎么办?
- [Mysql]查看版本号的五种方式
- Web页面减肥,慎用VS的自动格式化功能!
- std::thread详解
- 全球芯片供应不足!苹果iPhone生产可能面临中断风险
- 手把手教你实现机器学习SVM算法
- 语音助手的涅槃关头,我们应该完全抛弃屏幕还是选择“语音+图形界面”?
- 数据库视图效率低下一例
- 线性函数、非线性函数与线性回归的区别
- 安卓-几种查看SHA1和MD5的方法
- 练T25- focus必看!所有成功截图汇总
- JavaScript基础知识全总结
- 六成应用不需要程序员,一大批程序员会失业?
- 链表——24. 两两交换链表中的节点
- 青柚文案:水果店青柚推广文案,水果青柚广告文案
- 文件包含的漏洞、原理、利用
- css之如何清除浮动
热门文章
- 2.3.PHP7.1 狐教程-【PHP变量的作用域】
- windows 下 LITE IDE go lang 安装配置使用
- Kafka 分布式消息系统 基础概念剖析
- text-transform 文本大小写转换、input checkbok 大小设置、letter-spacing 设置字符间距
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念分类注意事项...
- [数位dp][状压dp] Jzoj P3458 密码
- eclipse没有server选项
- 数据结构-单链表的正向排序
- C++中析构函数的作用,