MySQL(InnoDB剖析):50---备份与恢复之(热备份:ibbackup、XtraBackup)
程序员文章站
2024-03-17 20:48:16
...
一、ibbackup
-
ibbackup是InnoDB存储引擎官方提供的热备工具,可以同时备份MyISAM存储引擎和 InnoDB存储引擎表
-
对于InnoDB存储引擎表其备份工作原理如下:
- 记录备份开始时,InnoDB存储引擎重做日志文件检查点的LSN
- 复制共享表空间文件以及独立表空间文件
- 记录复制完表空间文件后,InnoDB存储引擎重做日志文件检查点的LSN
- 复制在备份时产生的重做日志
- 对于事务的数据库,如 Microsoft SQL Server数据库和 Oracle数据库,热备的原理大致和上述相同。可以发现,在备份期间不会对数据库本身有任何影响,所做的操作只是复制数据库文件,因此任何对数据库的操作都是允许的,不会阻塞任何操作。故ibbackup的优点如下:
- 在线备份,不阻塞任何的SQL语句
- 备份性能好,备份的实质是复制数据库文件和重做日志文件
- 支持压缩备份,通过选项,可以支持不同级别的压缩
- 跨平台支持,backup可以运行在Linux、 Windows以及主流的UNX系统平台上
-
ibbackup对InnoDB存储引擎表的恢复步骤为:
- 恢复表空间文件
- 应用重做日志文件
- backup提供了一种高性能的热备方式,是 InnoDB存储引擎备份的首选方式。不过它是收费软件,并非免费的软件
二、XtraBackup
- 好在开源的魅力就在于社区的力量,Percona公司给用户带来了开源、免费的XtraBackup热备工具,它实现所有 backup的功能,并且扩展支持了真正的增量备份功能。因此,更好的选择是使用Xtra Backup来完成热备的工作
- XtraBackup备份工具是由Percona公司开发的开源热备工具。支持 MySQL5.0以上的版本。 XtraBackup在GPLv2开源下发布,官网地址是:https://launchpad.net/percona-xtrabackup
- xtrabackup命令的使用方法如下:
xtrabackup --backup | prepare [OPTIONS]
- xtrabackup命令的可选参数如下:
完全备份
- 可以看见在开始备份时,xtrabackup首先记录了重做日志的位置,在下述示例中为(0 1009910580)
- 然后对备份的InnoDB存储引擎表的物理文件,即共享表空间和独立表空间进行copy操作,这里可以看到输出Copying...to...
- 最后记录备份完成后的重做日志位置(0 1014592707)
三、XtraBackup实现增量备份
- MySQL数据库本身提供的工具并不支持真正的增量备份,更准确地说,二进制日志的恢复应该是point-in-time的恢复而不是增量备份
-
而XtraBackup工具支持对于InnoDB存储引擎的增量备份,其工作原理如下:
- 首选完成一个全备,并记录下此时检查点的LSN。
- 在进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN
- 因此XtraBackup的备份和恢复的过程大致如下:
- 在上述过程中,首先将全部文件备份到/back/base目录下,增量备份产生的文件备份到/backup/delta。在恢复过程中,首先指定完全备份的路径,然后将增量的备份应用于该完全备份。以下显示了一个完整的增量备份过程:
推荐阅读
-
MySQL(InnoDB剖析):50---备份与恢复之(热备份:ibbackup、XtraBackup)
-
MySQL备份与恢复之热备(3)
-
MySQL备份与恢复之热备(3)
-
MySQL备份与恢复之热拷贝(4)
-
mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
-
mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
-
MySQL备份与恢复之percona-xtrabackup软件的使用_MySQL
-
MySQL备份与恢复之percona-xtrabackup软件的使用
-
MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复_MySQL
-
MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复