深入mysql主从复制延迟问题的详解

 更新时间:2013年06月14日 09:03:05   作者:  
本篇文章是对mysql中主从复制延迟的问题进行了详细的分析介绍,需要的朋友参考下

面试mysqldba的时候遇到一个题:

描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点?

MySQL的复制(replication)是一个异步的复制,从一个MySQL instace(称之为Master)复制到另一个MySQL instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在Master(IO进程)上。

引用新浪某位大牛的话:mysql复制就是一句话:基于binlog的单线程异步复制过程。
MySQL Replication复制的基本过程如下:
1、Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

复制代码 代码如下:

mysql> CHANGE MASTER TO
            ->     MASTER_HOST='master_host_name',
            ->     MASTER_USER='replication_user_name',
            ->     MASTER_PASSWORD='replication_password',
            ->     MASTER_LOG_FILE='recorded_log_file_name',
            ->     MASTER_LOG_POS=recorded_log_position;

2、Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;

3、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

4、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行

操作过程:
(1)登陆主服务器,查看主服务器的状态
mysql>show master status;
找到现阶段master的数据偏移量的值。

(2)登陆从服务器,执行同步操作。
mysql>stop slave;
mysql > change master to 直接定位到这个值得位置; 这里也就相当于给slave指明了相应的位置。
mysql > start slave;

(3)从服务器上查看状态
mysql > show slave status

相关文章

  • mysql函数之截取字符串的实现

    mysql函数之截取字符串的实现

    本文主要介绍了mysql函数之截取字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • mysql 生成连续日期及变量赋值

    mysql 生成连续日期及变量赋值

    这篇文章主要介绍了mysql 生成连续日期及变量赋值的相关资料,分享内容及代码详细,具有一的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结,使用mysql的朋友可以参考下。
    2011-11-11
  • mysql too many open connections问题解决方法

    mysql too many open connections问题解决方法

    这篇文章主要介绍了mysql too many open connections问题解决方法,其实是max_connections配置问题导致,它必须在[mysqld]下面才会生效,需要的朋友可以参考下
    2014-05-05
  • mysql命令行如何操作

    mysql命令行如何操作

    这篇文章主要介绍了mysql命令行如何操作,还为大家分享了mysql添加环境变量的方法,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • MySQL查询语法汇总

    MySQL查询语法汇总

    这篇文章主要介绍了MySQL查询语法的汇总,帮助大家更好的理解和学习mysql,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL之修改数据表存储引擎的三种方式

    MySQL之修改数据表存储引擎的三种方式

    这篇文章主要介绍了MySQL之修改数据表存储引擎的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • MySQL授权命令grant的使用方法小结

    MySQL授权命令grant的使用方法小结

    这篇文章主要介绍了MySQL授权命令grant的使用方法,本文实例,运行于 MySQL 5.0 及以上版本,介绍了MySQL 赋予用户权限命令的简单格式,本文给大家介绍的非常详细,需要的朋友参考下吧
    2021-12-12
  • MYSQL 高级文本查询之regexp_like和REGEXP详解

    MYSQL 高级文本查询之regexp_like和REGEXP详解

    在MySQL中,regexp_like和REGEXP都是用于执行正则表达式搜索的函数,这篇文章主要介绍了MYSQL 高级文本查询之regexp_like和REGEXP,需要的朋友可以参考下
    2023-05-05
  • MySQL 全文检索的使用示例

    MySQL 全文检索的使用示例

    全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
    2021-06-06

最新评论