【mariadb主从架构的工作原理】

主节点写入数据以后,保存到二进制文件中,从节点生成IO线程和sql线程,IO线程请求读取二进制文件;主节点生成的dump线程,将数据发送到中继日志中,sql线程读取中继日志,进行回放,保存在数据库中进行同步。

mariadb主从架构只有一个从节点的时候会生成一个dump thread,主从架构至少三个thread。当从节点多的时候,主节点就要生成多个dump线程,会对主节点的性能造成影响。

因此,在主节点和从节点之间加入引擎blackhole(不可读不可写),只用来存储二进制日志文件(串行记录),来减轻主节点的压力。【解决方案】

在写入二进制文件的时候有一定的延迟,数据大时从节点的同步也必定会有更大的延迟,但是有延迟并不一定代表不好,当有误操作的时候,因为有延迟就可以掐断中间的连接,从而用从节点去恢复数据。

【异步】一个请求信息发出,不需要等待返回值,就可以进行下一步操作。优点:效率高  缺点:不安全

【实时同步】一个请求信息发出,必须有一个返回值,才能执行下一步,优点:安全  缺点:效率低

异步与实时同步是相对的两个概念。

注意:主从架构是异步的。

1.【MHA】主机高可用,预防主节点单点故障的解决方案,部在另外的主机

master high avilable,通过配置文件监控主从架构的,可以监控多个主从架构;当主节点down掉后,MHA会在从节点中选一个代替主节点。

2.【互为主备】主主架构

主从架构互为主备的缺点:当sql语句发生冲突时,可能会造成数据的不一致

优点:解决单点故障

企业中读的多的时候,或者只读的时候,可以用主主。

3.【galera集群】多主

galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性。

一条事务同时提交,预防单点故障

优点:没有延迟,保证数据的一致性(实时同步)

缺点:性能会下降

协议:wsrep

mariadb面试的更多相关文章

  1. 在CentOS6.5上安装MariaDB

    昨天临下班的时候,在我的阿里云上面试装了PostgreSQL,可后来想想,似乎没什么必要使用他.主要是Navicat使用起来加自增key的时候,没有像MySQL那么方便啦. 因为公司用的已经是MySQ ...

  2. MySQL面试必考知识点:揭秘亿级高并发数据库调优与最佳实践法则

    做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟 ...

  3. 30 个 OpenStack 经典面试问题和解答

    现在,大多数公司都试图将它们的 IT 基础设施和电信设施迁移到私有云, 如 OpenStack.如果你打算面试 OpenStack 管理员这个岗位,那么下面列出的这些面试问题可能会帮助你通过面试.-- ...

  4. MariaDB数据库(五)

    1. MariaDB主从架构 1.1 概述 主从架构用来预防数据丢失.主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多 ...

  5. MariaDB数据库(二)

    1. MariaDB数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行,尽量使用范围小的,而不用大的. 1.1  常用的数据类型 整数:int,bit ...

  6. MariaDB数据库(一)

    1.数据库简介 1.1 什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方 ...

  7. MySQL面试问题

    1.MySQL的复制原理以及流程 (1).复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程——在使用start ...

  8. MariaDB集群配置(主从和多主)

    1.mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从 ...

  9. Python面试-DB相关

    昨日回顾: 面试 Python综述 设计哲学 版本变迁及发展 GIL 内存管理及垃圾回收 并发并行 昨日作业一:Python是否存在内存泄露 作业二:过往的项目中有没有出现过性能问题? 作业三:什么是 ...

随机推荐

  1. Dijkstra 优先队列优化

    #include <iostream> #include <queue> #include <vector> using namespace std; ; stru ...

  2. 关于GRPC的讲解

    gRPC服务发现&负载均衡 https://segmentfault.com/a/1190000008672912?utm_source=tag-newest GRPC编程指南 gRPC 介绍 ...

  3. linux 用户和用户组

    groupadd group1 useradd -g group1 user1 passwd user1 groups 查看当前用户的用户组 finger和id命令可以查看用户信息

  4. vue项目和django项目交互补充,drf介绍,restful规范

    目录 一.vue项目与django项目的交互 二.drf(Django-restframework) 1. drf主要知识点 2. drf框架安装 3. web接口(WEB API) 4. restf ...

  5. Python模拟浏览器多窗口切换

    # 模拟浏览器多窗口切换 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的Chro ...

  6. 富文本编辑器粘贴复制Word

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  7. 如何查询Office版本号

     造冰箱的大熊猫@cnblogs 2019/1/28 如何查询当前所用Microsoft Office的版本信息? 以Word 2007为例,点击程序左上角的Office图标,在弹出的菜单中选择“Wo ...

  8. c++两数组合并算法

    #include <iostream> #define MAXSIZE 100 using namespace std; int combine(int a[],int b[],int c ...

  9. Node.js安装及环境配置

     1.Node.js简介 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js ...

  10. Codeforces 474D Flowers(DP)

    题目链接 非常简单的一道dp题,通过O(n)的预处理来使查询变为O(1). 主要的坑在于取模后的dp数组的前缀和再相减可能得到负数,导致无法得到某一区间和的取模. 解决方法:(a-b)%mo==(a% ...