当你面试时mysqldba,你遇到一个问题。

描述的msyql复制机制的实现原理,以及如何恢复从数据库节点的数据不一致,不停的MySQL主库

MySQL的复制(复制)是一个异步复制,从一个MySQL实例文档复制(称为大师)到另一个MySQL实例(称为奴隶),整个复制操作的实现是由三个过程主要完成,这两个过程是奴隶(SQL过程和IO的过程),和其他过程在主(IO过程)。

从新浪的一句话:MySQL复制是一个字:基于binlog单线程异步复制。
MySQL复制复制的基本过程如下:
1,IO上方的IO进程连接到主程序,并从指定日志文件的指定位置(或从第一个日志)请求日志的内容;
复制代码代码如下所示:
更改主机为
-> 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、掌握从奴隶的IO进程接收到请求,然后读取日志信息进行日志指定位置,并通过IO进程负责复制到奴隶的IO进程返回。除了包含日志中的信息,返回的信息包含姓名的本日志文件已经返回到主终端和位置的二进制日志。

3,收到短信后的IO过程,接收到的日志内容添加到该中继日志文件从端末,读到主仓日志文件的名称和位置记录到主文件结束,阅读在未来高速主清楚我需要的日志内容的时间将从这一本日志的位置,请发送给我;

4,从SQL的SQL进程检测到,在中继日志中添加新内容后,它将立即解析中继日志的内容成为主机端的可执行内容,并自行执行。

操作过程:
(1)登录到主服务器以查看主服务器的状态。
显示主状态;
在当前阶段找到主数据偏移量的值。

(2)从服务器登录并执行同步操作。
停止奴隶;
更改主机直接位于这个位置;这也相当于指定从属的位置。
开始奴隶;

(3)从服务器查看状态
显示从属状态