Mysql的AB复制(主从复制)原理及实现

Mysql复制(replication)是一个异步的复制,从一个Mysql 实例(Master)复制到另一个Mysql 实例(Slave)。实现整个主从复制,需要由Master服务器上的IO进程,和Slave服务器上的Sql进程和IO进程共从完成。         要实现主从复制,首先必须打开Master端的binary log(bin-log)功能,因为整个MySQL 复制过程实际上就是Slave从Master端获取相应的二进制日志,然后再在自己slave端完全顺序的执行日志中所记录的各种操作。 (二进制日志几乎记录了除select以外的所有针对数据库的sql操作语句)

主从复制的基本过程如下: 1)、Mysql  Slave端的IO进程连接上Master,向Master请求指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2)、Master接收到来自Slave的IO进程的请求后,负责复制的IO进程根据Slave的请求信息,读取相应日志内容,返回给Slave 的IO进程。并将本次请求读取的bin-log文件名及位置一起返回给Slave端。 3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”; 4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

配置实现:
1,实现主从复制,Master端和客户端都需要打开二进制日志,在my.cnf中添加如下配置
log-bin=xx log-bin-index=xx.index server-id=xx expire-logs-days=n      自动轮转日志天数 ,防止单个日志之文件过大 或者在mysql中执行flush  logs  手动轮状二进制日志,结合crond自动轮转日志。 www.it165.net

--------------------------------------------- 其他常用配置参考如下: [mysqld] datadir=/database basedir=/usr/local/mysql pid-file=/var/run/mysqld/mysql5.pid socket=/var/run/mysqld/mysql5.socket general-log general-log-file=/var/log/mysqld/mysql5-access.log log-error=/var/log/mysqld/mysql5-error.log port=3306 user=mysql ----------------------------------------------

2,在Master端给 Mysql  Slave Server授权:
myql>grant  replication  slave, super  on  *.*  to  ‘xx‘@‘xx‘    identified  by  ‘xxx‘; 查看状态: mysql>show master  status \G

3,在Slave端对指定Master端进行连接
mysql>stop  slave; mysql>change   master   to          master_host=‘10.1.1.145‘,          master_port=3306,          master_user=‘tt‘,          master_password=‘123‘,          master_log_file=‘uu.000005‘,          master_log_pos=265; mysql>start  slave; mysql>show slave status \G              Slave_IO_Running: Yes                                        Slave_SQL_Running: Yes      如果此两项显示yes,代表连接同步成功。

4,测试
在Master端进行创建或超人操作,从服务器能自动实现同步,则主从复制实现成功。

Mysql的AB复制(主从复制)原理及实现

时间: 2024-10-11 04:22:10

Mysql的AB复制(主从复制)原理及实现的相关文章

MySql ---- ab复制(主从复制)

ab复制(主从复制)可以让mysql实现:1.数据的备份(主服务器的数据全部同步到从服务器)2.可以负载均衡减小主服务器的压力3.真正实现mysql的读写分离 配置方法主服务器:1. 主服务器 my.cnf 配置cat /etc/my.cnf[mysqld]log-bin=mysql_binserver-id=1    不允许重复2. 授权,指定从服务器只能复制binlog,从服务器的ipgrant replication slave on *.* to 'slave'@'192.168.1.1

MYSQL 的 AB 复制(主从,双机热备)

MYSQL 的 AB 复制(主从,双机热备)     在实际的应用中,我们经常需要制作一个备份数据库.当我们的主数据库发生问题导致无法正常相应的时候,我们可以 把备用的从数据库街上来顶替主库,以达到不间断服务,热备的作用.在实际应用中从库和主库的数据必须同步,保持一致, 对主库的任何操作通要引发从库上的同样操作. 实现原理: 从库以一定的频率去读取主库的二进制日志文件,按照日志中记录对从库进行同样的操作,以达到同步效果. 注意版本影响: 实现双机的热备首先要了解主从数据库服务器的版本的需求.首先

Mysql的ab复制

mysql复制在业界里有叫:mysql同步,ab复制等.专业名称就是叫:复制.复制是单向的异步复制,从一个Mysql(Master)复制到另一个Mysql(Slave).实现整个主从复制,需要由Master服务器上的IO进程,和Salve服务器上的Sql进程和IO进程共同完成. 要实现主从复制,首先必须打开Master端的二进制日志(bin-log)功能,因为整个Mysql复制过程实际上就是Slave从Master端获取相应的二进制日志文件,然后在根据相应的Position号在自己Slave端完

MySQL系列之E-1------MySQL主从复制原理

主从复制是异步复制,可以通过google的一个插件实现半同步 E.1 主从复制原理 1.建立主从复制的用户名和密码 2.将master上主库需要进行复制的库"锁库" 3.通过mysqldump备份master上主库,"解锁",在slave端进行恢复 4.更改配置文件 5.在丛库上执行change master to 6.开启复制

mysql 主从的复制的原理及操作步骤

数据库读法约定: 主库: master 从库: slave mysql 主从同步的原理: #主从是异步模式,且是由从库找主库进行同步: 1.主库开启IO线程:    开启binlog: #binlog记录用户的增删改 从库开启IO线程:    开启SQL线程: 2.主库授权从库同步的帐号密码: 3.备份主库数据且导入从库: 4.在从库change master to 导入用于同步主库的ip.port.user.等信息. CHANGE MASTER TO          MASTER_HOST=

Mysql数据库AB复制简单实现

Mysql 主 从 复 制 在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的.譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止.介于这种情况,我们可以对mysql数据库进行主从复制,mysql直接的主从复制需版本相同,可以跨平台进行主从复制操作. 一.使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3.将主服务器上

学习笔记--mysql的AB复制

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助的. 客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7 Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置: vim   /etc/my.cnf 在[mysqld]下添加一下参数 log-bi

mysql低版本的主从复制和5.7版本的主从复制

mysql的主从复制和单向异步复制: mysql的AB复制: mysql 数据库的版本,两个数据库版本要相同,或者 slave 比 master 版本高! # yum install mysql mysql-server -y master server 配置 1)配置 /etc/my.cnf 配置文件 在[mysqld]下添加一下参数 log-bin=mysql-bin #启动二进制日志系统 binlog-do-db=test #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步 we

Mysql 主从复制(AB复制)

Mysql的主从复制又叫做AB复制,主要作用就是将主服务器上的数据及时复制到从服务器上,来实现数据的同步,这样做的好处有,在进行数据备份时,可以减轻主服务器的运行压力,另外即使主服务器宕机了,也能从从服务器上取得主服务器的数据,从而保证数据不会丢失.这对于一个企业来说是至关重要的.一般在实际生产环境中,由单台mysql作为独立的数据库是完全不能满足实际需要的,无论在安全性,高可用性以及高并发等方面,一般是通过主从复制(Master-Slave)的方式来同步数据,再通过keepalived组件或者