环境:cetos7
数据库:Mysql7.4
Xtrabackup版本: 2.4.10python
Xtrabackup简介:
xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具备开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特色,而且支持不一样状况下的多种备份形式。mysql
xtrabackup包含两个主要的工具,即xtrabackup和innobackupex,两者区别以下:web
(1)xtrabackup只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表;sql
(2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时须要加一个全局的读锁。还有就是myisam不支持增量备份。数据库
#建立备份目录,下载完整的包 备注:2.3.3以后不备份死锁,若是数据库是mysql 5.7以后的 必需要装2.4.4才能够用,能够向下兼容。 步骤一. mkdir -p /xtrabackup/full/ cd /xtrabackup/ wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 步骤二.#配置安装环境 yum install perl-DBI yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL yum -y install perl-Digest-MD5 步骤三. #安装 rpm -ivh percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 步骤四. #查看安装好的版本 xtrabackup -version 能够看到:xtrabackup version 2.4.10 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3198bce)
1.备份安全
#建立备份目录 mkdir -p /xtrabackup/full/ 给予Mysql的目录权限 chown mysql.mysql /xtrabackup/full -R #进行备份 innobackupex --user=数据库帐号 --password='数据库密码' /xtrabackup/full #进入备份目录进行查看 假设备份出的全量备份包为 2020-1-0 #最好对包进行压缩,后期恢复时会对备份包进行一个破坏 [root@localhost full]# ll 总用量 0 drwxr-x--- 6 mysql mysql 238 12月 24 17:20 2020-1-0
2. 恢复app
1.关闭数据库,进行模拟破坏: [root@mysql-server ~]# systemctl stop mysqld [root@mysql-server ~]# rm -rf /var/lib/mysql/* //删除全部数据 [root@mysql-server ~]# rm -rf /var/log/mysqld.log [root@mysql-server ~]# rm -rf /var/log/mysql-slow/slow.log 2.回滚事务: [root@mysql-server ~]# innobackupex --apply-log /xtrabackup/full/2020-1-0 备注:为何会有回滚这一项呢,博主我的理解是,备份出数据时,相似在备份包外加了一个'锁', 而回滚则是'去锁'的过程,'去锁'后才能把数据恢复到库目录。这也正是为何在导出包时要作个压缩备 份,应为'去锁'后备份包就不完整了,打包后更安全,假如恢复失败,还能够恢复备份包。 3.恢复 innobackupex --copy-back /xtrabackup/full/2020-1-0
1.备份svg
首先全量备份一次 innobackupex --user=数据库帐号 --password='数据库密码' /xtrabackup/ 假设全量生成的备份包为2020-1-0 第一次增量备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-1-0/ #(基于全量的包) 假设第一次增量生成的包为 2020-1-1 第二次增量备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-1-1/ #(基于第一次增量包) 假设第二次增量生成的包为 2020-1-2 第三次增量备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2020-1-2/ #(基于第二次增量包) 假设第三次增量生成的包为 2020-1-3 ....................以此类推..........
2. 恢复工具
首先回滚备份包 1. 先回滚全量的包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0 2. 回滚第一次增量包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0 --incremental-dir=/xtrabackup/2020-1-1 3. 回滚第二次增量包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0 --incremental-dir=/xtrabackup/2020-1-2 4. 回滚第三次增量包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0 --incremental-dir=/xtrabackup/2020-1-3 备注:此时回滚的全部增量数据都到了第一次备份的全量包里 这时数据尚未到达库指定目录 接下来咱们进行恢复。 恢复回滚好的 第一次全量包 5. innobackupex --copy-back /xtrabackup/2020-1-0
1.备份ui
首先进行一次彻底备份 innobackupex --user=数据库帐号 --password='数据库密码' /xtrabackup 假设彻底备份的包是2020-1-0 进行第一次差别备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2020-1-0 假设第一次差别备份包是2020-1-1 进行第二次差别备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2020-1-1 #仍是基于第一次的全备 假设第二次差别备份的包是2020-1-2 进行第三次差别备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2020-1-1 #仍是基于第一次的全备 假设第三次差别备份的包是2020-1-3 进行第四次差别备份 innobackupex --user=数据库帐号 --password='数据库密码' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2020-1-1 #仍是基于第一次的全备 假设第四次差别备份的包是2020-1-4 .................以此类推......................
2.恢复
假设恢复到第三次差别备份的数据 咱们回滚时候只须要回 '滚彻底备份包' 和 '第三次差别包' 备份便可。 1. 回滚 回滚全量备份包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0 回滚第三次差别备份包 innobackupex --apply-log --redo-only /xtrabackup/2020-1-0--incremental-dir=/xtrabacku/2020-1-3 2.进行恢复 恢复回滚好的 第一次全量包 innobackupex --copy-back /xtrabackup/2020-1-0
====================================================================================================================================================================================================================================================================================================== 辛苦浏览观看,若是对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