通过innobackupex实现对MySQL的完整热备份
环境
OS:CentOS 6.6 32bit
介绍
官方下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/
操作
# 创建存放备份的目录
mkdir /backup
# 开始备份,备份前请确保有足够的空间。
innobackupex --password=RedHat /backup/
# 这是这个命令最简单的用法了,因为我是直接用root用户备份,所以省略了--user参数。
# 注意,这里输入的密码是MySQL管理员密码,不要搞错了哦。
# 如果你不是使用root用户来备份的话,就需要指定--user参数了。
# 如果你的数据库配置文件不是默认的/etc/my.cnf,那么你需要用--defaults-file参数来指定。
# 默认情况下,系统会自动在你指定的备份目录下创建一个以当前时间为时间戳命名的目录,如果你希望以自己的风格命名,那么你可以使用--no-timesmtap参数,有关这个参数的时候,以后可能会出现在别的篇章。
# 注意,最好在my.cnf文件中指定datadir,否则在使用该命令备份时你可能需要使用--datadir参数,恢复时也同理,所以最好还是直接在my.cnf中指定。
# 备份好之后当然是要验证一下效果啦(初学者不要拿生产环境来测试哦)。
# 先停止数据库
service mysqld stop
# 清空数据目录(我的数据目录是/wwwroot/mysql),注意别把父目录mysql给删了。
rm -rf /wwwroot/mysql/*
# 进入prepare阶段,注意,这里一定要选择你刚刚备份的那个时间戳目录。
innobackupex --apply-log /backup/2015-11-07_14-08-51/
# 进入恢复阶段
innobackupex --copy-back /backup/2015-11-07_14-08-51/
# 授权
chown -R mysql:mysql /wwwroot/mysql/
# 启动服务
service mysqld start
通过以上操作就完成一次完整备份和还原了。
注意,做完整还原时一定要清空数据目录,否则会对还原结果造成影响。