mysql物理备份能覆盖还原吗_MySQL数据库的备份与恢复之xtrabackup工具的使用

一. 为什么需要备份在实际生产环境中误删操作,硬件损坏都会导致数据不可用,这个时候我们就需要备份来实现灾难恢复。还需注意的是硬件级的冗余,例如raid,也不能取代备份操作,因为数据误删之后数据也是没有的,所以备份必不可少。二. 备份的分类1.物理备份和逻辑备份物理备份 :它是直接拷贝mysql的存储在磁盘上的数据文件。这种备份使用的空间大,特别是innodb存储数据使用的表空间,因为表空间分配大小...
摘要由CSDN通过智能技术生成

一. 为什么需要备份

在实际生产环境中误删操作,硬件损坏都会导致数据不可用,这个时候我们就需要备份来实现灾难恢复。还需注意的是硬件级的冗余,例如raid,也不能取代备份操作,因为数据误删之后数据也是没有的,所以备份必不可少。

二. 备份的分类

1.物理备份和逻辑备份

物理备份 :它是直接拷贝mysql的存储在磁盘上的数据文件。这种备份使用的空间大,特别是innodb存储数据使用的表空间,因为表空间分配大小是按一定的比例增长,所以存在没有使用的空间。但是恢复时使用的时间少。

逻辑备份 :将数据以sql语句的形式导出。导出数据和恢复数据所用的时间多,但占用空间小。

2.热备、温备、冷备

热备 :对线上环境不见任何锁,不影响线上任何数据库操作。

温备 :在备份之间要获取锁,并施加锁。在加锁期间会影响某些操作。

冷备 :备份之前停掉服务器,然后在备份。

三. XtraBackup

XtraBackup是Percona旗下的一款开源热备工具,能够在不锁数据库的情况下备份MySQL数据。它能够备份InnoDB,XtraDB,MyISAM表,MySQL版本支持5.1,5.5,5.5,5.7。

XtraBackup具有如下功能:

能够对InnoDB实现热备,无需暂停数据库

能够对MySQL进行增量备份

对MySQL备份能够实现流式压缩并传输给其他服务器

MySQL服务运行时能够在MySQL 服务器之间进行表的迁移

能够很容易创建一个MySQL从服务器

备份MySQL时不会增加服务器负担

XtraBackup能够带InnoDB引擎创建的表实现热备,对MyISAM引擎实现温备。

四. XtraBackup如何实现备份

XtraBackup在备份数据是先备份InnoDB数据,再备份MyISAM数据,最后再记录此次备份的信息。

1.XtraBackup如何对InnoDB实现备份

在解释原理之前我们需要介绍InnoDB引擎的两个重要特性,一个事务特性,一个是存储数据所使用的表空间

1)事务

在InnoDB引擎中,一旦用户的操作涉及到修改MySQL数据,他并不会直接写入磁盘,就会产生一个事务,并将事务是记录在事务日志中的,而记录日志是使用的round-robin方式,事务日志空间大小一定,也就说后面的事务日志会覆盖前面。只有当用户提交事务后,数据才会持久化到磁盘。

2)表空间

InnoDB存储数据使用的是表空间,在这个空间中,InnoDB自行组织数据,所有的数据放在page上,每个page的大小固定默认是16KB,你可以通过innodb_page_size将其调大调小。一个page中除了存储数据库数据,还存储了这个表的元数据,用于描述此page。其中一个元数据就是log sequence number日志序列号,它是进行增量备份的基础。

3)备份原理

XtraBackup在开始的时候会记录日志序列号(LSN),然后开始拷贝磁盘上的数据文件。在此期间如果数据改变了,那么数据就处于不同的位置。数据改变了,我们不一定要拷贝变化的数据,我们可以记录在此期间的改变的事务日志即可,因为事务日志也记录了数据的改变。所以在拷贝数据期间,XtraBackup会启动一个后台进程监控事务日志,并拷贝在此期间写入的事务日志。这个过程是一个持续过程,因为事务日志会覆盖前面的。

4)增量备份实现原理

在前面提到过增量备份的实现依赖于LSN,它是一个page所具有的属

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值