MariaDB(mysql)之半同步复制及复制过滤器的使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、半同步复制

1、什么是半同步复制

   当主服务器发起任何写操作时,这个写操作必须写到二进制日志文件中,并通知给从服务器,从服务器接下来并且在本地完成数据修改,而后反馈同步成功给主服务器,然后主服务器才返回OK状态;像这样的,只有等从服务器返回状态结果给主服务器,主服务器再返回状态,这叫同步,而mysql其实默认是工作于异步模式的

   在主从架构中,可以有一主多从,而主服务器只等待其中最快的一台从服务器响应,而不用等待所有的从服务器响应,所以叫半同步

2、实现方法

   早期mysql是不支持半同步复制的,后利益于goolge为mysql贡献了一个插件semisync_master.so和semisync_slave.so,因此,要想实现半同步复制,我们需先安装这两个插件

wKioL1NL8AmAunRuAAA6CgzyaUw495.png

3、半同步复制的实现

   1)在主服务器上安装半同步插件并设置

wKioL1NL8PPgpPOtAACKt_RdSso320.png

   2)查看主服务器上的半同步功能是否开户成功

wKioL1NL8TPRlGARAAA1ySXkUpo567.png

   3)在从服务器上安装半同步插件

wKiom1NL8Yni_jiNAABlHEVMeE8681.png

   4)查看从服务器的半同步功能是否启动成功

wKioL1NL8X-TU191AAA4xq1BD30018.png

   5)在主服务器上验证半同步复制是否生效,如果出现下面那项,则说明成功

wKioL1NL8bySUNwvAABLPb2JsLk275.png

二、复制过滤器的使用

1、关于过滤的一些选项

   1)master,主服务器

   其中主服务器只可过滤到库级别,如果想要过滤表级别的,则应该在从服务器上设置

   要想使设置永久生效,就写入配置文件

   ①、binlog_do_db=

       仅复制指定库

   ②、binlog_ignore_db=

       忽略指定库的复制

   2)slave,从服务器

   ①、replicate_do_db=

       仅复制指定库

   ②、replicate_ignore_db=

       忽略指定库的复制

   ③、replicate_do_table=db_name.table_name

       基于表做白名单

   ④、replicate_ignore_table=

       基于表做黑名单

   ⑤、基于通配做过滤

       replicate_wild_do_table=

       replicate_wild_ignore_table=

2、复制过滤器的使用

   1)基于库做过滤

   (1)在主服务器上做school过滤

wKioL1NL9pOAsM_IAABJUlrcUcg207.png

   (2)在主服务器上创建school库

wKioL1NL9xjTkw2uAAA3IEJlQxA136.png

   (3)在从服务器上做验证,刚才在主服务器上过滤的那个库没有同步到从服务器上来

wKioL1NL9z3x5N1YAABNuMoMwb0025.png

   2)基于表做过滤

   (1)在从服务器上做hlbrc库的students表过滤

wKiom1NL99iy1Ns5AABlABgeaII547.png

   (2)在从服务器查看从服务器中的hlbrc库中的students表中的信息

wKioL1NL-FXS_3BVAAAwAuEkSS4236.png

   (3)主服务器上也有一个hlbrc库,向其students表中插入一个数据

wKiom1NL-RSiycslAABFV5v5eqI236.png

   (4)来到从服务器验证,刚才在主服务器插入的数据没有同步过来,说明在从服务器上做基于表过滤成功

wKioL1NL-RfTJbthAABdj19f8iQ442.png

   (5)测试hlbrc中的其它表是否可以同步到从服务器上,先在主服务器上创造一张students表

wKiom1NL-XyR6ajJAABfjKxBWgc964.png

   (6)到从服务器上测试,hlbrc库中的其它表可同步到从服务器上,过滤只应用到的确实是hlbrc库中的students表

wKioL1NL-aST_QUxAAAqs7Tt6lE533.png










本文转自 nmshuishui 51CTO博客,原文链接:http://blog.51cto.com/nmshuishui/1395615,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
面试官:说一下MySQL主从复制的原理?
面试官:说一下MySQL主从复制的原理?
153 0
面试官:说一下MySQL主从复制的原理?
|
4月前
|
SQL 关系型数据库 MySQL
MySQL中主从复制的原理和配置命令
要原因包括提高性能、实现高可用性、数据备份和灾难恢复。了解两大线程( I/O 和 SQL)I/O线程:目的:I/O线程主要负责与MySQL服务器之外的其他MySQL服务器进行通信,以便复制(replication)数据。 功能: 当一个MySQL服务器作为主服务器(master)时,I/O线程会将变更日志(binary log)中的事件传输给从服务器(slave)。从服务器上的I/O线程负责接收主服务器的二进制日志,并将这些事件写入本地的中继日志(relay log)。 配置: 在MySQL配置文件中,你可以通过配置参数如和来启用二进制日志和指定服务器ID。log-bin server
122 1
MySQL中主从复制的原理和配置命令
|
21天前
|
SQL 关系型数据库 MySQL
说一下MySQL主从复制的原理?
【8月更文挑战第24天】说一下MySQL主从复制的原理?
46 0
|
29天前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
82 8
|
2月前
|
缓存 关系型数据库 MySQL
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
108 19
|
1月前
|
SQL canal 关系型数据库
(二十四)全解MySQL之主从篇:死磕主从复制中数据同步原理与优化
兜兜转转,经过《全解MySQL专栏》前面二十多篇的内容讲解后,基本对MySQL单机模式下的各方面进阶知识做了详细阐述,同时在前面的《分库分表概念篇》、《分库分表隐患篇》两章中也首次提到了数据库的一些高可用方案,但前两章大多属于方法论,并未涵盖真正的实操过程。接下来的内容,会以目前这章作为分割点,开启MySQL高可用方案的落地实践分享的新章程!
576 1
|
30天前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
116 0
|
30天前
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
17 0
|
1月前
|
关系型数据库 MySQL 数据库连接
FreeSWITCH通过mod_mariadb原生连接MySQL
FreeSWITCH通过mod_mariadb原生连接MySQL
122 0
|
4月前
|
关系型数据库 MySQL Linux
【mysql】MySql主从复制,从原理到实践!
【mysql】MySql主从复制,从原理到实践!
92 0