设为首页 收藏本站
查看: 517|回复: 0

[经验分享] Xtrabackup备份mysql实战(做从库全过程)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-6-5 09:07:45 | 显示全部楼层 |阅读模式
一、背景
线上的一个库一直都是RD他们自己维护的,由于业务的增长,现在数据已经500G+了,急需做一个从库,登陆机器一瞅,坑爹啊,还是mysql5.6(我们维护的都是5.5),mysql5.6还没有搞过呢,还有就是他这安装的都不是按我们运维的标准安装的,我的第一反应就是这活没法干,这个库又不容许停库太长时间,于是就度娘、QQ群各种请教,最终确定用Xtrabackup试一把,一直在听大家说Xtrabackup这好那好的,却从来没有玩过,我觉得数据备份(用于做从库)还是冷备最好,速度快,还最能保证数据的一致性,但是今天这种情形貌似行不通了,Xtrabackup搞起!!!
二、Xtrabackup相关资料学习
Xtrabackup的有点:
1
2
3
4
5
1、备份完成快速、可靠
2、备份期间不间断的事务处理
3、节省磁盘空间和网络带宽
4、自动备份验证
5、提高正常运行时间由于更快的恢复时间



我个人觉的比较好的就是备份不需要锁表(innodb),备份MyISAM的表还是会锁的,还支持增量备份,总之这工具值得赞。
参考文档:
http://www.percona.com/doc/percona-xtrabackup/2.1/
http://www.baidu-ops.com/2013/05/26/xtrabackup/
三、实施
1、环境:
1
2
172.28.29.152 主库
172.28.26.138 从库(待做)



2、主库上安装Xtrabackup
1
2
3
4
yum install perl-Time-HiRes*
yum install perl-DBD-MySQL -y
wget http://www.percona.com/redir/dow ... 44.rhel6.x86_64.rpm
rpm -ivh percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm



3、备份主库
1
2
3
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user root --socket=/data/log/mysql.sock --password 123456  /data/xtrabackup/ &   ##备份
ps:备份完成了,会在/data/xtrabackup/目录下生成一个时间点目录,你也可以加一个--no-timestamp参数不生产这个目录,直接备份到 /data/xtrabackup/下
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user root --socket=/data/log/mysql.sock --password 123456 --apply-log  /data/xtrabackup/2014-06-04_10-20-55/ & ##preparing,undo撤销未提交的事务,重放redo log



ps:ll /data/xtrabackup/2014-06-04_10-20-55/查看,你发现xtrabackup会把你数据库datadir下的所有数据文件都复制过来还新增了5个xtrabackup_开头的文件,我们关心的是xtrabackup_binlog_info这个文件,因为这个文件里面记录了你做从库需要change到主库的binlog的位置和pos点

4、从库安装mysql5.6
主库的mysql是RD编译安装的,路径/usr/local/mysql/,那么从库你还苦逼的再编译一次吗?不用了,直接把主库的安装目录scp过来就可以用,my.cnf也scp过来,日志和datadir目录的宿主一定要是mysql哦,之后就可以初始化启动库了。
1
2
3
4
5
6
7
scp -r /usr/local/mysql/ 172.28.26.138:/usr/local/
chown mysql:mysql /data/log/ -R ##日志和pid存放目录
chown mysql:mysql /data/mysql/ -R  ##datadir
/usr/local/mysql/my.cnf 中添加 server-id                      = 2
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ 初始化数据库
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql & 启动数据库
/usr/local/mysql/bin/mysqladmin  --sock=/data/log/mysql.sock -p123456 shutdown 停库,把datadir目录清空,执行下面步骤



PS:主库竟然没有设置server-id,这不是坑爹嘛,别急,这个参数是动态的,可以在线调整,set global server_id=1;就ok了
5、从库服务器把主库备份文件拉到data_dir下
1
rsync -av 172.28.29.152::xtrabackup/2014-06-04_10-20-55/ /data/mysql/ &



6、启动库,搭建主从,
1
2
3
4
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql &
cat /data/mysql/xtrabackup_binlog_info
mysql-bin.008370        147669327
change master to master_host="172.28.29.152", master_port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.008370', master_log_pos=147669327;



到此工作已经完成:
wKiom1OPGDGT_tGpAAQAZP0F92g559.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-20176-1-1.html 上篇帖子: MySQL命令行操作的相关语法 下篇帖子: 浅谈mysql配置优化和sql语句优化 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表