xtrabackup备份工具(完全备份)
常用三种使用方式:
最常用
$ innobackupex --user=DBUSER --password=SECRET /path/to/backup/dir/
压缩备份
$ innobackupex --user=LUKE --password=US3TH3F0RC3 --stream=tar ./ | bzip2
较老的版本使用
$ xtrabackup --user=DVADER --password=14MY0URF4TH3R --backup --target-dir=/data/bkps/
创建具有完整备份所需的最低权限的数据库用户的 SQL 示例如下:(也可用数据库root账户)
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cr%T'; mysql> GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost'; mysql> GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost'; mysql> GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost' mysql> FLUSH PRIVILEGES;
使用innobackupex完整备份
innobackupex --user=root --password=123456 /tmp/db_backup/ #不显示输出 innobackupex --user=root --password=123456 /tmp/db_backup/ 2>>/tmp/db_backup/db_backup.log
其他选项:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --no-timestamp /tmp/db_backup/full --no-timestamp,指定了这个选项备份会直接备份在BACKUP-DIR,不再创建时间戳文件夹。 --default-file,指定配置文件,用来配置innobackupex的选项
使用innobackupex完整还原备份
innobackupex数据库恢复,恢复前先保证数据一致性,执行如下命令: innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log /data/backup//mysq1/2014-12-2000-10-24 Systemctl stop mysqld rm -rf /var/lib/mysql/* innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup//mysq1/2014-12-2000-10-24/ #查看权限 ll /usr/local/mysql/data/ #重新授权,要不然mysql启动不起来 chown -R mysql:mysql /var/lib/mysql/ systemctl restart mysqld
注:datadir必须是为空的,innobackupex --copy-back不会覆盖已存在的文件,还要注意,还原时需要先关闭服务,如果服务是启动的,那么就不能还原到datadir。