| 常用的MySQL | 备份工具 (完全备份) |
|---|---|
| 物理备份缺点 | 跨平台性差,备份时间长,冗余备份,浪费存储空间 |
| mysqldump备份缺点 | 效率较低,备份和还原速度慢,并且锁表,备份过程中,数据插入和更新操作被阻塞 |
XtraBackup工具
一款强大的在线热备份工具
备份过程中不锁表,适合生产环境
主要包含两个组件
xtrabackup:C程序,支持InnoDB/XtraDB
innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM
软件:装包->使用命令->innobackupex
yum -y install percona-xtrabackup-版本.rpm
| 常用选项 | 含义 |
|---|---|
| –host | 主机名 |
| –user | 用户名 |
| –port | 端口号 |
| –password | 密码 |
| –databases | 数据库名(–databases=“库名.表”(“库名”,“库1 库2”)) |
| –no-timestamp | 不用日期命名备份文件存储的子目录名 |
| –redo-only | 日志合并 |
| –apply-log | 准备恢复数据 |
| –copy-back | 拷贝数据 |
| –incremental 目录名 | 增量备份 |
| –incremental-basedir=目录名 | 增量备份时,指定上一次备份数据存储的目录名 |
| –incremental-dir=目录名 | 准备恢复数据时,指定增量备份数据存储的目录名 |
| –export | 导出表信息 |
| inport | 导入表空间 |
命令格式:
完全备份innobackupex --user 用户名 --password 密码 备份目录名 --no-timestamp
完全恢复innobackupex --apply-log 目录名 //准备恢复数据
innobackupex --copy-back 目录名 //恢复数据
增量备份:innobackupex --user用户名 --password 密码 --incremental 增量目录 --incremental-basedir=目录名 --no-timestamp
增强恢复:innobackupex --apply-log --redo-only 目录名 --incremental-dir=目录名 //准备恢复数据
innobackupex --copy-back 目录名 //恢复数据
恢复单张表
1)删除表空间:mysql>alter table 库名.表名 discard tablespace;
2)导出表信息:innobackupex --apply-log --export 数据完全备份目录
3)拷贝表信息文件:cp 数据完全备份目录/数据库名目录/表名.{ibd,cfg,exp} 数据库目录/库名目录/
4)修改所有者/组:chown mysql:mysql 数据库目录/库名
5)导入表空间:mysql>alter table 库名.表名 import tablespace;
6)查看表记录;mysql>select * from 库名.表名;
7)删除表信息文件:rm -rf 数据库目录/库名/表名.{cfg,exp}
| innobackupex | 常用选项 |
|---|---|
| 常用选项 含义 | |
| –host | 主机面 |
| –user | 用户名 |
| –port | 端口号 |
| –password | 密码 |
| –databases | 数据库名 |
| –no-timestamp | 不用日期命名备份文件存储的子目录名 |
| –redo-only | 日志合并 |
| –apply-log | 准备恢复数据 |
| –copy-back | 恢复数据 |
| –incremental 目录名 | 增量备份 |
| –incremental-basedir=目录名 | 增量备份时,指定上一次备份数据存储的目录名 |
| –incremental-dir=目录名 | 准备恢复数据时,指定增量备份数据存储的目录名 |
| –export | 导出表信息 |
| import | 导入表空间 |
本文深入探讨了MySQL数据库备份的重要性和挑战,详细介绍了XtraBackup作为一款强大在线热备份工具的特点与优势,包括其备份过程不锁表、适合生产环境等特性。文章还提供了XtraBackup的安装与使用方法,以及常见选项的解释,如主机名、用户名、端口号、密码等。同时,文中详述了完全备份、增量备份及数据恢复的具体步骤,并提供了恢复单张表的详细流程。
314





