bitsCN.com
复制不是copy的复制而是replication的复制,从今天开始我将专门分几个章节和大家讨论一下mysql的replication问题,其中有关于主从复制的问题将单独详细的和大家讲解。首先先给大家讲解一下mysql的复制原理,说的通俗一些就是mysql的复制过程是怎么工作的,具体如下图所示:
我们大概可以分成3部来讲解
1首先主服务器把数据更改变化写到二进制日志里(binary log)。
2 从服务器把主服务器的二进制日志文件copy到自己的中继日志里面。
3从服务器重放中继日志里的事件,并且更新自己的相关数据。
下面我们来进行详细的讲解,当主服务器进行数据的更新包括insert ,create,drop等操作的时候,会把具体的事件写入到自己的二进制日志里,那怕具体的操作是错误操作也照样把相关的事件写入到自己的二进制日志里,接着从服务器会主动去主服务器里面copy其生成的二进制日志文件并且把其写入到自己的中继日志里面。在这一过程中从服务器会建立一个I/O线程,说白了话就是这时候从服务器会建立一个客户端连接主动去和主服务器连接,然后启动一个进程,这个进程的作用是从主服务器的二进制日志里读取事件。当从服务器把主服务器的二进制日志文件拷贝到自己的中继日志文件里的时候,从服务器会启动一个线程读取中继日志里的内容,并且重放里面的内容从而起到同步主数据库的作用。这里需要说明一点,mysql replication是异步同步的,这就意味着,从服务器上的数据并不是时时更新的,他们之间可能有延迟,有可能是几秒,几分,大型数据库甚至可能是几小时。Oh,my sky!!
本文出自 “虚心求教” 博客