2023-03-23  阅读(4)
原文作者:一直不懂 原文地址:https://blog.csdn.net/shenchaohao12321/article/details/82798275

1、ibbackup

ibbackup是 InnoDB存储引擎官方提供的热备工具,可以同时备份 MyISAM存储引擎和 InnoDB存储引擎表。对于 InnoDB存储引擎表其备份工作原理如下:

  1. 记录备份开始时, InnoDB存储引擎重做日志文件检查点的LSN。
  2. 复制共享表空间文件以及独立表空间文件。
  3. 记录复制完表空间文件后, InnoDB存储引擎重做日志文件检查点的LSN
  4. 复制在备份时产生的重做日志。

对于事务的数据库,如 Microsoft SQL Server数据库和 Oracle数据库,热备的原理大致和上述相同。可以发现,在备份期间不会对数据库本身有任何影响,所做的操作只是复制数据库文件,因此任何对数据库的操作都是允许的,不会阻塞任何操作。故ibbackup的优点如下:

  • 在线备份,不阻塞任何的SQL语句。
  • 备份性能好,备份的实质是复制数据库文件和重做日志文件。
  • 支持压缩备份,通过选项,可以支持不同级别的压缩。
  • 跨平台支持, backup可以运行在 Linux、 Windows以及主流的UNX系统平台上。

ibbackup对 InnoDB存储引擎表的恢复步骤为:

  • 恢复表空间文件。
  • 应用重做日志文件。

backup提供了一种高性能的热备方式,是 InnoDB存储引擎备份的首选方式。不过它是收费软件,并非免费的软件。好在开源的魅力就在于社区的力量, Percona公司给用户带来了开源、免费的 XtraBackup热备工具,它实现所有 backup的功能,并且扩展支持了真正的增量备份功能。因此,更好的选择是使用 Xtra Backup来完成热备的工作。

2、XtraBackup

XtraBackup备份工具是由 Percona公司开发的开源热备工具。支持 MySQL5.0以上的版本。 XtraBackup在GPLv2开源下发布,官网地址是:htps://launchpad.net/percona-xtrabackup。
xtrabackup命令的使用方法如下:
xtrabackup --backup | prepare [OPTIONS]
xtrabackup命令的可选参数如下:

202303232334103941.png

202303232334116972.png

如果用户要做一个完全备份,可以执行如下命令:

202303232334122783.png

202303232334132534.png

可以看到在开始备份时, xtrabackup首先记录了重做日志的位置,在上述示例中为(0 1009910580)。然后对备份的 InnoDB存储引擎表的物理文件,即共享表空间和独立表空间进行copy操作,这里可以看到输出有 Copying…to…。最后记录备份完成后的重做日志位置(0 1014592707)。

3、XtraBackup实现增量备份

MysαL数据库本身提供的工具并不支持真正的增量备份,更准确地说,二进制日志的恢复应该是 point-in-time的恢复而不是增量备份。而 XtraBackup工具支持对于InnoDB存储引擎的增量备份,其工作原理如下:

  1. 首选完成一个全备,并记录下此时检查点的LSN。
  2. 在进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。

因此 XtraBackup的备份和恢复的过程大致如下:

202303232334138115.png

在上述过程中,首先将全部文件备份到/backup/base目录下,增量备份产生的文件备份到/backup/delta。在恢复过程中,首先指定全备的路径,然后将增量的备份应用于该完全备份。以下显示了一个完整的增量备份过程:

202303232334146926.png


Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。

它的内容包括:

  • 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
  • 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
  • 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
  • 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
  • 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
  • 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
  • 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
  • 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw

目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:

想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询

同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。

阅读全文