Percona XtraBackup简单使用操作命令

本文写得很简单,仅仅包括全库备份、全库准备、全库恢复3个步骤。如果要详细的备份,如打包、远程备份等,建议之后阅读这篇文章http://blog.csdn.net/yongsheng0550/article/details/6682162,然后再阅读官方手册。

介绍一下环境:CentOS 6.3,Percona XtraBackup 2.2.6,MySQL 5.5。

1. 准备工作

首先,请先装好MySQL和XtraBackup,不要凭脑袋瓜子空想。

2. 创建一个备份专用用户

从技术角度考虑,root用户很合适,但是从安全角度考虑,最好还是有个专门的用户,只给最低权限。、

XtraBackup要的权限不多,有RELOAD, LOCK TABLES, REPLICATION CLIENT3个就行。LOCK TABLES是备份MyISAM表时用的。

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
FLUSH PRIVILEGES;
3. 备份数据库

innobackupex --user=bkpuser --password=s3cret /usr/programs/backup/
cp /etc/my.cnf /usr/programs/backup/


这里是全库备份,指定用户名、密码和备份文件保存的位置执行即可。

注意:后面的cp是备份my.cnf。这个文件对XtraBackup和MySQL都非常重要,但是XtraBackup并不备份,所以需要手动备份一下。此外,恢复时也会需要my.cnf文件中的datadir参数,所以这里需要提前备份该文件,并检查是否有datadir参数。如果没有该文件,可以从/usr/share/mysql/下面的各种my-*.cnf选一个适合自己硬件的,并增加datadir参数。(默认可以把datadir指向/var/lib/mysql目录,即datadir=/var/lib/mysql)

4. 停止数据库服务

service mysql stop
5. 备份准备工作

innobackupex --apply-log /usr/programs/backup/2014-12-03_09-46-46/

这个2014-12-03的文件夹是备份时自动生成的。由于是热备份,有可能在备份时还有没执行完的事务,在这里需要“准备”来完成这些事务。要了解更详细的内容可以自行搜索XtraBackup的原理。
6. 删除数据库物理文件

rm /var/lib/mysql/* -rf

XtraBackup其实就是把这些文件都拷回来,所以要把所有的文件都删了,不然恢复时会报错。 千万注意:只能删除/var/lib/mysql文件夹下面的所有文件,而这个mysql文件夹绝对不能删,如果删了,你的恢复肯定没戏,启动MySQL时绝对给你报错“ERROR! The server quit without updating PID file”。(个人以为这个错误是因为SELinux引起的,可以修改SELinux的配置:chcon -R -t mysqld_db_t /var/lib/mysql/)

7. 恢复

innobackupex --copy-back /usr/programs/backup/2014-12-03_09-46-46/

这里可能会出现找不到datadir的错误(如下),此时需要把备份的my.cnf恢复到初始位置,并且my.cnf中要包含datadir这个变量值。默认my.cnf在/etc/目录下,datadir=/var/lib/mysql。

innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 4478
	main::get_option('datadir') called at /usr/bin/innobackupex line 2433
	main::copy_back(0) called at /usr/bin/innobackupex line 1561
innobackupex: Error: no 'datadir' option in group 'mysqld' in server configuration file '' at /usr/bin/innobackupex line 4478.
8. 文件授权

chown -R mysql:mysql /var/lib/mysql/

重新拷贝的文件需要授权,不然MySQL同样不能启动,也会报“ERROR! The server quit without updating PID file”的错误。

9. 启动MySQL

service mysql start



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值