半同步复制: 使用插件

对于从节点,有一部分为同步复制,当主节点复制完从节点后才向客户返回ok,同步超时后自动降级为异步

有一部分为异步复制 这样为了与主节点冗余

基于主从的模式上搭建

半同步复制:

支持多种插件:/usr/lib64/mysql/plugins/

主节点:

加入模块

启动

>SHOW  GLOBAL  STATUS  LIKE  ‘rpl%’ ;    查看同步信息的

从节点:

> SHOW  PLUGINS;  查到这个rpl_semi_sync_slave插件已经启用

关闭同步线程

启动同步线程

四节复制过滤器

仅复制有限一个或几个数据库相关的数据,而非所有;由复制过滤器进行;

有2中实现方式:

  1在主服务器端过滤

主服务器仅向二进制日志中记录有关特定数据库相关的写操作;

可以将仅把要复制的过滤后放在二进制文件中

问题:其它库的time-point recovery将无从实现; 不能完成完整的备份恢复

  配置文件中设定:

  binlog_do_db=     仅向二进制日志中记录指定的库

  binlog_ignore_db=   除了指定库的其他库都写入到二进制日志中

2 在从服务器端过滤

  从服务器的sql线程在从中继日志中执行sql语句时进行过滤

问题:网络IO和磁盘IO;

Replicate_Do_DB=     白名单

Replicate_Ignore_DB=   黑名单

Replicate_Do_Table=    表级别的白名单

Replicate_Ignore_Table=   表级别的黑名单

Replicate_Wild_Do_Table=    通配符白名单  (*    ?)

Replicate_Wild_Ignore_Table=      通配符黑名单

如在从节点查看

修改修改前需要先停止线程

复制的监控和维护

(1) 清理日志:PURGE

PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr };

如: PURGE  MASTER  LOGS  TO  ‘master-log.000004’;  清理4 之前的日志

(2) 复制监控

  状态查看:

  主:

    SHOW MASTER STATUS;

    SHOW BINLOG EVENTS;

SHOW BINARY LOGS;

  从:

    SHOW SLAVE STATUS; 在其中Seconds_Behind_Master 来表示是否落后于主节点

(3) 如何确定主从节点数据是否一致?

通过表的CHECKSUM检查;

使用percona-tools中pt-table-checksum;

(4) 主从数据不一致时的修复方法?

重新复制;

mariadb-半同步复制的更多相关文章

  1. MariaDB半同步复制

    1.主从复制原理 MySQL的二进制日志(binglog)会记录所有对数据库进行更改的操作,也就是说只要是会对数据库产生修改的操作都会被记录到二进制日志中去.记录二进制日志的主要目的有两方面:a.恢复 ...

  2. Mariadb之半同步复制集群配置

    首先我们来了解下在mariadb/mysql数据库主从复制集群中什么是同步,什么是异步,什么是半同步:所谓同步就是指主节点发生写操作事件,它不会立刻返回,而是等到从节点接收到主节点发送过来的写操作事件 ...

  3. MariaDB主从半同步复制详解

    半同步复制(Semisynchronous replication) 介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay lo ...

  4. MySQL/MariaDB数据库的半同步复制

      MySQL/MariaDB数据库的半同步复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL半同步复制概述 1>.MySQL默认的异步复制 默认情况下,M ...

  5. MySQL半同步复制

    从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是 ...

  6. maraidb半同步复制

    半同步复制是在主从同步复制的基础之上,主从同步前面我的博文有介绍 Semisynchronous Replication(半同步复制)则一定程度上保证提交的事务已经传给了至少一个备库 MySQL在加载 ...

  7. MySQL半同步复制的数据一致性探讨微信后台团队实践【转】

    MySQL是一个RDBMS(关系型数据库管理系统),由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.由于其体积小.速度快.拥有成本低,尤其是开放源码这一特点,广受各大企业欢迎,包括 ...

  8. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)

    之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...

  9. MySQL半同步复制搭建

    默认情况下,MySQL 5.5/5.6/5.7和MariaDB 10.0/10.1的复制是异步的,异步复制可以提供最佳性能,主库把binlog日志发送给从库,这一动作就结束了,并不会验证从库是否接收完 ...

  10. mysql数据库备份,主从复制及半同步复制

    1.使用mysqldump备份数据库并通过备份及二进制日志还原数据(备份完后再写入数据,然后再删库) mysqldump -A --single-transaction -F --master-dat ...

随机推荐

  1. zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

    zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程 因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用 ...

  2. top 分析

    Top命令监控某个进程的资源占有情况 下面是各种内存: VIRT:virtual memory usage 1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等     2.假如进程申请10 ...

  3. python学习第3天

    03 int 十进制与二进制之间的转换04 bool 05 str python中凡是用引号引起来的都是字符串 1,存储相对少量的数据. 2,描述信息. 1,bool str int 三者之间的转换 ...

  4. [C][代码实例]交换指向常量的二级指针的位置

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> ...

  5. response.setContentType()的String参数及对应类型

    response.addHeader("Content-Disposition", "attachment;filename="+ filename); res ...

  6. Codeforces 1107G Vasya and Maximum Profit [单调栈]

    洛谷 Codeforces 我竟然能在有生之年踩标算. 思路 首先考虑暴力:枚举左右端点直接计算. 考虑记录\(sum_x=\sum_{i=1}^x c_i\),设选\([l,r]\)时那个奇怪东西的 ...

  7. swift 学习- 25 -- 协议 02

    // 通过扩展添加协议一致性 // 即便无法修改源代码, 依然可以通过扩展 令已有类型遵循并符合协议, 扩展可以为已有类型添加属性, 方法, 下标 以及构造器, 因此可以符合协议中的相应要求 // 注 ...

  8. hibernate入门程序

    快速入门       1. 下载Hibernate框架的开发包       2. 编写数据库和表结构 Create database hibernate_day01; Use hibernate_da ...

  9. rpm命令用法小结

    rpm 是用来管理 Redhat系列的包管理工具: 通过将打包编译好的程序包文件放置在各自的位置上,就完成了安装: rpm   [OPTIONS]   PACHAGE_FILE 1 安装:: -i : ...

  10. 表达式语言 Expression Language

    JSP 2.0最重要的特性之一就是表达式语言 (EL),JSP用户可以用它来访问应用程序数据.由于 受到ECMAScript和XPath表达式语言的启发,EL也设计 成可以轻松地编写免脚本的JSP页面 ...