`

MYSQL 主从服务器配置工作原理

阅读更多

一、        主从配置的原理:
Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个
Mysql instance(我们称之 Slave)。在 Master 与 Slave
之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master
端。
  要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary
Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全
顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用
“—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加
“log-bin” 参数项。
  MySQL 复制的基本过程如下:
  1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
 
   2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO
线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO
线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 Binary
Log 中的位置;
  3. Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的Relay
Log文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-
info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”
 
   4. Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master
端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。这样,实际上就是在 Master 端和 Slave
端执行了同样的 Query,所以两端的数据是完全一样的。

二、        设置mysql主从配置的优点:
1、        解决web应用系统,数据库出现的性能瓶颈,采用数据库集群的方式来实现查询负载;一个系统中数据库的查询操作比更新操作要多得多,通过多台查询服务器将数据库的查询分担到不同的查询服务器上从而提高查询效率。
2、        Mysql数据库支持数据库的主从复制功能,使用主数据库进行数据的插入、删除与更新操作,而从数据库则专门用来进行数据查询操作,这样可以将更新操作和查询操作分担到不同的数据库上,从而提高了查询效率。

三、        主从数据库服务器的配置
1、        主数据库服务器的配置
(1)、修改mysql的配置文件(/etc/my.cnf)在配置文件中设置:
server-id       = 1   ###每一个数据库服务器都要制定一个唯一的server-id,通常主服务器制定为1。
log-bin=mysql-bin     ###mysql进行主从复制是通过二进制的日志文件来进行的,所以必须开启mysql的日志功能
(这个是/etc/my.cnf的默认配置,保持不变即可)
(2)、GRANT REPLICATION SLAVE ON *.* TO ' replication'@'172.28.3.41' IDENTIFIED BY 'koncept';        #####给主数据库服务器授予一个可以进行复制的用户,172.28.3.41为从服务器的IP,这样从服务器就能有钱先来访问主数据库服务器
2、从数据库服务器的设置
修改数据库配置文件/etc/my.cnf,配置如下内容:
   #server-id      = 1  ####必须把server-id      = 1注释掉,
   server-id       = 2  ####设置从的ID号
   master-host     =  172.28.3.43  #####设置主服务器的IP
   master-user     =   replication  #####设置连接主服务器的用户名
   master-password =   concept     #####设置连接主服务器的密码
   replicate-do-db=imtest0  ######设置你要同步的数据库,可以设置多个   
####就是我们前面建的用户名和密码,另外如果有端口号的变化还要配置端口
master-port     =  <port> 配置成你设置的端口就OK了!
3、分别重新启动主从服务器 #### 如果不重新启动主服务器在后面查看status的时候会出现问题!
4在从服务器上登录mysql,输入:show slave status\G  如果发现有:
  Slave_IO_Running: Yes
Slave_SQL_Running: Yes
  就说明已经成功了,如果这两个选项不全是Yes,那就说明你钱面的某个配置错了,
  我做的时候没有把主服务器重启,就出现  Slave_IO_Running: NO。重启后好了!

四、        监控服务器的状态
1、        监控主服务器的状态
可通过show master status来监控主服务器的状态,内容如下:
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     1164 |              |                  |
+------------------+----------+--------------+------------------+
#####其中File表示日志文件记录,Position表示日志文件的位置,这个也是数据库执行复制操作的必须标识,后面两字段表示复制的数据库名和不复制的数据库名,也可以在配置文件中你进行配置。
2、        监控从服务器的状态
可以通过:show slave status\G来查看,另外如果从数据库在复制的过程中出现问题,可以通过命令reset slave从数据库服务器复制的线程,从数据库服务器的通常操作命令有:
start slave;  ####启动复制线程
stop slave;  ####停止复制线程
reset slave;  ####重置复制线程
change master to; ###动态改变到主服务器的配置
来源:http://bbs.365master.com/archiver/tid-127747.html

分享到:
评论

相关推荐

    MySQL主从架构的复制原理和配置最佳攻略

    Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个...

    MySQL主从原理及配置详解

    MySQL主从配置及原理,供大家参考,具体内容如下 一、环境选择: 1.Centos 6.5 2.MySQL 5.7 二、什么是MySQL主从复制 MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台...

    高性能Mysql主从架构的复制原理及配置详解

    Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个...

    深入探索MySQL主从架构与读写分离:提升数据安全和性能的实战指南

    详细说明了如何配置Master主服务器和Slave从服务,包括同步原理和具体搭建步骤。文章还涵盖了半同步复制的原理与实施,以及如何处理主从架构中的数据延迟问题。此外,还探讨了MySQL高可用方案和分库分表的实用性,...

    Mysql主从复制作用和工作原理详解

    在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。 并会维护文件的一个索引用来跟踪...

    深入理解MySQL主从复制线程状态转变

    本文主要给大家介绍的是关于MySQL主从复制线程状态转变的相关内容,下面话不多说了,来一起看看详细的介绍吧 一、主库线程状态(State)值 以下列表显示了主从复制中主服务器的Binlog Dump线程的State列中可能看到的...

    MySQL主从复制的原理及配置方法(比较详细)

    请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存储引擎的主服务器上工作。并且,该语句将获得全局读锁定。 MySQL 使用3个线程来执行复制功能,其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时...

    MySQL主从复制常见故障排除

    生产环境中为了保证系统的兼容与稳定,在搭建服务器时就应该配置主从复制,主从服务器中的MySQL版本尽量一致。但有时难以保证版本的一致,或者在学习过程中遇到版本不兼容的问题,就容易遇到各种奇葩的故障。本文...

    MySQL主从同步

    主从同步一、主从同步概述1.1、MySQL主从同步1.2、主从同步工作原理1.2.1、必要条件1.2.2、具体过程1.3、结构类型二、构建一主一从2.1、拓扑结构2.2、配置主服务器2.2.1、启用binlog日志2.2.2、授权用户2.2.3、查看...

    MySQL主从复制与读写分离原理及用法详解

    本文实例讲述了MySQL主从复制与读写分离原理及用法。分享给大家供大家参考,具体如下: 主从复制 概念 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的...

    linux系统下实现mysql热备份详细步骤(mysql主从复制)

     MySQL主从备份原理: Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 如果想配置成为同一台上的话,注意安装的时候,选择两个不同的...

    MySQL主从复制的原理及配置方法

    下面将简单介绍复制的原理及配置,以及一些常见的问题  一、复制的原理  MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录到其二进制...

    Linux下MySQL数据库的主从同步复制配置

    这个就是MySQL主从备份原理。下面我们来看下具体同步配置的流程。 我们先来看下小编测试的环境: CentOS 6.5 MySQL主从同步,MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192....

    MYSQL的主从复制知识点整理

    当单台MYSQL服务器无法满足当前网站流量时的优化方案。需要搭建mysql集群技术。 一、功能: 当向主服务器插入|修改|删除数据时,数据会自动同步到从服务器...这个可以MYSQL的配置文件中设置: 二、主从的原理(利用了bi

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    13-MySQL主从复制从库只读案例实战及原理总结.avi 14-企业生产场景MySQL主从复制故障原因及实战解决.avi 15-从库开启BINLOG原因及开启实战讲解1.avi 16-从库开启BINLOG原因及开启实战讲解2.avi 17-企业场景一主多从...

    mysql 5.6.14主从复制(也称mysql AB复制)环境配置方法

    一、mysql主(称master)从(称slave)复制的原理:  (1).master将数据改变记录到二进制日志(binary log)中,也即是...二、mysql主从复制支持的类型:  (1).基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行

    详解MySQL的主从复制、读写分离、备份恢复

    一、MySQL主从复制 1、简介 我们为什么要用主从复制? 主从复制目的: 可以做数据库的实时备份,保证数据的完整性; 可做读写分离,主服务器只管写,从服务器只管读,这样可以提升整体性能。 原理图: 从上图可以...

    MySQL5.7.18主从复制搭建(一主一从)教程详解

    MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制...

    mysql-7 (1).pdf

    4. 掌握MySQL的主从原理 5. 可以自己完成主从的案例演示 6. 掌握MySQL读写分离的原理 1. mysql-proxy (GA) 2. mysql router(待完善) 3. Mycat 7. 要理解为什么分库分表 8. 要理解如何分库分表 9. 什么时候选择...

    分布式集群、PB级别网站性能优化

    大数据高并发服务器实战教程 Linux LNMP部分 Memcached篇 ...mysql主从复制安装配置进阶 hadoop分布计算安装 hadoop分布计算配置 redis安装实战 redis使用进阶 redis实用命令实战 redis实战案例及总回顾

Global site tag (gtag.js) - Google Analytics