赞
踩
对比其他备份
XtraBackup工具
一款强大的在线热备份工具
-备份过程中不锁库表,适合生产环境
-有专业组织Percona提供(改进MySQL分支)
主要含两个组件
-xtrabackup :C程序,支持InnoDB/XtraDB
-innobackupex :以perl脚本封装xtrabackup,还支持MyISAM
XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot
Backup的功能,它支持在线热备份(备份时不影响数据读写)。到目前为止,最新的版本为Percona XtraBackup 2.4.7.XtraBackup有很多功能和优点:例如支持全备、增量备份、部分备份;支持压缩备份;备份不影响数据读写、事务等,但是也有缺陷不足:例如不支持脱机备份、不支持直接备份到磁带设备、不支持Cloud
- 1
Back,MyISAM的备份也会阻塞。不过这些小瑕疵不影响XtraBackup成为一款流行的MySQL备份工具。另外,请注意XtraBackup只支持Linux平台,不支持Windows平台。
查看安装列表
}#rpm-ql percona-xtrabackup-24
/usr/bin/innobackupex //备份innodb,xtrdb,myisam引擎的表
/usr/bin/xtrabackup //备份innodb,xtrdb引擎的表
查看帮助
Innobackupex --help //常用选项
man 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=目录名 //准备恢复数据 ]# innobacklupex --copy-back 目录名 //恢复数据
恢复单张表
操作步骤
-删除表空间
-导出表信息
-拷贝表信息文件到数据库目录下
-修改表信息文件的所有者及组用户为mysql
-导入表空间
-删除数据库目录下的表信息文件
-查看表记录
案列
恢复表记录(恢复gamedb下b表记录)
mysql> alter table gamedb.b discard tablespace; //删除表空间
]# innobackupex --apply-log --export /opt/fullback/ /导出表记录
]# cat /opt/fullbak/gamedb/ (数据库导出操作,完成后数据库目录下会多出“ .cfg,.exp”2个文件 加下面两个) .frm 表结构 .ibd 表记录
#cp /opt/fullbak/gamedb/b.{cfg,exp,ibd} /var/lib/mysql/gamedb/
chown mysql:mysql /var/lib/mysql/gamedb/b.*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
以下可用脚本执行
完全备份
~]# vim /allbbsdbbak.sh
#!/bin/bash
day=`date +%F`
innobackupex --user root --password 123456 --databases="information_schema mysql sys performance_schema" --no-timestamp /allbak/$day &>/dev/null &
增量备份
#!/bin/bash
day=`date +%F`
if [ `date +%w` -eq 2 ];then
basedir='/allbak/'`date -d"yesterday" +%F`
else
basedir='/newince/'`date -d"yesterday" +%F`
fi
innobackupex --user root --password 123456 --databases="information_schema mysql sys performance_schema" -- incremental /newincre/$day --incremental-basedir=$basedir --no-timestamp &>/dev/null &
最后写入计划任务
00 00 * * 1 /allbbsbak.sh
00 00 * * 2-7 /newbbsdbdat
a
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。