mysql锁分为 读锁(读写都不行) 写锁(只读,不允许写入)
[root@localhost ~]# yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel perl perl-devel perl-Digest-MD5 perl-Time-HiRes perl-DBD-MySQL libev libev-devel libgcrypt libgcrypt-devel curl curl-devel python-setuptools libarchive-devel
直接rpm -ivh 安装官网下载的rpm包,根据提示缺什么装什么,直至完成。
以下内容仅为本机备份,本机恢复,如果复制到别的机器,单独恢复一个库会有问题。推荐使用备份所有库,即不加–databases=参数。
全量备份:
1、执行备份
[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp /mnt/backup/simon/full_$(date +%Y_%m_%d_%H_%M_%S)
2、删除simon库,测试
[root@localhost ~]# rm -rf /var/lib/mysql/simon/
恢复数据:
1、先关闭mysql服务
2、再处理备份数据
[root@localhost ~]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/ --apply-log处理全备中的事物,未提交的回滚,已提交的写入文件
3、恢复
[root@localhost ~]# cp -R /mnt/backup/simon/full_2017_02_19_21_29_42/simon/ /var/lib/mysql/ [root@localhost ~]# chown -R mysql:mysql /var/lib/mysql/simon/
直接复制备份的simon库的文件夹到mysql数据目录,并修改权限,启动mysql。
数据恢复完成。
增量备份(只支持innodb):
1、增量备份基于全备
[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp /mnt/backup/simon/full_$(date +%Y_%m_%d_%H_%M_%S)
2、增量备份,目录要与全备目录路径一样,否则无法执行
[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp --incremental-basedir=/mnt/backup/simon/full_2017_02_19_21_29_42/ --incremental /mnt/backup/simon/increment_$(date +%Y_%m_%d_%H_%M_%S)
增量恢复:
删除simon库,模拟丢失
[root@localhost ~]# rm -rf /var/lib/mysql/simon/
关闭mysql服务
将增量备份数据合并到全备中 必须用全路径,否则整合全备+增备会失败,导致数据不全,或提示错误。
[root@localhost simon]# pwd /mnt/backup/simon [root@localhost simon]# innobackupex --apply-log --redo-only /mnt/backup/simon/full_2017_02_19_21_29_42/ [root@localhost simon]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/ --incremental-dir=/mnt/backup/simon/increment_2017_02_19_22_16_10/ [root@localhost simon]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/ [root@localhost ~]# cp -R /mnt/backup/simon/full_2017_02_19_21_29_42/simon/ /var/lib/mysql/ [root@localhost ~]# chown -R mysql:mysql /var/lib/mysql/simon/
启动mysql,数据恢复完成。
–apply-log –redo-only 作用,来自网络
redo-only 只对增量备份有作用,
对于全备份和增量备份(出最后一个增备外) 都需要加 redo-only ;
这个选项是 让xtrabackup跳过 rollback 阶段,只进行redo 阶段(中间的增备如果 rollback ,那增备之间可能无法衔接起来)
PS:
增量备份可以基于一个增量,再做增量,不过恢复起来比较繁琐。这里没有采用。
可看下下面资料:基于增量的增量备份及恢复
http://www.toxingwang.com/database/mysql/1539.html
http://blog.csdn.net/dbanote/article/details/13295727
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3666.html