`
wenson
  • 浏览: 1051861 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL Replication 主从同步原理及配置

 
阅读更多

MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。 
  
下图是MySQL官方给出了使用Replication的场景:

Replication原理
Replication原理 
  
Mysql 的 Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另一个MySQL节点(称之Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(SQL 线程和 I/O 线程)在 Slave 端,另外一个线程(I/O 线程)在 Master 端。 
  
要实现 MySQL 的 Replication ,首先必须打开 Master 端的 Binary Log,因为整个复制过程实际上就是 Slave 从 Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。 
  
看上去MySQL的Replication原理非常简单,总结一下: 
     * 每个从仅可以设置一个主。 
    * 主在执行sql之后,记录二进制log文件(bin-log)。 
    * 从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。 
   
从这几条Replication原理来看,可以有这些推论: 
     * 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。 
    * 如果主从的网络断开,从会在网络正常后,批量同步。 
    * 如果对从进行修改数据,那么很可能从在执行主的bin-log时出现错误而停止同步,这个是很危险的操作。所以一般情况下,非常小心的修改从上的数据。 
    * 一个衍生的配置是双主,互为主从配置,只要双方的修改不冲突,可以工作良好。
    * 如果需要多主的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。 
   
主从设置 
  
因为原理比较简单,所以Replication从MySQL 3就支持,并在所有平台下可以工作,多个MySQL节点甚至可以不同平台,不同版本,不同局域网。做Replication配置包括用户和my.ini(linux下为my.cnf)两处设置。 
  
首先在主MySQL节点上,为slave创建一个用户: 
  
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'192.168.1.10' IDENTIFIED BY 'slave'; 
  
实际上,为支持主从动态同步,或者手动切换,一般都是在所有主从节点上创建好这个用户。然后就是MySQL本身的配置了,这需要修改my.cnf或者my.ini文件。在mysqld这一节下面增加: 
  
server-id=1    
auto-increment-increment=2     
auto-increment-offset=1     
log-bin     
binlog-do-db=mstest     
binlog_format=mixed 
  
master-host=192.168.1.62    
master-user=slave     
master-password=slave     
replicate-do-db=mstest 
  
上面这两段设置,前一段是为主而设置,后一段是为从设置的。也就是说在两个MySQL节点上,各加一段就好。binlog-do-db和 replicate-do-db就是设置相应的需要做同步的数据库了,auto-increment-increment和auto- increment-offset是为了支持双主而设置的(参考下一节),在只做主从的时候,也可以不设置。 
  
双主的设置 
  
从原理论来看MySQL也支持双主的设置,即两个MySQL节点互为主备,不过虽然理论上,双主只要数据不冲突就可以工作的很好,但实际情况中还 是很容发生数据冲突的,比如在同步完成之前,双方都修改同一条记录。因此在实际中,最好不要让两边同时修改。即逻辑上仍按照主从的方式工作。但双主的设置 仍然是有意义的,因为这样做之后,切换主备会变的很简单。因为在出现故障后,如果之前配置了双主,则直接切换主备会很容易。 
  双主在设置时,只需将上面的一段设置复制一份,分别写入两个MySQL节点的配置文件,但要修改相应的server-id,auto- increment-offset和master-host。auto-increment-offset就是为了让双主同时在一张表中进行添加操作时不 会出现id冲突,所以在两个节点上auto-increment-offset设置为不同的值就好。  另:不要忘了,在两个节点上都为对方创建用户。  应用层的负载均衡  本文只介绍了MySQL自身的Repilication配置,在上面的图中也可以看出,有了Replication,还需要应用层(或者中间件)做一个负载均衡,这样才能最大程度发挥MySQL Replication的优势,这些将在以后探讨。 
 
 
from:http://zhangpingan2005.blog.163.com/blog/static/67229542201152722953875/
分享到:
评论

相关推荐

    12.1: MySQL主从同步 、 主从同步模式 、 总结和答疑.docx

    MySQL主从同步配置和实现 MySQL主从同步是指将一个MySQL服务器的数据实时地复制到另一个或多个服务器上,以实现数据的高可用性和灾难恢复。这种方式可以实现数据的热备援、读写分离、负载均衡等功能。 1. 案例 1:...

    Linux-Mysql主从同步配置

    Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...

    Linux配置mysql主从同步

    ### Linux下MySQL主从同步配置详解 #### 一、引言 在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux...

    Mysql5.1.7以上版本主从同步配置方法

    ### Mysql主从同步基本原理 在Mysql的主从复制模型中,主服务器(Master)负责写入操作,而从服务器(Slave)通过读取并执行主服务器的日志文件来复制这些操作,从而达到数据的一致性。这种机制不仅提高了数据的...

    mysql主从同步和一台服务器两个mysql

    在本文中,我们将详细介绍如何在一台服务器上配置两个 MySQL 服务器,以实现主从同步。 配置两个 MySQL 服务器 在配置主从同步之前,我们首先需要在一台服务器上安装两个 MySQL 服务器。下面是安装和配置的步骤: ...

    windows下mysql主从同步备份步骤

    在Windows环境下,MySQL主从同步备份是一种常见的高可用性和数据冗余策略,确保数据的...以上就是Windows环境下MySQL 5.0主从同步备份的详细步骤,确保在配置过程中每个环节都正确无误,以实现高效、可靠的数据库复制。

    mysql5.7 主从配置

    MySQL 5.7 主从配置是指在两个或多个 MySQL 服务器之间实现数据的实时同步复制,主服务器作为数据的写入入口,slave 服务器作为数据的读取入口。这种配置可以提高数据库的高可用性和读取性能。 1. 主从配置前提 ...

    MySQL Replication 主从复制全方位解决方案

    ### MySQL Replication 主从复制全方位解决方案 #### 一、引言 MySQL的主从复制机制是一种常见的高可用性和数据冗余方案,它可以帮助用户构建稳定可靠的数据服务环境。本篇文章将详细阐述MySQL主从复制的基础概念...

    MySQL Replication主从复制全方位解决方案1

    MySQL Replication主从复制是一种确保数据安全性并保持服务持续运行的重要技术。在主从复制架构中,一个MySQL服务器作为主服务器处理写操作,而其他服务器(从服务器)则同步主服务器上的所有更改,以实现数据的实时...

    MySQL主从同步与读写分离配置图文详解

    ### MySQL主从同步与读写分离配置详解 #### 一、实验目的 在现代的生产环境中,单一的MySQL服务器往往无法满足对数据处理的安全性、高可用性和高并发的需求。因此,采用**主从同步(Master-Slave Replication)**...

    mysql数据库主从同步

    MySQL 数据库主从同步配置 MySQL 数据库主从同步是指将主数据库的数据实时同步到从数据库中,以实现数据的高可用性和负载均衡。下面是 MySQL 数据库主从同步的配置步骤和相关知识点: 一、主数据库 master 配置 1...

    mysql主从同步搭建修改优化版.pdf

    MySQL主从同步是一种常见的数据库高可用性和数据冗余策略,它...总之,MySQL主从同步涉及到多个步骤,包括环境配置、权限设置、数据同步和监控优化。正确配置和维护主从同步能够确保数据库系统的稳定性和数据安全性。

    Mysql主从同步备份策略

    Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...

    如何实现MySQL的主从复制和半同步复制

    MySQL半同步复制(Semi-Synchronous Replication)是一种增强主从复制一致性的方法,它确保在主服务器上的事务提交之前,至少有一个从服务器接收到并应用了该事务的日志。 1. **半同步插件**:MySQL提供了一个名为`...

    配置mysql5.5主从服务器(转)

    ### 配置 MySQL 5.5 主从服务器详解 #### 一、背景介绍 在数据库管理与维护过程中,为了提高数据安全性和系统可用性,通常会采用 MySQL 的主从复制技术来实现数据冗余和负载分担。本文将详细介绍如何在两台服务器...

    MySQL之主从同步管理.pdf

    实际操作中,设置MySQL主从同步需要进行一系列的配置工作。例如,在CentOS 5.5 64 bit环境下,使用MySQL 5.1.50版本,主服务器IP为10.1.1.75,从服务器IP为10.1.1.76。首先要在主服务器上创建用于同步的账号,并赋予...

    MySQL主从同步原理+部署.docx

    MySQL主从同步是一种常见的数据库高可用性和负载均衡解决方案,它允许数据从主数据库实时复制到一个或多个从数据库。这种架构对于确保数据备份、实现读写分离以及提高系统整体性能至关重要。 1. **主从作用**: - ...

    mysql-replication mysql数据库主从复制步骤

    根据提供的文件信息,我们可以深入探讨MySQL数据库主从复制的相关配置及步骤。MySQL主从复制是一种常用的数据冗余机制,能够实现数据的实时备份,并在主服务器出现故障时快速切换到从服务器,保证业务的连续性。接...

    MySQL数据库主从同步服务器部署

    本文档将详细介绍 MySQL 数据库主从同步服务器的部署过程,包括配置主服务器和从服务器的配置文件、解决远程连接问题、配置主数据库的账号和授权、配置从服务器的配置文件等。 一、配置主服务器的配置文件 在配置...

Global site tag (gtag.js) - Google Analytics