需求来源:
听说最近黑客比较猖狂,上司除了要求做好安全措施之外,要每天做数据库备份.
说到数据库备份,首先是全库备份一次,然后再做增量,因为我们公司资源有限
数据库磁盘空间不允许,在做完第一次增量备份后,就得把全备份文件删除.
头疼的是后面如何增量,所以就想试试在增量备份基础上增量备份.
准备工作
分别在主库和从库安装innobackupex工具:
[root@cm-vpn1 ~]# rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm[root@cm-vpn1 ~]# yum install -y percona-xtrabackup
主库配置
[root@cm-vpn2 ~]# vim /etc/my.cnf……server-id=2#自定义log_bin=root-01
创建备份用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'rpl'@'*' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)
全量备份
[root@cm-vpn2 ~]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123456' -S /tmp/mysql.sock /data/backup[root@cm-vpn2 ~]# ls /data/backup/2018-05-20_10-02-38
创建第一增量备份
[root@cm-vpn2 ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/data/backup/2018-05-20_10-02-38 -S /tmp/mysql.sock --incremental /data/backup/add/[root@cm-vpn2 ~]# ls /data/backup/add2018-05-21_03-40-57
创建第二次增量备份
说明:创建第二 次增量备份是第一次增量的基础上
[root@cm-vpn2 ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/data/backup/add/2018-05-21_03-40-57 -S /tmp/mysql.sock --incremental /data/backup/add/[root@cm-vpn2 ~]# ls /data/backup/add2018-05-21_03-40-57 2018-05-21_03-46-16
把在主库的增量备份和全量备份传输到从库
#全量[root@cm-vpn2 ~]# ls /data/backup/2018-05-20_10-02-38#增量[root@cm-vpn2 ~]# ls /data/backup/add2018-05-21_03-40-57 2018-05-21_03-46-16
配置从库
[root@cm-vpn1 ~]# vim /etc/my.cnf********************************************************************* basedir = /usr/local/mysql datadir = /data/mysql port = 3306 server_id = 1 socket = /tmp/mysql.sock
合并备份文件
[root@cm-vpn1 ~]# innobackupex --apply-log --redo-only /data/backup/2018-05-20_10-02-38[root@cm-vpn1 ~]# innobackupex --apply-log --redo-only /data/backup/2018-05-20_10-02-38 --incremental-dir=/data/backup/add/2018-05-21_03-40-57[root@cm-vpn1 ~]#innobackupex --apply-log --redo-only /data/backup/2018-05-20_10-02-38 --incremental-dir=/data/backup/add/2018-05-21_03-46-16
恢复
[root@cm-vpn1 ~]# innobackupex --copy-back /data/backup/2018-05-20_10-02-38
设置mysql目录权限
[root@cm-vpn1 ~]# chown mysql:mysql /data/mysql -R
启动
[root@cm-vpn1 ~]# /etc/init.d/mysqld startStarting MySQL.Logging to '/data/mysql/cm-vpn1.err'.. SUCCESS!