Mysql集群讲解(一)

主从复制概述

在实际生产中,数据的重要性不言而喻,提供安全可靠的数据保障是技术与运维部门的职责所在;

如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者奔溃,那么服务就不可用了,再比如这台服务器的硬盘坏了,那么整个数据库的数据就全部丢失了,这是重大的安全事故;

为了避免服务的不可用以及保障数据的安全可靠性,我们至少需要部署两台或两台以上服务器来存储数据库数据,也就是我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障了,其他服务器依然可以继续提供服务;

MySQL提供了主从复制功能以提高服务的可用性与数据的安全可靠性;

主从复制是指服务器分为主服务器和从服务器,主服务器负责读和写,从服务器只负责读,主从复制也叫 master/slave,master是主,slave是从;

主从复制架构:

主从复制原理:

当 master 主服务器上的数据发生改变时,则将其改变写入二进制日志文件中;

salve 从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变;

如果探测到 master 主服务器的二进制日志发生了改变,则开始一个 I/O Thread 请求 master 二进制事件;

同时 master 主服务器为每个 I/O Thread 启动一个dump  Thread,用于向其发送二进制事件;

slave 从服务器将接收到的二进制事件保存至自己本地的中继日志文件中;

salve 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致;

最后 I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒;

Mysql主从复制原理图:

更通俗地说:mysql要做到主从复制,就是A服务把自己所做的增删改查的操作全都记录在日志中,B数据库就根据这份日志上面的操作在自己身上再操作一遍,这样就实现了主从复制;

下一篇进行:环境搭建

mysql集群参数讲解_Mysql集群讲解(一)相关推荐

  1. mysql 集群与主从_Mysql集群和主从

    1.Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能. 需要用到mysql cluster安装包,在集群中的每一个机器上安装. 有三个关键概 ...

  2. mysql 8 配置参数优化_MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  3. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  4. mysql 集群 增加服务器_MYSQL集群服务配置

    MYSQL集群服务配置 篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但 ...

  5. mysql集群重启失败_Mysql集群重启失败

    问题描述 今天遇到一个问题,openstack集群的3个控制节点内存故障后,同事重启了三个机器,启动后,三个节点上的mysqld(其实就是mariadb)服务都起不来了 根据排查日志/var/log/ ...

  6. mysql 5.7参数配置_MySQL 5.7-新增配置参数

    全局动态变量,单位微妙,默认0,范围:0-1000000(1秒). 表示binlog提交后等待延迟多少时间再同步到磁盘,默认0,不延迟.设置延迟可以让多个事务在用一时刻提交,提高binlog组提交的并 ...

  7. mysql存储过参数拼接_mysql 存储过程动态拼接sql并执行赋值

    CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定义变量 DECLARE _num FL ...

  8. mysql存储过程 带参数例子_MySQL带参数的存储过程小例子

    存储过程P_GET_CLASS_NAME是根据输入的班级号判断班级名称,存储过程P_INSERT_STUDENT是接收输入的学生信息,最终将信息插入学生 存储过程P_GET_CLASS_NAME是根据 ...

  9. mysql存储过程输入参数拆分_mysql 存储过程字符分割

    s_str varchar(2000), s_split varchar(2) begin /*split分割字符串并放入临时表*/ declare lenstr int ; declare resu ...

最新文章

  1. 用python朗读字母-使用python编写一个语音朗读闹钟功能的示例代码
  2. 学校测试-2015-2-27
  3. Grafana分析Nginx日志
  4. mongodb----集合而定多种查询方式
  5. htc816t Android go,HTC D816t(Desire D816t 移动4G)一键刷机图文教程详解
  6. 解决df -h卡死问题
  7. php 新建 mysql用户_php为什么选mysql作为数据库? Mysql 创建用户方法
  8. Docker-07-docker compose
  9. 26个常用的方法优化 ASP.NET 的性能
  10. sql注入------基于时间延迟benchmark函数注入脚本
  11. 《软件测试》实验一:测试入门
  12. Process finished with exit code 0 报错解决方法
  13. Vue File Manager – PHP即时存储、共享和获取文件基于VUE v2.2.0.2
  14. idea禁用双击shift、double shift 快捷键
  15. ios企业证书过期更新及推送证书更新(推荐)
  16. 【Audio】声临其境——杜比音效介绍
  17. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学研究生计算机科学专业介绍
  18. RT-Thread Smart上手指南~
  19. 虚拟内存,页表,快表,多级页表,倒排页表
  20. biobakery流程之有参宏基因组分析

热门文章

  1. hibernateTemplate update 修改指定字段
  2. JavaApplet 绘制火柴棒和轮播图片
  3. 高考英语口试计算机系,高考英语口试材料.docx
  4. android cursor相关的性能问题,Android Mms之:深入理解对话列表管理
  5. 小记一次考题:生成包含大写字母、小写字母、数字的8位密码
  6. SQLServer存储过程编写规则
  7. MobX基础 ----- 类的静态属性和装饰器
  8. Centos7上卸载openJdk安装,安装自己的JDK1.8
  9. 在Ubuntu1404的64bit版本下安装caffe
  10. 什么是证书透明度(Certificate Transparency)?