做文案图片上什么网站,建网站商城有哪些公司,沈阳 网站开发,网站改版影响排名吗面试mysqldba的时候遇到一个题#xff1a;描述msyql replication 机制的实现原理#xff0c;如何在不停掉mysql主库的情况下#xff0c;恢复数据不一致的slave的数据库节点#xff1f;MySQL的复制(replication)是一个异步的复制#xff0c;从一个MySQL instace(称之为Mast…面试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_HOSTmaster_host_name,- MASTER_USERreplication_user_name,- MASTER_PASSWORDreplication_password,- MASTER_LOG_FILErecorded_log_file_name,- MASTER_LOG_POSrecorded_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)登陆主服务器查看主服务器的状态mysqlshow master status找到现阶段master的数据偏移量的值。(2)登陆从服务器执行同步操作。mysqlstop slave;mysql change master to 直接定位到这个值得位置 这里也就相当于给slave指明了相应的位置。mysql start slave;(3)从服务器上查看状态mysql show slave status