1、理论部分

1.1、mysql replication的概念:

enables data from one mysql database server(the master) to be replicated to one or more mysql database servers(the slaves).

1)可以将数据从一台数据库服务器(master)复制到一到多台数据库服务器(slave)

2)默认情况下,属于异步复制。因此无需维持长连接。

3)通过配置,你可以复制所有的库或者某几个库,甚至库中的几个表。

1.2、mysql replication的实现基础:

Binary Log(二进制日志)是实现mysql主从复制的基础

Binary Log的概念:所有的、无论是明确的或隐含的可以引起数据库发生改变的语句都要记录于Binary Log。

主从备份涉及的日志文件有:

Binary log(二进制日志)

Relay log(中继日志)

简单的说,就是master将数据库的改变写进二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据库操作。

1.3、mysql Replication的用途

1)Fail Over(故障切换)

2)Backup Server(备份服务,不能应对错误的命令操作)

3)High Perfomance(高性能)

1.4、mysql replication的分类:

1)主从(M-S)

2)主主(M-M)

1.5、mysql replication的商业价值:

首先服务器的扩展方式有:

1)scale up:提高原有应用的服务器性能

2)scale out:原有服务器以及应用不变,增加服务器。

服务器遇到性能瓶颈,向上扩展(scale up)的成本过高,假设服务器现有价格是M,性能扩展N倍,成本往往是M*N倍还要多的多的代价才能提高N倍的性能。

1.6、mysql的集群类型

cluster分类:

1)Load Balancing(负载均衡集群),两台服务器均同时提供服务。

2)High Availability(高可用集群),属于冗余机制,只单台提供服务。

3)High Preformance(高性能集群),例子如超级计算机,将非常大的运算需求,自动分割成N片,每一片交给一台计算机处理,处理完成后再返回结果给切割的计算机重新整合。

mysql既有负载均衡能力,又有高可用的特征,从某种意义来讲,负载均衡本身就具有高可用的特征,但高可用并不能提供负载均衡的能力。

1.7、mysql的同步异步问题

同步异步概念:

Async(异步)-通讯无确认信号返回,发送方无需等待接收方回应任务即中止,异步可以提供更好的性能表现。

Sync(同步)-通讯有确认信号返回,发送方需等待接收方回应任务才中止。

mysql主从架构属于异步架构

1.8、实现主从复制的相关线程

mysql主从的线程:

1)Dump thread,负责把数据倾泻给从服务器的线程。

2)I/o thread,负责接收主服务器倾泻过来的线程。

3)sql thread,从中继日志中读取数据并在本地应用数据的线程。

2、实验部分

2.1、实验环境

2.1.1、基本信息

1)mysql主服务器(Master):

ipaddress=10.168.0.103

hostname=sql-m

2)mysql从服务器(Slave):

ipaddress=10.168.0.104

hostname=sql-s

2.1.2、mysql的安装与初始化

In Master&Slave:

以上主机均需要先安装mysql相关rpm包:

初始化步骤如下(请根据实际情况选):

初始化完成后,做登录测试:

2.1.2、防火墙配置

In Master&Slave:

vim编辑/etc/sysconfig/iptables文件:

编辑完成效果:

重启防火墙:

2.1.3、percona xtrabackup的安装

In Master&Slave:

以上如果安装后执行innobackupex指令提示不支持mysql版本错误,请改为20版本:

2.2、实验步骤

2.2.1、step1

Slave是通过mysql连接登录到Master上读取二进制日志的。因此需要在Master上给Slave配置权限。

In Master:

数据库设置:

In Slave:

做如下测试:

2.2.2、step2

In Master:

1)打开二进制日志,并标识server-id

2)server-id用于唯一标识主机,数字取值范围1至2的32处方减1

vim编辑/etc/my.cnf:

重新启动mysqld服务:

检查设置是否成功:

2.2.3、step3

In Master:

制作一个Master的完整备份,并执行prepare.

以上工具可以记录二进制编号,从服务器导入数据后再后执行同步会从该编号后面开始执行。

2.2.4、step4

把备份拷贝到slave,并放入数据库文件目录。

In Slave

In Master:

In Slave:

登录后做数据库检查:

2.2.5、step5

In Slave:

在Slave上配置server-id,标识服务器。

vim编辑/etc/my.cnf

配置效果:

配置完成后重启服务:

2.2.6、step6

In Slave:

查看并记录二进制日志中的position ID。

记录下以上标红部分,step7要用。

2.2.7、step7

