DBA基础
percona软件介绍
MySQL备份工具
物理备份的缺点
物理备份缺点
-跨平台差
-备份时间长、冗余备份、浪费存储空间
mysqldump备份缺点
-效率低,备份和还原速度慢、锁表(备份的过程中无法被操作)
-备份过程中,数据插入和更新操作被阻塞
XtraBackup工具
一款强大的在线热备工具
-备份过程中不锁表,适合生产环境
-由专业组织Percona提供(改进MySQL分支)
主要含两个组件
-xtrabackup:C程序,支持InnoDB/XtraDB
-innobackupex:以Perl脚本封xtrabackup,还支持MyISAM
安装percona
innobackupex命令
常用选项
命令格式
完全备份
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 目录名 //恢复数据
完全备份与恢复
恢复单张表
操作步骤
具体操作如下
- 删除表空间(表记录文件就是表空间)
- 导出表信息
- 拷贝表信息文件到数据库目录下
- 修改表信息文件的所有者及组用户为mysql
- 导入表空间
- 删除数据库目录下的表信息文件
- 查看表记录
相关命令
mysql> alter table 库名.表名 discard tablespace; //删除表空间
]# innobackupex --apply-log --export 数据完全备份目录 //导出表信息
]# cp 数据完全备份目录/数据库目录/表名.{ibd,cfg,exp} 数据库目录/库名 //拷贝表信息文件
]#chown mysql:mysql 数据库目录/库名 //修改所有者、组
mysql> alter table 库名.表名 import tablespace; //导入表空间
mysql> select * from 库名.表名; //查看表记录
]# rm -rf 数据库目录/库名/表名.{cfg,exp} //删除表信息(.frm表结构(desc) .ibd表记录(select))
mysql> alter table gamedb.b discard tablespace; 命令
]# innobackupex --apply-log --export /opt/fullbak/
]# /opt/fullbak/gamedb/
]#cp /opt/fullbak/gamedb/b.{cfg,exp,ibd} /var/lib/mysql/gamedb/
19 ls /var/lib/mysql/gamedb/b.* -l
21 chown mysql:mysql /var/lib/mysql/gamedb/b.*
22 ls /var/lib/mysql/gamedb/b.* -l
mysql> alter table gamedb.b import tablespace;
mysql> select * from gamedb.b;
]# rm -rf /var/lib/mysql/gamedb/b.exp
]# rm -rf /var/lib/mysql/gamedb/b.cfg