Mysql备份与复制

前言

近期有身边的小伙伴在面试的时候被面试官问到关于mysql主从复制的原理,今天就将Mysql中关于备份与复制的内容整理一下,供小伙伴们参考

一、备份

1、备份的方式角度:

  • 热备份(数据库运行中进行备份,不会影响数据库的运行状态)
  • 冷备份(数据库停止下来进行备份)
  • 温备份(数据库运行中进行备份,会对数据库产生影响,如加个全局读锁)

2、备份后文件的内容角度:

  • 逻辑备份(备份的是一条条可执行的sql,适用于数据库升级、迁移等,缺点是恢复所需时间长
  • 裸文件备份(备份的是物理文件)

3、备份数据库的内容角度:

  • 完全备份(对数据库进行完整备份)
  • 增量备份(在完整备份的基础上,对变更的内容进行备份)
  • 日志备份(二进制文件备份,默认情况下MySQL并没有启用它,通过对二进制日志的replay来完成数据库的point-in-time的恢复工作,MySQL数据库复制其实就是通过异步实时的将二进制日志重做传送并应用到从数据库);

4 冷备工具使用:

  • mysqldump
  • select … into outfile

5、热备工具使用:

  • ibbackup(收费)
  • xtraBackup(开源,涵盖了ibbackup所有功能)

6、快照备份:

  • msyql本身并没有快照备份的功能,主要依赖文件管理系统支持的快照功能进行备份;

二、复制

复制是异步实时进行的,所以存在主从服务器之间的延迟;作用就是数据备份、读取负载均衡、高可用和故障转移;

三个步骤:

  1. master把数据变更记录到二进制日志(binlog)中
  2. slave中的io线程把master的binlog复制到自己的中继日志(relay log)中
  3. slave中的sql线程重做中继日志中的日志,把变更应用到自己的数据库中,以达到数据的最终一致性;

原理图如下:
在这里插入图片描述

这里有一个注意的地方:

如果master上执行了删库的操作,slave也复制过去执行了,那么我们的数据库备份就不起作用了,这是很致命的;可以通过如下方式处理:
通过对slave上的数据库所在的分区做快照,并且建议将slave设置为read-only,只进行数据的同步

相应的原理图变成如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSFxcMrG-1647698956123)(../../../../resources/mysql/replication2.png)]

*参考书籍:《MySQL技术内幕》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值