MYSQL增加从库的方法是什么(mysql,开发技术)

时间:2024-05-02 01:51:30 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

接下来,请跟着小编一起来学习吧!

    一、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]#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.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
    WelcometotheMySQLmonitor.Commandsendwith;or\g.
    YourMySQLconnectionidis6
    Serverversion:5.1.51-Community-Server-logSource

    Copyright(c)2000,2010,Oracleand/oritsaffiliates.Allrightsreserved.
    ThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,
    andyouarewelcometomodifyandredistributeitundertheGPLv2license

    Type'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增加从库的方法是什么

    若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

    本文:MYSQL增加从库的方法是什么的详细内容,希望对您有所帮助,信息来源于网络。
    上一篇:React中的JSX{ }怎么使用下一篇:

    17 人围观 / 0 条评论 ↓快速评论↓

    (必须)

    (必须,保密)

    阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18