配置Slave Replication。

In Slave:

2.2.8、step8

启动Replication,并检查结果。

In Slave:

红标部分都要为Yes

In Master

In Master

In Slave

对比效果如下(左Master,右Slave):

MSS模式请参阅博文:

开启GTIDs技术请参阅:

MM模式请参阅博文:

mysql repalication_mysql replication(主从复制)(一)MS模式相关推荐

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

    MySQL Replication 主从复制全方位解决方案 参考文章: (1)MySQL Replication 主从复制全方位解决方案 (2)https://www.cnblogs.com/clsn ...

  2. mysql克隆master_科学网—Windows下Mysql的Master-Slave Replication主从复制配置 - 刘洋的博文...

    最近做mysql的主从服务器(master-slave)复制,折腾了半天才搞定,记录一下完整的过程:就用局域网数据替代我的操作,比如:slaveip为从服务器ip,192.168.2.3:master ...

  3. MySQL之——MSS主从复制(读写分离)实现

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52746393 前面,在博文<MySQL之--MS主从复制(读写分离)实现&g ...

  4. Maria数据库怎么复制到mysql_maria(mysql)的主从复制

    一.mariadb的基本操作 1.远程连接 mysql -uroot -p -h 127.0.0.1mysql-uroot -p -h 192.168.226.128 2.赋予远程连接的权限 gran ...

  5. 配置MYSQL基于GTID 主从复制详细解析及步骤

    GTID的概念 全局事务标识:global transaction identifiers GTID是一个事务一一对应,并且全局唯一ID GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或主 ...

  6. mysql主从切换gtid不一致_解决mysql使用GTID主从复制错误问题

    解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决 ...

  7. MySQL Group Replication 介绍

    2016-12-12,一个重要的日子,mysql5.7.17 GA版发布,正式推出Group Replication(组复制) 插件,通过这个插件增强了MySQL原有的高可用方案(原有的Replica ...

  8. 1主5从mysql数据库_MySQL主从复制虽好,能完美解决数据库单点问题吗?

    一.单个数据库服务器的缺点 数据库服务器存在单点问题: 数据库服务器资源无法满足增长的读写请求: 高峰时数据库连接数经常超过上限. 二.如何解决单点问题 增加额外的数据库服务器,组建数据库集群: 同一 ...

  9. MySQL 5.5 主从复制异步、半同步以及注意事项详解

    大纲 一.前言 二.Mysql 基础知识 三.Mysql 复制(Replication) 四.Mysql 复制(Replication)类型 五.Mysql 主从复制基本步骤 六.Mysql 主从复制 ...

最新文章

  1. RedisJson 横空出世,性能碾压ES和Mongo!
  2. 车模换几代了,电池什么时候换?
  3. 快讯 | 美国投资公司Avenue Capital Group联合创始人Marc Lasry:比特币价格可能达到40,000美元...
  4. python向dict里添加_Python有条件地向Dict添加键
  5. iOS 覆盖率检测原理与增量代码测试覆盖率工具实现
  6. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
  7. 输入5个整形数据_妙招技法:Excel表格数据录入的5个小技巧
  8. 基于JAVA+Servlet+JSP+MYSQL的学籍管理系统
  9. 站立会议(11月23日
  10. java 认证考试题,2017年Java认证考试试题
  11. matlab 暴雨强度公式,利用MATLAB推导城市暴雨强度公式
  12. 分享一个千万数据的磁力搜索网站 bt书虫 php+mysql+nginx
  13. 快速实现ARM和DSP的通信和协同工作
  14. SuperMap之轨迹
  15. 如何使用文件保险箱加密 Mac 上的启动磁盘?
  16. 神策数据盛永根:微信生态——全数据采集和打通
  17. 基于matlab的通信系统仿真的本科论文,基于MATLAB的TDM通信系统仿真设计.docx
  18. echarts+vue中国地图,点击进入省级地图
  19. ppt纯文字设计的几种玩法(词云、文字云)
  20. echarts柱状图顶部数据显示气泡

热门文章

  1. 入门|机器学习中常用的损失函数你知多少?
  2. DigitalOcean云平台的虚拟机推荐
  3. Javascript正则表达式难点、重点
  4. 利用jQuery获取jsonp
  5. SqlDataReader执行带输出参数存储过程 错误分析
  6. “中序表达式”转“后续表达式”
  7. Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com
  8. 基于Springboot实现就业管理系统
  9. CentOS7下ntp安装步骤
  10. cplex学术版安装