常用的MySQl备份工具
物理备份缺点
1.1跨平台性差
1.2 备份时间长、冗余备份、浪费存储空间
MySQldump备份缺点
1.1 效率较低、备份和还原速度慢、锁表
1.2 备份过程中,数据插入和更新操作被阻塞.
XtraBackup工具
一款强大的在线热备工具
备份过程中不锁表,适合生产环境
由专业组织Percona提供(改进MySQL分支)
主要含两个组件
xtrabackup:c程序,支持InnoDB/XtraDB
innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM
1.命令格式 innobackupex <选项>
2.innobackupex命令
常用选项 含义
--host 主机名
--user 用户名
--port 端口号
--password 密码
--databases 数据库名
--no-timestamp 不用日期命名备份文件存储的子目录名
--databases=”库名” //1个库
--databases=”库1 库2” //多个库
--databases=”库1.表” //1张表
常用选项 含义
--redo-only 日志合并
--apply-log 准备恢复数据
--copy-back 拷贝数据
--incremental 目录名 增量备份
--incremental-basedir=目录名 增量备份时,指定上一次备份数据存储的目录名
--incremental-dir=目录名 准备恢复数据时,指定增量备份数据存储的目录名
--export 导出表信息
import 导入表空间
数据完全恢复步骤
停止数据库服务
清空数据库目录
准备恢复数据
拷贝备份数据到数据库目录下
修改目录的所有者/组用户为mysql
启动服务
管理员登录查看数据
恢复单张表的所有数据步骤:
删除表空间文件
在备份文件里,导出表信息
把导出表信息文件拷贝到数据库目录下
导入表信息
删除表信息文件
查看表记录
相关命令
mysql>alter table 库名.表名 discard tablespace; //删除表空间
#innobackupex --apply-log --export 数据完全备份目录 //导出表信息
#cp 数据完全备份目录/数据库名目录/表名{ibd,cfg,exp} 数据库目录/库名目录 //拷贝表信息文件
#chown mysql:mysql 数据库目录/库名 //修改所有者/组
mysql>alter tables 库名.表名 import tablespace; //导入表空间
mysql>select * from 库名.表名 //查看表记录
]# rm -rf 数据库目录/库名/表名.{cfg,exp} //删除表信息文件
增量备份与恢复
增量备份:备份上次备份后,所有新产生的数据
首次备份:备份所有数据
增量恢复
停止服务
清空数据库目录
准备恢复数据
合并数据
拷贝数据到数据库目录下
修改数据库目录的所有者和组用户为mysql
启动服务
查看数据
#systemctl stop mysqld
#rm -rf /var/lib/mysql/*
#innobackupex --apply-log --redo-only /fullbak //完全恢复
#innobackupex --apply-log --redo-only /fullbak --incremental-dir=/newdir //恢复增量
#innobackupex --copy-back /fullbak //拷贝文件
#chown -R mysql:mysql /var/lib/mysql
#systemctl start mysqld