全量冷备份

主要命令

  • 单独命令 | 命令 | 描述 | | —- | —- | | xbcrypt | 用于加密或者解密备份的数据 | | xbstream | 用于压缩或者解压缩 xbstream 文件 | | xtrabackup | 备份 innodb 数据表 |

  • 整合命令 | 命令 | 描述 | | —- | —- | | innobackupex | 上述命令的 perl 脚本封装 |

命令行参数

innodbckupex \ —default-file=/etc/my.cnf \ —host=192.168.1.100 —user=admin —password=Root666. —port=3306 \ —encrypt=AES128 —encrypt-threads=10 —encrypt-chunk-size 512 —encrypt-key=012345678901234567890123 \ — compress —compress-threads=10 —compress-chunk-size 512 include=test.t_user —galera-info \ —no-timestamp — stream=xbstream -> /home/backup.xbstream

  • 指定 my.cnf 位置,注意不要远程备份
  • 指定备份数据库的信息
  • 使用加密备份 | 参数 | 描述 | | —- | —- | | encrypt | 用于加密的算法: AES128, AES192 AES256 | | encrypt-threads | 执行加密的线程数 | | encrypt-chunk-size | 加密线程的缓存大小
    单位 kb
    要小于 1m | | encrypt-key | 明文密钥字符,长度要求24个字符 | | encryption-key-file | 如果不想用明文的密钥字符,可以使用密钥文件 |

  • 压缩 innodb 数据表 | 参数 | 描述 | | —- | —- | | compress | 压缩 innodb 数据文件 | | compress-threads | 执行压缩的线程数 | | compress-chunk-size | 压缩线程的缓存 | | include | 需要备份的数据表的正则表达式 | | galera-info | 备份 pxc 节点状态文件 |

  • 不创建时间戳目录

  • 使用流式压缩备份
    • 减少 IO 次数,普通压缩需要经过 备份、压缩两次 IO 操作 | 参数 | 描述 | | —- | —- | | —stream | 指定流式压缩备份方式和目标压缩文件 |

全量冷还原

  • 还原只能全量冷还原

步骤

关闭 mysql,清空数据目录,清空表分区目录

流式备份文档冷还原

  1. 创建临时目录,存放解压后的文件

    mkdir /home/temp

  1. 流式解压备份文档

    xbstream -x < /home/backup.xbstream -C /home/temp

  1. 解密文件

    innobackupx \ —decompress \ —dencrypt=AES128 —encrypt-key=012345678901234567890123 \ /hone/temp

  1. 回滚没有提交的事务,提交已经提交的事务到数据文件中

    innobackupex —apply-log /home/temp

  1. 按照本地 db 配置文件进行还原

    innobackupx —copy-back —deafults-file=/etc/my.conf

  1. 设置数据目录和表分区数据文件目录内文件隶属的用户和用户组

    chown -R mysql:mysql

    /*

启动节点