XtraBackup工具
专业组织Percona提供的一款在线热备份工具,备份过程中不锁表,适合生产环境
组件
xtrabackup : C程序,支持InnoDB,XtraDB
innobackupex :用perl脚本封装的xtrabackup,除了支持InnoDB 还支持MyISAM
安装percona
[root@mysql50 ~]#rpm -ivh ibev-4.15-1.el6.rf.x86_64.rpm
[root@mysql50 ~]#yum -y install perl-DBD-MySQL perl-Digest-MD5-2.52-3.el7.x86_64
[root@mysql50 ~]#percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm
[root@mysql50 ~]#man innobackupex //查看man帮助
基本选项
选项 | 含义 |
---|---|
--host | 主机名 |
--user | 用户名 |
--port | 端口号 |
--password | 密码 |
--databases | 数据库名 --databases={“库名” 单个库 “库1 库2” 多个库 “库.表”单个表} |
--no-timestamp | 不用日期命名备份文件存储的子目录名 |
--incremental 目录名 | 增量备份 |
--incremental-basedir=目录名 | 增量备份时,指定上次备份数据存储的目录名 |
--incremental-dir=目录名 | 恢复数据时,指定增量备份数据存储的目录名 |
--redo-only | 日志合并 |
--apply-log | 准备还原(日志回滚) |
--copy-back | 恢复数据 |
--export | 导出表信息 |
import | 导入表空间 |
完全备份与恢复
[root@mysql50 ~]#innobackupex --user=root --password=123456 --no-timestamp /allback
//备份数据库所有文件,注意,备份文件夹不能有东西,必须为空
[root@mysql50 ~]#innobackupex --user=root --password=123456 --apply-log /allback
//准备恢复数据 不过完全备份这步可以省略
[root@mysql50 ~]#rm -rf /var/lib/mysql //恢复时要求空的目录
[root@mysql50 ~]#innobackupex --user=root --password=123456 --copy-back /allback
//恢复数据
[root@mysql50 ~]#chown -R mysql:mysql /var/lib/mysql //修改权限为mysql,否则重启报错
[root@mysql50 ~]#systemctl restart mysqld //重启
[root@mysql50 ~]#mysql -uroot -p123456
mysql>show databases;
增量备份与恢复
增量备份:
[root@mysql50 ~]#innobackupex --user=root --password=123456 /fullback --no-timestamp
[root@mysql50 ~]#innobackupex --user=root --password=123456 --incremental /new1dir --incremental-basedir=/fullback --no-timestamp
[root@mysql50 ~]#innobackupex --user=root --password=123456 --incremental /new2dir --incremental-basedir=/new1dir --no-timestamp
...
//增量备份时,必须现有一次备份,一般为完全备份
增量恢复:
- 准备恢复数据
[root@mysql50 ~]#systemctl stop mysqld [root@mysql50 ~]#rm -rf /var/libmysql [root@mysql50 ~]#innobackupex --apply-log --redo-only /fullback //完整恢复
- 合并日志
- 拷贝备份数据到数据库目录下
- 修改所有用户为mysql
- 启动数据库服务
- 查看数据
扫描二维码关注公众号,回复:
4767834 查看本文章