我们进入目录中查看一下
[root@localhost db_backup]# ls 20190110 2019-01-10_15-15-30 mc_orderdb.sql mc.sql order_master_1000_1050.sql order_master.sql [root@localhost db_backup]# cd 2019-01-10_15-15-30/ [root@localhost 2019-01-10_15-15-30]# ls backup-my.cnf ib_buffer_pool mc_orderdb mc_userdb performance_schema xtrabackup_binlog_info xtrabackup_info bak_orderdb ibdata1 mc_productdb mysql sys xtrabackup_checkpoints xtrabackup_logfile与原数据文件目录相比,少了ib_logfile0等日志文件
xtrabackup_binlog_info 比较重要,其中记录了备份的日志名和日志点,相当于mysqldump中设置master-data参数的作用
如果我们不想以时间戳的形式自动生成子目录,我们可以通过指定--no-timestamp参数来实现
innobackupex --user=backup --password=123456 --parallel=2 /home/db_backup/2019-01-10 --no-timestamp [root@localhost db_backup]# innobackupex --user=backup --password=123456 --parallel=2 /home/db_backup/2019-01-10 --no-timestamp [root@localhost db_backup]# ls 20190110 2019-01-10 2019-01-10_15-15-30 mc_orderdb.sql mc.sql order_master_1000_1050.sql order_master.sql [root@localhost db_backup]# cd 2019-01-10 [root@localhost 2019-01-10]# ls backup-my.cnf ib_buffer_pool mc_orderdb mc_userdb performance_schema xtrabackup_binlog_info xtrabackup_info bak_orderdb ibdata1 mc_productdb mysql sys xtrabackup_checkpoints xtrabackup_logfile [root@localhost 2019-01-10]# 4. 利用innobackupex 进行全备的恢复 innobackupex --apply-log /path/to/BACKUP-DIR mv /path/to/BACKUP-DIR /home/mysql/data利用xtrabackup备份产生的备份集并不能直接用于数据库的恢复
进行数据库恢复之前,我们必须把备份中产生的备份集 进行应用,此处我们使用的是备份文件的目录伪2019-01-10
可以发现,使用了上面的命令后,备份集中多出了之前缺少的ib_logfile0等文件
使用xtrabackup进行数据库恢复时,我们必须对数据库实例进行重启
先停用mysql服务
然后将原数据库文件所在的文件夹重命名为data_bak,然后将此时的 2019-01-10文件夹移动到data_bak所在的文件夹,并重命名为data,即覆盖了原来的文件
然后 chown -R mysql:mysql data
对文件夹修改所属用户
最后重启mysql服务即可
5. 利用innobackupex 进行增量备份 innobackupex --user=backup --password=123456 /home/db_backup # 先进行全备 innobackupex --user=backup --password=123456 --incremental /home/db_backup/ --incremental-basedir=/home/db_backup/2019-01-10/incremental :表示我们要进行的是一个全备, 指定全备的目录
incremental-basedir :指定增量备份所依赖的数据基础的备份目录,这个增量备份所依赖的上一个全备
先进行全备
innobackupex --user=backup --password=123456 /home/db_backup在 /home/db_backup 目录下生产了一个新的全备子目录 2019-01-10_16-19-37
再依赖上个全量备份进行增量备份
innobackupex --user=backup --password=123456 --incremental /home/db_backup/ --incremental-basedir=/home/db_backup/2019-01-10_16-19-37/此时在 /home/db_backup 目录下生产了一个增量备分的子目录2019-01-10_16-22-09
增量备份会把自上一个全备后的数据变更记录下来
然后再进行一次增量备份,此时的命令和前面基本相同,只是所基于的增量备份的数据目录要变成上次增量备份生成的目录
innobackupex --user=backup --password=123456 --incremental /home/db_backup/ --incremental-basedir=/home/db_backup/2019-01-10_16-22-09/此时,第二次增量备份的生成的目录名为2019-01-10_16-24-09
6. 利用innobackupex 进行增量恢复 innobackupex --apply-log --redo-only 全备目录我们要循环的在多次增量备份中应用上面步骤
innobackupex --apply-log --redo-only 全备目录 --incremental-dir=第一次增量目录