Mysql备份工具之XtraBackup

本文为实操部分:

innobackupex命令参数

  --user   //指定备份mysql的mysql用户

  --password   //指定myqsl用户密码    

  --defaults-file    //  指定要备份的mysql实例的my.cnf文件,如果默认为/etc/my.cnf,次参数可以省略。  

  --no-timestamp //自定义生成目录,此目录先前不存在

  --use-memory=4G  //  此参数用来控制备份所使用到的内存大小,默认为100M! 一般与--apply-log一起使用。

  --apply-log    // 备份好后的数据并不能立即用于恢复,因为这些刚备份的数据里包含了未提交的数据,需要回滚,undo操作,也包括的已 完成的事务在重做日志文件中          并没有写入数据文件中,redo操作,保证数据文件的一致性。重做已经提交的事务和回滚未提交的事务.

  --copy-back   //用于恢复备份数据的

  --redo-only   //在做增量恢复时,增量备份的数据文件需要redo日志文件中的已提交的事务。此参数将会合并全备和增量备份的数据文件,最后一次  增量备份不需要此参          数。

  --compress   //压缩选项,此选项不兼容--stream=tar,只兼容--stream=xbstream。

  --slave-info  // 在备份从服务器时,使用此参数能记录master的日志和偏移量,用于做一个新的从服务器。一般情况下的全备份,master二进制日志文件以及偏移点会记录在          xtrabackup_binlog_info这个文件中。

  --database   //只备份指定数据库

  --socket        //指定mysql套接字文件位置

  --host    //指定mysql主机  

  --port    //指定mysql端口

  --stream=[tar]       //支持“流”功能,即可以将备份的数据通过STDOUT传输给tar程序进行归档,而不是默认的直接保存至某备份目录中

  --incremental-basedir 需要指定之前完整备份的目录
  --incremental  将会在改目录下生成新的目录用于存放增量备份数据

一:安装
yum -y install percona-xtrabackup

二:使用

全量备份及全量恢复

1.开始备份(按顺序介绍:指定配置文件;指定用户;指定密码;指定备份路径;指定socket)

innobackupex --defaults-file=/etc/my.cnf --user=root --password=admin123 /root/backup/ --socket=/var/lib/mysql/mysql.sock

2.模拟数据丢失(把mysql数据目录移走)

#模拟删除数据,自行删除
#停止数据库
service mariadb stop


#全量恢复需要将数据目录清空
mv /var/lib/mysql /var/lib/mysqlbak

3.恢复数据第一步:执行(标红为需要回滚的数据备份点)

innobackupex --defaults-file=/etc/my.cnf --user=root --password=admin123 --socket=/var/lib/mysql/mysql.sock --apply-log --redo-only /root/backup/2019-06-12_15-59-23/

参数说明:

--apply-log:该选项表示同xtrabackup的--prepare参数,一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据 文件仍处理不一致状态。--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。
--use-memory:该选项表示和--apply-log选项一起使用,prepare 备份的时候,xtrabackup做crash recovery分配的内存大小,单位字节。也可(1MB,1M,1G,1GB),推荐1G。
--defaults-file:该选项指定了从哪个文件读取MySQL配置,必须放在命令行第一个选项的位置。
--export:这个选项表示开启可导出单独的表之后再导入其他Mysql中。
--redo-only:这个选项在prepare base full backup,往其中merge增量备份(但不包括最后一个)时候使用。

4.恢复数据第二步:回滚数据

innobackupex --defaults-file=/etc/my.cnf --user=root --password=admin123 --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql --copy-back /root/backup/2019-06-12_15-59-23/

5.如果未开启selinux,则执行更改权限即可

chown -R mysql.mysql /var/lib/mysql

service mariadb start

如果开启了,并且不能关闭selinux,就执行
 

chown -R mysql.mysql /var/lib/mysql

restorecon -vr /var/lib/mysql

service mariadb start

6.登录mysql查看数据恢复情况

你可能感兴趣的:(数据库)