我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MYSQL 增加从库方式介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MYSQL 增加从库方式介绍

一、MySQL主从复制

常见的主从架构:

  • 一主一从:一个 Master,一个 Slave
  • 一主多从:一个 Master,多个 Slave

具体,参考下图:

MYSQL 增加从库方式介绍

MYSQL 增加从库方式介绍

实现细节

MySQL 在主从同步时,其底层实现细节又是什么?为此后分析主从延迟原因以及优化方案,做好理论准备。

MYSQL 增加从库方式介绍

总结来说,MySQL 的主从复制:异步单线程。

  • Master上 1 个IO线程,负责向Slave传输 binary logbinlog
  • Slave上 2 个线程:IO 线程执行SQL的线程,其中:
    • IO线程:将获取的日志信息,追加到relay log上;
    • 执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;

特别说明:MySQL 5.6.3 开始支持「多线程主从复制」,一个数据库一个线程多个数据库多个线程

完整的 Master & Slave 之间主从复制过程:

MYSQL 增加从库方式介绍

二、增加一个slave

需求:目前我的master上有一个数据库UCenter,需要为其增加一台slave(目前有一台slave)

分析:

  • 我这里有一个前一天的4:00的数据库备份。
  • 有一台已存在的ucenter的slave
  • 重点是寻找binlog的时间点

操作:

1、在slave机器上配置slave信息,修改mysql.cfg配置并重启slave数据库

在[mysqld]中添加

replicate-do-db = ucenter     #同步的数据库名字
slave-skip-errors=all         #同步是忽略错误
server-id       = 1112        #和master与其他slave保持不通

2、查找数据库前一天的备份,将其copy到新增的slave机器上,并导库

[root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G    ucenter_20171102.sql

3、定位binlog时间戳(重点)

在master上查找binlog

[root@Ucenter /data/mysqldata]# ll -t *bin*
-rw-rw---- 1 mysql mysql   30709744 Nov  2 21:32 mysql-bin.000268
-rw-rw---- 1 mysql mysql        171 Nov  2 19:41 mysql-bin.index
-rw-rw---- 1 mysql mysql 1021101094 Nov  2 19:41 mysql-bin.000267
-rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
-rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
-rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
-rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
-rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
-rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
-rw-rw---- 1 mysql mysql 1073742184 Oct  7 09:49 mysql-bin.000260

我的备份时间是2号4点开始,所以应该在mysql-bin.000267里查找2号4点前的pos,开始定位

[root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep '3:59:' |grep -v '13:59:'
#171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824386335 Query    thread_id=3023086386    exec_time=0    error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
#171102 3:59:58 server id 21323 end_log_pos 824386698 Query    thread_id=3023086386    exec_time=0    error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824387706 Query    thread_id=3023086388    exec_time=0    error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
#171102 3:59:58 server id 21323 end_log_pos 824388209 Query    thread_id=3023086388    exec_time=0    error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824388534 Query    thread_id=3023086398    exec_time=0    error_code=0

所以定位到最后 end_log_pos 824388534

4、在另外一台slave上查看master.info

[root@LeduPass02/data/mysqldata]# cat master.info
15
mysql-bin.000268
11367810
192.168.100.70
omsync
om@123
3306
60
0

0
0

5、在slave 配置slave,进行同步

在Slave上配置相关设置,以便告诉Slave如何去连接Master,这包括主机地址,登陆凭证等等

[root@ucenter_slave /data]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.51-Community-Server-log Source

Copyright (c) 2000, 2010, oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and Redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql (none)>change master to master_host='192.168.100.70',master_port=3306,master_user='omsync',master_password='om@123',master_log_file='mysql-bin.000267',master_log_pos=824388534;

开启slave

mysql (none)>start slave;

查看slave状态:

MYSQL 增加从库方式介绍

完成。

到此这篇关于MYSQL 增加从库方式介绍的文章就介绍到这了,更多相关MYSQL增加从库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MYSQL 增加从库方式介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

不停止 MySQL 服务增加从库的两种方式

现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。一般在线增加从库有两种方式,一种是通过my
2022-05-19

Node连接mysql数据库方法介绍

使用Node做Web开发,基本上都是使用NoSQL数据库,最频繁的就是使用MongoDB了,自己做了一些简单的Web开发,为了降低学习门槛,一直使用MySQL来做数据库。这里简单介绍一下连接MySQL数据库的方式,希望能帮助到其他人。npm
2022-06-04

win8图片库加入图片的方法介绍

Win8系统中的Metro界面真是灰常漂亮啊,我就喜欢在这界面下用不过可以用的软件真是少。Metro界面中的相片下的图片库,你打开是不是也提示没有图片呢?小编教你怎么给图片库里加入图片,5步添加完成。切换到Metro界面下进入相片下的图片库
2022-06-04

Linux中的LVM增加容量与删除卷的方法介绍

这篇文章主要讲解了“Linux中的LVM增加容量与删除卷的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中的LVM增加容量与删除卷的方法介绍”吧!放大LV容量涉及到LVM管
2023-06-12

编程热搜

目录