mysql做主从复制不停主_MYSQL正式环境主从复制(不锁表,不停服务)-阿里云开发者社区...

本文介绍了如何使用Xtrabackup在不停止主数据库服务的情况下,进行MySQL主从复制。详细步骤包括安装Xtrabackup、创建备份、应用日志、复制到从服务器以及配置从服务器。
摘要由CSDN通过智能技术生成

参考URL:

http://rfyiamcool.blog.51cto.com/1030776/1016636/

原因源于其实以前环境是有MYSQL主从复制的,且最开始主从复制之间是OK的。

但由于日志长得太多,同步来不急,磁盘空间满了之后,失了很多记录。所以必须重新作主从,但主已不能被影响了。

~~~~~~~~~~~~~~~~~~~~~~~~

那就用XTRABACKUP吧,,阿里RDS也是用这个工作来作一些备份恢复的。

基于上,理想了思路,多参考几个网上文章就可以开始啦。。

但数据库太多,备份和COPY到从机器上都花了不少时间,幸运的是到晚上两点左右,总算搞定。

那下一步,就是优化MYSQL主性能,以及MYSQL从的滞后问题啦。

~~~~~~~~~~~~~~~~

http://blog.csdn.net/hw_libo/article/details/38316721

http://segmentfault.com/a/1190000002575399

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最好,要先RESET MASTER一下,再开始弄哈。。。这样,就样空间对接刚刚好。

。。。。。。。。。。。。。。。。。。。。。。。

安装xtrabackup:

rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

这个是64位的。

32位的地址是:

http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm

如果装了这个套装之后却找不到innobackupex命令。。。就。。。:

http://www.percona.com/software/percona-xtrabackup/downloads/

mkdir /data/backup -p

确保在my.cnf中存在[mysqld]

并且在[mysqld]后面存在 datadir = ....

[root@localhost ~]# innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf    /data/backup

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy

and Percona Inc 2009-2012.  All Rights Reserved.

。。。。

innobackupex: Backup created in directory '/data/backup/2012-04-19_10-46-32'

innobackupex: MySQL binlog position: filename 'log_bin.000027', position 2973624

120419 10:46:53  innobackupex: completed OK!

最后输出 completed OK! 表示备份成功了。

可以看到在备份myisam类型表的时候,还是会锁表~~ innodb就不会锁表。哼。

备份好的文件保存在 /data/backup目录中,比如:

/data/backup/2012-04-19_10-46-32/

[root@localhost ~]#ls /data/backup/2012-04-19_10-46-32/

backup-my.cnf ibdata1 mysql shipincon test xtrabackup_binary xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_logfile

备份日志:

刚刚备份好的数据文件,并不是直接可用的。大概是处于一种数据库挂掉的状态~~~,

细节不讲了,要用日志对其进行恢复:

[root@localhost ~]#innobackupex --apply-log  /data/backup/2012-04-19_10-46-32/

这个过程与数据库挂掉之后重启mysqld时的自动修复过程差不多。

把数据复制到从服务器:

$ scp -r /data/backup/2012-04-19_10-46-32/ root@newslave:/data/

关闭从服务器并切换数据:

$ /etc/init.d/mysql stop

$ cd /data

$ mv mysql mysql_old

$ mv 2012-04-19_10-46-32 mysql

修改my.cnf, 给它一个独一无二的server_id。

一个比较好的办法是用服务器的IP地址,把其中的.去掉即可。

然后启动mysqld:

$ /etc/init.d/mysql start

最后change master。

与mysqldump备份的步骤比起来,这次我们没有flush tables with read lock,

也没有show master status来获取日志文件名和座标。

因为xtrabackup完成备份之后,自动保存了这些信息。

$ cat /data/mysql/xtrabackup_binlog_info

log_bin.000027 2973624

mysql> CHANGE master to-> master_user=’rep’,-> master_password=’rep’,

-> master_host=’10.20.30.40′,

-> master_log_file=’log_bin.000027′,

-> master_log_pos= 2973624;

然后 start slave 即可。

推荐利用xtrabackup实现从服务器的部署~ 速度真的很快~

b33adbdfba97b6900bbb08ddfd75a0b6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值