• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Xtrabackup备份mysql实战(做从库全过程)

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

一、背景线上的一个库一直都是RD他们自己维护的,由于业务的增长,现在数据已经500G+了,急需做一个从库,登陆机器一瞅,坑爹啊,还是mysql5.6(我们维护的都是5

一、背景

线上的一个库一直都是RD他们自己维护的,由于业务的增长,现在数据已经500G+了,急需做一个从库,登陆机器一瞅,坑爹啊,还是mysql5.6(我们维护的都是5.5),mysql5.6还没有搞过呢,还有就是他这安装的都不是按我们运维的标准安装的,我的第一反应就是这活没法干,这个库又不容许停库太长时间,于是就度娘、QQ群各种请教,最终确定用Xtrabackup试一把,一直在听大家说Xtrabackup这好那好的,却从来没有玩过,我觉得数据备份(用于做从库)还是冷备最好,速度快,还最能保证数据的一致性,但是今天这种情形貌似行不通了,Xtrabac本文来源gaodai$ma#com搞$代*码*网kup搞起!!!

二、Xtrabackup相关资料学习

Xtrabackup的有点:

1、备份完成快速、可靠2、备份期间不间断的事务处理3、节省磁盘空间和网络带宽4、自动备份验证5、提高正常运行时间由于更快的恢复时间

我个人觉的比较好的就是备份不需要锁表(innodb),备份MyISAM的表还是会锁的,还支持增量备份,总之这工具值得赞。

参考文档:

三、实施

1、环境:

172.28.29.152 主库172.28.26.138 从库(待做)

2、主库上安装Xtrabackup

yum install perl-Time-HiRes*yum install perl-DBD-MySQL -ywget rpm -ivh percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm

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哦,之后就可以初始化启动库了。

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下

rsync -av 172.28.29.152::xtrabackup/2014-06-04_10-20-55/ /data/mysql/ &

6、启动库,搭建主从,

/usr/local/mysql/bin/mysqld_safe –defaults-file=/usr/local/mysql/my.cnf –user=mysql & cat /data/mysql/xtrabackup_binlog_infomysql-bin.008370 147669327change 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;

到此工作已经完成:

本文出自 “屌丝运维男” 博客,,谢绝转载!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Xtrabackup备份mysql实战(做从库全过程)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址