当前位置:嗨网首页>书籍在线阅读

05-复制的实现

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.1.3 复制的实现

MySQL的复制技术主要有以下3种。

⑴DRBD (Distributed Replicated Block Device)是——种用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。

⑵另一种方案是MySQL Cluster (又称MySQL簇)。MySQL Replicaion (复制)本身是一个比较简单的架构,即一台从服务器(Slave)从另一台主服务器(Master)读取二进制日志然后再解析并应用到自身。

⑶一个最简单复制环境只需要两台运行有MySQL的主机即可,甚至可以在同一台物理服务器主机上面启动两个mysqld实例。一个作为Master而另一个作为Slave来完成复制环境的搭建。但是在实际应用环境中,可以根据实际的业务需求利用MySQL复制的功能自己定制搭建出其他多种更利于扩展的复制架构,如最常用的主从架构。

主从架构指的是使用一台MySQL服务器作为Master,一台或多台MySQL服务器作为Slave,将Master的数据复制到Slave上。在实际的应用场合中,主从架构模式是MySQL复制最常用的。一般在这种架构下,系统的写操作都在Master中进行,而读操作则分散到各个Slave中进行,因此这种架构特别适合于解决目前互联网高读写比的问题。

MySQL数据库复制操作大概分为以下几个步骤。

⑴Master启用二进制日志。启用二进制日志的操作在日志管理中有详细介绍,在此不再赘述。

⑵Slave上面的I/O进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。

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

⑷Slave的I/O进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中。

⑸Slave的SQL进程检测到relay-log中新增加的内容后,会马上解析relay-log的内容,并在自身执行。