百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> innobackupex来备份和恢复MySQL数据库的例子
分享文章到:

innobackupex来备份和恢复MySQL数据库的例子

发布时间:01/15 来源: 浏览: 关键词:
Xtrabackup是由percona开发的一个开源软件,此软件可以说是innodb热备工具ibbackup的一个开源替代品。这个软件是由2个部分组成的:xtrabackup和innobackupex。下面来看一篇innobackupex来备份和恢复MySQL的教程

背景介绍:

在一些技术群里面,看到仍然有一些运维在用mysqldump这样的命令来备份MySQL,于是感觉有必要介绍一下innobackupex。
现在,绝大多数使用MySQL的场景中,都用到了Master-Slave这样的架构。相对于mysqldump而言,使用innobackupex备份有以下好处:
1. 以数据文件为备份对象,文件级别备份,速度快,尤其适合需要对所有数据进行备份的场景;
2. 热备份,不会对现有的数据库访问造成任何影响;
3. 记录binlog以及replication相关信息,在创建和恢复Slave时非常有用;

以下是风哥的几点补充:
1.用innobackupex可以做到不停业务在线备份,前提是对innodb引擎,对myisam也会锁表;
2.在备份过程会导致IO很高,建议在一台slave上做备份(我一般用一台slave只做备份用),不建议在主上备份; 3.innobackupex可以用增量与全量备份方式配合;

具体用例:

环境介绍

架构:Master-Slave
MySQL端口:3308
配置文件:/etc/my_3308.cnf
备份目录:/mysql-backup/3308
MySQL数据目录:/opt/mysql_3308/data
服务脚本:/etc/init.d/mysql_3308
在Master上备份

# innobackupex --defaults-file=/etc/my_3308.cnf /mysql-backup/3308 --user=backup-user --password=backup-user --no-lock
在Slave上备份

# innobackupex --defaults-file=/etc/my_3308.cnf /mysql-backup/3308 --user=backup-user --password=backup-user --no-lock --slave-info  --safe-slave-backup
在Master上恢复

# /etc/init.d/mysql_3308 stop

# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
# mkdir /opt/mysql_3308/data

# innobackupex --apply-log /mysql-backup/2015-01-12_08-00-10
# innobackupex --copy-back /mysql-backup/2015-01-12_08-00-10 --defaults-file=/etc/my_3308.cnf

# chown -R mysql:mysql /opt/mysql_3308/data

# /etc/init.d/mysql_3308 start
在Slave上恢复

# /etc/init.d/mysql_3308 stop

# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
# mkdir /opt/mysql_3308/data

# innobackupex --apply-log /mysql-backup/2015-01-12_08-00-10
# innobackupex --copy-back /mysql-backup/2015-01-12_08-00-10 --defaults-file=/etc/my_3308.cnf

# chown -R mysql:mysql /opt/mysql_3308/data

# /etc/init.d/mysql_3308 start

# cd /opt/mysql_3308/data
# cat xtrabackup_binlog_pos_innodb
./bin-log-mysqld.000222      222333

# mysql_3308 -uroot -p

mysql> change master to
master_host='master_host',
master_port=3308,
master_user='master_user',
master_password='master_password',
master_log_file='bin-log-mysqld.000222',
master_log_pos=222333;

mysql> start slave;

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有2人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板