mysql不停服务迁移数据库,部分备份+主从同步
博客专区 > 吾爱 的博客 > 博客详情
mysql不停服务迁移数据库,部分备份+主从同步
吾爱 发表于1年前
mysql不停服务迁移数据库,部分备份+主从同步
  • 发表于 1年前
  • 阅读 459
  • 收藏 12
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 小公司为节省成本,项目初期在一台服务器上放了N个项目+数据库,现在其中一个项目压力大了,需要转移到独立服务器上,那么问题来了,如何在不停原来服务的基础上将项目无缝切换到新服务器上呢?为此我不由陷入了沉思..

方案

经过一番深思熟虑(google),最终决定了以下方案:

1.在新服务器上搭建mysql,并作为"从"服务器 2.使用innobackupex在不停止旧mysql服务的情况下顺利备份数据到从数据库 3.将从服务器提升为主服务器,旧项目代码的数据库连接方式改为远程连接新数据库 4.在新服务器上部署项目代码,域名解析到新服务器,在完全生效之前,旧服务器还需要承担一部分请求 5.观察旧服务器请求日志,当没有请求后彻底删除旧代码和旧数据库,完成整个迁移

主从搭建

主从搭建要注意的是数据库版本最好保持一致,至少保证大版本号一致,从数据库小版本号不要低于主数据库

主从搭建比较简单,大致分为以下步骤

1.修改主数据库my.cnf,设置server_id 2.修改从数据库my.cnf 设置server_id 3.修改从数据库my.cnf 设置replicate-do-db来指定你想要同步的数据库名称,多个写多行,若想同步所有,则不要设置这个参数 4.主数据库上创建同步帐号并授权,给从服务器用的 5.从数据库上配置slave 此时不要启动slave,等数据库备份过来再启动

具体步骤可以参考这篇文章: http://369369.blog.51cto.com/319630/790921/

不停服备份数据

通过innobackupex备份指定的数据库,将备份文件传到从数据库所在服务器,恢复数据。

备份过程参考这篇文章: http://blog.csdn.net/zhu19774279/article/details/49681767

启动从数据库的slave

start slave;

一条sql语句,简单!不要忘了查看状态 show slave status\G 前面的主从设置文章里有说明,这里就不啰嗦了

将从数据库提升为主数据库

#查看主库状态
show processlist;
Master has sent all binlog to slave; waiting for binlog to be updated
show master status \G

#从库停止 IO_THREAD 线程
stop slave IO_THREAD;
show processlist;
Slave has read all relay log; waiting for the slave I/O thread to update it
show slave status \G

#从库切换为主库
stop slave;
reset master;
reset slave all;
show master status \G

#激活帐户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
GRANT REPLICATION SLAVE ON *.* TO 'slave_passport'@'10.10.16.51' IDENTIFIED BY 'slave_passport';
FLUSH PRIVILEGES;

#切换原有主库为从库
reset master;
reset slave all;

CHANGE MASTER TO
MASTER_HOST='10.10.16.24',
MASTER_USER='slave_passport',
MASTER_PASSWORD='slave_passport',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=804497686;

#检查主库
SHOW PROCESSLIST;
show master status \G

#启动从库
SHOW PROCESSLIST;
start slave;
show slave status \G
共有 人打赏支持
粉丝 141
博文 251
码字总数 86884
×
吾爱
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: