使用innobackupex备份MySQL数据库

回复 收藏

原文地址: https://my.oschina.net/u/3497124/blog/1519575

安装innobackupex

安装yum扩展源:

[root@adailinux ~]# rpm -ivh  http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

安装innobackupex

[root@adailinux ~]# yum install -y percona-xtrabackup

进行全量备份

说明: 使用xtrabackup进行备份需要使用mysql用户,该用户需要有备份的权限。

创建mysql用户

创建mysql用户:[root@adailinux ~]# mysql -uroot -p'123456'Welcome to the MySQL monitor.mysql> grant RELOAD, LOCK TABLES, REPLICATION CLIENT on *.* to 'bakuser'@'localhost' identified by '123456';Query OK, 0 rows affected (0.13 sec)

#该用户只需要有备份权限即可,所以在创建用户时只授予其部分权限

mysql> flush privileges;Query OK, 0 rows affected (0.05 sec)

#刷新!

mysql> quitBye

全量备份

创建一个目录用于存放备份文件:[root@adailinux ~]# mkdir /data/backup开始备份:[root@adailinux ~]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123456' -S /tmp/mysql.sock /data/backup至此,备份完成!

说明:--defaults-file:指定mysql的配置文件(该参数必须放在首位)--user:指定用于备份的mysql用户--password:mysql用户密码-S:=socket,指定MySQL的socket文件(也可以使用-h,该参数非必须!)

查看备份文件:

[root@adailinux ~]# cd /data/backup/

恢复数据库

在恢复数据库之前需要先停止MySQL服务!

终止mysql服务:[root@adailinux backup]# /etc/init.d/mysqld stopShutting down MySQL.. SUCCESS!

恢复准备:

[root@adailinux backup]# mv /data/mysql /data/mysql.bak

[root@adailinux backup]# mkdir /data/mysql

[root@adailinux backup]# chown mysql:mysql /data/mysq

l#进行备份前将原/data/mysql中文件清空#在此只为学习,所以只对该文件进行更名,然后重建该目录并更改权限

开始恢复:

匹配数据文件:

[root@adailinux backup]# innobackupex --use-memory=256M --apply-log /data/backup/base-dir

说明: 进行数据库恢复时,先匹配用于恢复的数据文件。--use-memory:指定执行数据库恢复操作时的运行内存(添加该选项的目的通过指定其运行内存来加快恢复速度,可不加该参数)。--apply-log:指定要恢复的数据文件(来自备份文件)

恢复:

[root@adailinux backup]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2017-08-23_08-49-22/至此,数据库恢复完成!

说明:--copy-back:指定用于恢复的数据文件目录

增量备份

增量备份是在全量备份的基础上进行的。

创建增量备份

备份1:

[root@adailinux mysql]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123456' --incremental /data/backup --incremental-basedir=/data/backup/bak-dir1

备份2:

[root@adailinux backup]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123456' --incremental /data/backup --incremental-basedir=/data/backup/bak-dir2

合并备份文件

[root@adailinux backup]# innobackupex --apply-log --redo-only /data/backup/base-dir

[root@adailinux backup]# innobackupex --apply-log --redo-only /data/backup/base-dir --incremental-dir=/data/backup/bak-dir1

[root@adailinux backup]# innobackupex --apply-log  /data/backup/base-dir --incremental-dir=/data/backup/bak-dir2

注:关于--redo-only,除了最新的增量备份之外,在进行增量备份文件的合并时均要加上该参数!!!

恢复

[root@adailinux backup]# innobackupex --copy-back /data/backup/base-dir

2017-08-24 08:48 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: