作者简介
马听,多年 DBA 实战经验,对 MySQL、 Redis、ClickHouse 等数据库有一定了解,专栏《一线数据库工程师带你深入理解 MySQL》、《Redis 运维实战》作者。
这是专栏《MySQL 高频面试题解析》的最后一篇,感谢您的阅读。
1 mysqldump 备份恢复原理
与 server 建立连接,并初始化 session; 执行 FTWRL(flush tables with read lock); 设置当前会话隔离级别为 RR; 开启事务并创建快照; 获取当前 binlog 位置; 解锁所有表; 对指定的库和表进行 dump; 备份完成。
2 Xtrabackup 备份恢复原理
开启 redo log 拷贝线程,从最新的检查点开始顺序拷贝 redo log; 拷贝事务引擎表的数据文件; 等到事务引擎数据文件拷贝结束,通知调用 FTWRL; 备份非事务引擎数据文件及其他文件; 获取 binlog 位点信息; 停止复制 redo log; 解锁 UNLOCK TABLES; 释放锁,备份结束; 备份完成。
模拟 MySQL 进行 recover,将 redo log 回放到数据文件中; 等到 recover 完成,重建 redo log; 将数据文件复制到 MySQL 数据目录; 完成还原。
3 两者的区别
3.1 加锁时间
3.2 备份恢复时间
select * from table_name;
3.3 适用场景
本文已收录进 专栏《MySQL 高频面试题解析》
相关文章:
1. 一条 update 语句的生命历程
2. 当前读和快照读的区别
3. InnoDB 怎么做表空间迁移
4. RR 隔离级别下真的不会产生幻读吗?
5. MVCC 怎么实现的?
6. 复制的演进历程
7. 有哪些死锁场景?
8. 物理备份和逻辑备份的区别
最后修改时间:2020-11-12 18:41:37
文章转载自悦专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
文集目录
暂无数据