• Mysql备份工具innobackupex简单操作及参数说明


    Mysql备份工具innobackupex简单操作及参数说明

    简述

    最近检查服务器,数据库没有备份,现在数据及金钱的时代必须对数据做好备份。
    检索了一下网上对MySQL备份的免费工具,mysqldumpXtrabackup是免费且好用的。

    Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。

    Xtrabackup安装完成后有4个可执行文件,其中2个比较重要的备份工具是innobackupex、xtrabackup

    1. xtrabackup 是专门用来备份InnoDB表的,和mysql server没有交互;
    2. innobackupex 是一个封装xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。
    3. xbcrypt 加密解密备份工具
    4. xbstream 流传打包传输工具,类似tar

    根据实际情况,我们用的MySQL5.7.*的库,且没有MyISAM的表,Xtrabackup正式我们的选择,Liunx环境使用脚本可以完成自动化的工作;Xtrabackup的Perl脚本 innobackupex 正合适。
    我们用了Xtrabackup的2.4的版本;

    简单操作

    全量备份

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=“Senter.1234” --backup /root/complete

    –apply-log 使用此参数使用相关数据性文件保持一致性状态,“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件使得数据文件处于一致性状态

    innobackupex --apply-log /root/complete/2023-11-16_13-48-29/

    #恢复数据之前需要保证数据目录是空的状态

    全量恢复

    innobackupex --defaults-file=/etc/my.cnf --copy-back /root/complete/2023-11-16_13-48-29/

    增量备份

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=“Senter.1234” --incremental /root/backup/ --incremental-basedir=/root/complete/2023-11-16_13-48-29
    #–incremental /backup/ 指定增量备份文件备份的目录
    #–incremental-basedir 指定上一次全备或增量备份的目录

    增量恢复操作过程如下

    innobackupex --apply-log --redo-only /root/complete/2023-11-16_13-48-29/
    innobackupex --apply-log --redo-only /root/complete/2023-11-16_13-48-29/ --incremental-dir=/root/backup/2023-11-16_14-45-30/

    增量回复

    innobackupex --defaults-file=/etc/my.cnf --copy-back /root/complete/2023-11-16_13-48-29/

    Xtrabackup 常用参数

    Xtrabackup工具有许多参数,具体可去官网查询(Xtrabackup参数选项 | innobackupex 参数选项),这里简单介绍 innobackupex 一些常用的参数。

    innobackupex 参数

    –defaults-file=[MY.CNF]

    指定配置文件:只能从给定的文件中读取默认选项。 且必须作为命令行上的第一个选项;必须是一个真实的文件,它不能是一个符号链接。

    –databases=#

    指定备份的数据库和表,格式为:–database=“db1[.tb1] db2[.tb2]” 多个库之间以空格隔开,如果此选项不被指定,将会备份所有的数据库。

    –include=REGEXP

    用正则表达式的方式指定要备份的数据库和表,格式为 --include=‘^mydb[.]mytb’ ,对每个库中的每个表逐一匹配,因此会创建所有的库,不过是空的目录。–include 传递给 xtrabackup --tables。

    –tables-file=FILE

    此选项的参数需要是一个文件名,此文件中每行包含一个要备份的表的完整名称,格式为databasename.tablename。该选项传递给 xtrabackup --tables-file,与–tables选项不同,只有要备份的表的库才会被创建。
    注意:部分备份(–include、–tables-file、–database)需要开启 innodb_file_per_table 。

    –apply-log

    应用 BACKUP-DIR 中的 xtrabackup_logfile 事务日志文件。一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处于不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件使得数据文件处于一致性状态。

    –use-memory=#

    此选项接受一个字符参数(1M/1MB,1G/1GB,默认100M),仅与–apply-log一起使用,该选项指定prepare时用于崩溃恢复(crash-recovery)的内存。

    –copy-back

    拷贝先前备份所有文件到它们的原始路径。但原路径下不能有任何文件或目录,除非指定 --force-non-empty-directories 选项。

    –force-non-empty-directories

    恢复时指定此选项,可使 --copy-back 和 --move-back 复制文件到非空目录,即原data目录下可以有其他文件,但是不能有与恢复文件中同名的文件,否则恢复失败。

    –rsync

    此选项可优化本地文件(非InnoDB)的传输。rsync工具一次性拷贝所有非InnoDB文件,而不是为每个文件单独创建cp,在备份恢复很多数据库和表时非常高效。此选项不能和 --stream 一起使用。

    –incremental

    这个选项告诉 xtrabackup 创建一个增量备份,而不是完全备份。它传递到 xtrabackup 子进程。当指定这个选项,可以设置 --incremental-lsn 或 --incremental-basedir。如果这2个选项都没有被指定,–incremental-basedir 传递给 xtrabackup 默认值,默认值为:基础备份目录的第一个时间戳备份目录。

    –incremental-basedir=DIRECTORY

    该选项接受一个字符串参数,该参数指定作为增量备份的基本数据集的完整备份目录。它与 --incremental 一起使用。

    –incremental-dir=DIRECTORY

    该选项接受一个字符串参数,该参数指定了增量备份将与完整备份相结合的目录,以便进行新的完整备份。它与 --incremental 选项一起使用。

    –redo-only

    在“准备基本完整备份” 和 “合并所有的增量备份(除了最后一个增备)”时使用此选项。它直接传递给xtrabackup的 xtrabackup --apply-log-only 选项,使xtrabackup跳过"undo"阶段,只做"redo"操作。如果后面还有增量备份应用到这个全备,这是必要的。有关详细信息,请参阅xtrabackup文档。

    xtrabackup 参数

    –apply-log-only

    这个选项使在准备备份(prepare)时,只执行重做(redo)阶段,这对于增量备份非常重要。

    参考文件

    Xtrabackup-2.4 Documentation
    Xtrabackup-2.4 (innobackupex_option_reference)
    实战干货!Xtrabackup 实现数据的备份与恢复
    Mysql备份工具xtrabackup常用参数
    关于Percona XtraBackup的redo-Only参数

  • 相关阅读:
    单片机中的 AD & DA 模数转换
    Java、泛型归并排序
    面试常问CAS和ABA问题,你懂了吗?
    HCIA网络基础7-VRP和命令行基础
    activiti默认模型ER图
    程序员的浪漫七夕
    几款免费的时序数据库对比
    反向营销,一本难念的经
    item_search - 按关键字搜索EBAY商品
    普通Java工程可执行JAR两种打包方式探讨
  • 原文地址:https://blog.csdn.net/Scorpio_3715/article/details/134443376