原理-->


在数据库层面,复制语句或者行,因为在数据库层面,故只有主服务器生成,并放到二进制日志里面,才能复制给从服务器.

原理-->
mysql的主从复制基于异步,主要有三个进程执行,分别是主mysql上mysqldump进程,从mysqli/o进程和sql进程。
执行过程:主mysql上mysqldump进程接收到从mysql的I/O进程发出的请求后,读取本地binlog,并将数据通过3006端口发送给从mysql,从mysql的I/O进程将数据存放到中继日志中,同时在master-info存入所获取的binlog日志的文件名和位置,便于下次告知主mysql我上次从哪个地方复制的,之后从mysql的sql进程检测到中继日志有内容加入后,在从mysql本地执行新加的语句,并将执行的语句的结果,存入数据库。
目的-->

数据分布,进行读写分离,通过一主多从,实现主负责写,从负责读.

基 本步骤(主从)-->(若主节点已经运行一段时间,则首先要保证从节点内容和主节点一致,参考mysql之备份恢复)


主服务器:
创建具有复制权限的用户帐号-->
mysql>grant replication slave,replication client on *.* to repluser@'172.16.%.%' identified by '123456';
mysql>flush privileges;

设置server-id-->防止循环复制
#vim /etc/my.cnf
server-id=100

启用二进制日志-->修改日志为绝对路径,以及日志格式
vim /etc/my.cnf     
log-bin=/mydata/data/mysql-bin
binlog_format=mixed

全局锁表,防止数据库发生改变
mysql>FLUSH TABLES WITH READ LOCK;

查看主服务器锁表后此时的二进制名和日志位置,假设获取的内容是
mysql>show master status;
MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;

复制所有的数据库数据到从服务器上(保留权限),二进制日志文件可不复制.
解锁
mysql>unlock tables;



从服务器:
启用中继日志-->(可选:关闭二进制日志)
vim /etc/my.cnf
#relay log
relay-log=/mydata/data/relay-bin
#Read only
read-only=1
#禁止从服务器自动启动
skip-slave-start=1

设置server-id-->
#vim /etc/my.cnf
server-id=200

修改数据库权限为mysql.mysql
#chown -R mysql.mysql data_dir

启动复制线程-->设置连接属性,并启动(show slave status\G   查看从节点状态)
mysql>change master to MASTER_HOST='192.168.1.1',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;
mysql>start slave;

主数据库如果重启,则从数据库需要重新定义新的链接属性.
从服务器I/O线程始终是链接状态,而不是YES,最后超时
连接属性设置错误.
半同步模式(降低同步延迟问题)-->半同步模式需要插件支持,默认插件位置在/usr/local/mysql/lib/plugin
 
主服务器 
mysql -uroot
#安装模块
mysql>install plugin rpl_semi_sync_master soname 'semisync_master.so';
mysql>set global rpl_semi_sync_master_enabled=1;
#等待从节点响应,若在timeout期间没有响应,则主节点降级为异步
mysql>set global rpl_semi_sync_master_timeout=1000;

同时也可以在配置文件中永久启用:
#vim /etc/my.cnf
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000

从服务器
mysql>install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 
mysql>set global rpl_semi_sync_slave_enabled=1;
mysql>stop slave;
mysql>start slave;

从服务器半同步模式始终是off
从服务器的半同步模式,只有在salve start状态下,才会启用.
同时也可以在配置文件中永久启用:
#vim /etc/my.cnf
rpl_semi_sync_slave_enabled=1

查看模块:mysql>show global status like '%semi%';

mysql之主从复制的更多相关文章

  1. mysql的主从复制是如何实现的

    前言 MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为 ...

  2. mysql数据库主从复制部署笔记

    主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考. 数据库主从复制原理: 数据库的主从复制就是从mas ...

  3. Mysql中主从复制的原理、配置过程以及实际案例

    Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6 ...

  4. mysql简单主从复制(一)

    MYSQL简单主从复制 master:172.25.44.1 slave:172.25.44.2 mysql5.7安装 master和slave均操作 准备rpm包:mysql-5.7.17-1.el ...

  5. Mysql数据库主从复制搭建

    Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...

  6. liinux安装 mysql 及主从复制

    mariadb其实就是mysqlmysql已经被oracle收购,它即将闭源,马上要开始收费了因此还想免费试用开源的数据库mysql,就在centos7上,将mysql分支为mariadb 安装mar ...

  7. mysql (主从复制)(proxy , Amoeba)

    原址如下: http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中 ...

  8. MySQL的主从复制+双主模式

    MySQL的主从复制 部署环境: MySQL master 192.168.40.21 MySQL slave  192.168.40.22 思路: 当主MySQL上进行数据上的操作或者变化时,主My ...

  9. 使用 Xtrabackup 在线对MySQL做主从复制【转】

    1. 说明 1.1 xtrabackup mysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷.一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldu ...

随机推荐

  1. 滚动页面时DIV到达顶部时固定在顶部

    本示例使用Javascript实现了滚动页面时,DIV到达顶部时固定在顶部.在IE下效果有点闪,效果网址:http://www.keleyi.com/keleyi/phtml/fixdiv.htm 下 ...

  2. 关于HTML在手机端自适应的一个问题

    在写页面的时候 一直以为是自己调节的大小,结果页面跳出来的效果完全不适应手机的尺寸和宽度 其实主要是因为head头中没有放自适应标签导致:下面就让我们来认识一下这款神器吧! 其实主要就是改掉HTML页 ...

  3. 启动Tomcat一闪而过解决

    打开apache-tomcat-6.0.32/bing/catalina.bat在首行添加: set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_07 就可以了.

  4. SIM卡基础,各管脚意义,封装定义

    1. SIM简介 SIM卡(Subscriber Identity Module).即用户识别模块,是一张符合GSM规范的"智慧卡".SIM卡可以插入任何一部符合GSM规范的移动电 ...

  5. 《Programming WPF》翻译 第9章 2.选择一个基类

    原文:<Programming WPF>翻译 第9章 2.选择一个基类 WPF提供了很多类,当创建一个自定义元素时,你可以从这些类中派生.图9-1显示了一组可能作为类--可能是合适的基类, ...

  6. 《Programming WPF》翻译 第7章 6.视频和3-D

    原文:<Programming WPF>翻译 第7章 6.视频和3-D 虽然详细地讨论视频和3-D超越了这本书的范围,但是获得这些特征的支持是值得的. 视频由MediaElement类型支 ...

  7. 【转】android cts测试方法及步骤

    原文网址:http://blog.csdn.net/shi_xin/article/details/42262675 1.CTS下载 打开下面网址, http://source.android.com ...

  8. 利用智能手机(Android)追踪一块磁铁(二)

    在上一篇博客中提到了利用磁场强度推算传感器位置坐标的公式,下面就介绍怎么利用智能手机完成磁铁的追踪(任何具有磁感应器的装置均可以),这里主要是利用Android手机. 1:程序步骤: 首先将磁铁放置在 ...

  9. 计算机视觉库 SimpleCV

    SimpleCV首页.文档和下载 - 计算机视觉库 - 开源中国社区     计算机视觉库 SimpleCV 编辑/纠错    分享到     新浪微博腾讯微博    已用    +0    收藏 + ...

  10. linux时钟管理

    ref https://access.redhat.com/solutions/18627 在el5中 如何查看系统现在使用的clock source是什么? 答: 方式1:需要说明的是不能保证这个两 ...