MYSQL增加从库的方法是什么
导读:本文共3296.5字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:接下来,请跟着小编一起来学习吧!一、MySQL主从复制常见的主从架构:一主一从:一个 Master,一个 Slave一主多从:一个 Master,多个 Slave具体,参考下图:实现细节MySQL 在主从同步时,其底层实现细节又是什么?为此后分析主从延迟原因以及优化方案,做好理论准备。总结来说,MySQL 的主从复制:异步单线程。Master上 1 个IO线程,负责向Slave传输binary l... ...
目录
(为您整理了一些要点),点击可以直达。接下来,请跟着小编一起来学习吧!
一、MySQL主从复制
常见的主从架构:
一主一从:一个 Master,一个 Slave
一主多从:一个 Master,多个 Slave
具体,参考下图:
实现细节
MySQL 在主从同步时,其底层实现细节又是什么?为此后分析主从延迟原因以及优化方案,做好理论准备。
总结来说,MySQL 的主从复制:异步单线程。
Master
上 1 个IO线程
,负责向Slave传输binary log
(binlog
)Slave上 2 个线程:
IO 线程
和执行SQL的线程
,其中:IO线程
:将获取的日志信息,追加到relay log上;执行SQL的线程
:检测到relay log中内容有更新,则在Slave上执行sql;
特别说明:MySQL 5.6.3 开始支持「
多线程
的主从复制
」,一个数据库
一个线程
,多个数据库
可多个线程
。
完整的 Master & Slave 之间主从复制过程:
二、增加一个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]#mysqlucenter<ucenter_20171102.sql[root@ucenter_slave/data]#du-shucenter_20171102.sql24Gucenter_20171102.sql
3、定位binlog时间戳(重点)
在master上查找binlog
[root@Ucenter/data/mysqldata]#ll-tbin
-rw-rw----1mysqlmysql30709744Nov221:32mysql-bin.000268
-rw-rw----1mysqlmysql171Nov219:41mysql-bin.index
-rw-rw----1mysqlmysql1021101094Nov219:41mysql-bin.000267
-rw-rw----1mysqlmysql1073742415Oct3006:07mysql-bin.000266
-rw-rw----1mysqlmysql1073742062Oct2612:03mysql-bin.000265
-rw-rw----1mysqlmysql1073742636Oct2219:21mysql-bin.000264
-rw-rw----1mysqlmysql1073741961Oct1822:49mysql-bin.000263
-rw-rw----1mysqlmysql1073742141Oct1512:47mysql-bin.000262
-rw-rw----1mysqlmysql1073742284Oct1110:18mysql-bin.000261
-rw-rw----1mysqlmysql1073742184Oct709:49mysql-bin.000260
我的备份时间是2号4点开始,所以应该在mysql-bin.000267里查找2号4点前的pos,开始定位
[root@Ucenter/data/mysqldata]#/usr/local/mysql/bin/mysqlbinlogmysql-bin.000267|grep'3:59:'|grep-v'13:59:'1711023:59:58serverid21323end_log_pos824385760Querythread_id=3023086382exec_time=0error_code=0
1711023:59:58serverid21323end_log_pos824386335Querythread_id=3023086386exec_time=0error_code=0
1711023:59:58serverid21323end_log_pos824386363Intvar
1711023:59:58serverid21323end_log_pos824386698Querythread_id=3023086386exec_time=0error_code=0
1711023:59:58serverid21323end_log_pos824387706Querythread_id=3023086388exec_time=0error_code=0
1711023:59:58serverid21323end_log_pos824387734Intvar
1711023:59:58serverid21323end_log_pos824388209Querythread_id=3023086388exec_time=0error_code=0
1711023:59:58serverid21323end_log_pos824388534Querythread_id=3023086398exec_time=0error_code=0
所以定位到最后end_log_pos 824388534
4、在另外一台slave上查看master.info
[root@LeduPass02/data/mysqldata]#catmaster.info15
mysql-bin.000268
11367810
192.168.100.70
omsync
om@123
3306
60
00
0
5、在slave 配置slave,进行同步
在Slave上配置相关设置,以便告诉Slave如何去连接Master,这包括主机地址,登陆凭证等等
[root@ucenter_slave/data]#mysql
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis6
Serverversion:5.1.51-Community-Server-logSourceCopyright(c)2000,2010,Oracleand/oritsaffiliates.Allrightsreserved.
ThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,
andyouarewelcometomodifyandredistributeitundertheGPLv2licenseType'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
mysql(none)>changemastertomaster_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)>startslave;
查看slave状态:
若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!MYSQL增加从库的方法是什么的详细内容,希望对您有所帮助,信息来源于网络。