Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL:深入理解复制中的忽略规则

MySQL:深入理解复制中的忽略规则

作者头像
运维开发王义杰
发布于 2023-10-23 12:28:00
发布于 2023-10-23 12:28:00
69600
代码可运行
举报
运行总次数:0
代码可运行

MySQL复制是一个非常强大的特性,它允许我们将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个其他MySQL数据库服务器(从服务器)。但在某些场景下,我们可能不希望所有的数据都被复制。例如,可能有些数据库或表我们想要在主服务器上保留,而不想让它们被复制到从服务器。MySQL提供了几个配置选项,可以帮助我们实现这个目的。这些选项包括Replicate_Ignore_DBReplicate_Ignore_TableReplicate_Wild_Ignore_TableReplicate_Ignore_Server_Ids。在本文中,我们将详细介绍这些配置选项的作用和如何使用它们。

1. Replicate_Ignore_DB

Replicate_Ignore_DB选项允许我们指定一些数据库,这些数据库的数据将不会被复制到从服务器。这个选项的值是一个以逗号分隔的数据库名列表。

例如,假设我们有一个名为logs的数据库,我们不想让它的数据被复制。我们可以这样配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STOP REPLICA;
CHANGE REPLICATION SOURCE TO SOURCE_IGNORE_DB = ('logs');
START REPLICA;

2. Replicate_Ignore_Table

Replicate_Ignore_Table选项允许我们指定一些表,这些表的数据将不会被复制到从服务器。它的值是一个以逗号分隔的完全限定表名列表(即数据库名.表名)。

例如,假设我们有一个名为app.users_backup的表,我们不想让它的数据被复制。我们可以这样配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STOP REPLICA;
CHANGE REPLICATION SOURCE TO SOURCE_IGNORE_TABLE = ('app.users_backup');
START REPLICA;

3. Replicate_Wild_Ignore_Table

Replicate_Wild_Ignore_Table选项提供了一个更为灵活的方式来指定不应该被复制的表。它的值是一个以逗号分隔的通配符表达式列表。

例如,假设我们想要忽略所有以_backup结尾的表,我们可以这样配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STOP REPLICA;
CHANGE REPLICATION SOURCE TO SOURCE_WILD_IGNORE_TABLE = ('%.%_backup');
START REPLICA;

4. Replicate_Ignore_Server_Ids

Replicate_Ignore_Server_Ids选项允许我们指定一些服务器ID,从这些服务器上的数据变更将不会被复制。

例如,假设我们有一个服务器集群,但我们不想复制服务器ID为3和4的服务器上的数据变更。我们可以这样配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STOP REPLICA;
CHANGE REPLICATION SOURCE TO SOURCE_IGNORE_SERVER_IDS = (3,4);
START REPLICA;

5. 总结

通过正确配置和应用上述的复制忽略选项,我们可以更好地控制MySQL复制过程中的数据流,从而满足我们的特定需求。这些选项提供了强大而灵活的方式来定制我们的复制策略,帮助我们在保持数据一致性的同时,实现更为精细化的数据管理

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 8.4 配置复制
参考文档:https://dev.mysql.com/doc/refman/8.4/en/replication-configuration.html
OrangeDBM
2025/04/23
910
MySQL 8.4 配置复制
MySQL多源复制你了解多少?
MySQL多源复制使副本能够并行接收来自多个数据源的事务。在多源复制拓扑中,副本应该为每个数据源创建一个复制通道。在多源复制拓扑中的一个从服务器上最多可以创建256个通道。每个复制通道必须具有唯一的(非空)名称;
SEian.G
2021/04/15
1.2K0
mysql 复制
MySQL的复制功能是构建基于MySQL的大规模、高性能应用的基础。复制功能不仅有利于构建高性能的应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。
魔王卷子
2019/06/02
2.5K0
MySQL 8 复制(三)——延迟复制与部分复制
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/90642712
用户1148526
2019/07/02
3.9K0
MySQL 8 复制(三)——延迟复制与部分复制
MySQL主从复制与相关问题解决方法
所有的关系型数据库都存在一个通病性能差,在企业中如果用户量特别打,将所有的数据都存放在一台服务器上,其性能时远远达不到要求的。所以需要使用一些手段来解决其性能的问题。 提升性能的方式有向上扩展以及向外扩展 向上扩展(Scale Up):使用更新更好的硬件,但硬件在怎么更新也有其性能的极限。盲目的向上扩展无法结局根本的问题 向外扩展(Scale Out):就是使用多台机器分摊压力来提供服务
星哥玩云
2022/08/18
8820
MySQL多源复制之复制过滤
在上一篇文章《深入了解MySQL多源复制》中,介绍了MySQL多源复制的相关内容,本文将继续讲解MySQL多源复制,主要内容是过滤复制以及在已有复制过滤配置中新增复制对象;
SEian.G
2021/04/15
2.3K0
在线修改主从复制选项
MySQL最常用的架构就是主从复制了,其实主从复制有很多选项,特别是在从库端,我们可以设置复制过滤,比如说忽略某张表或某个库。这些过滤选项都是可以在线修改而不用重启的。原来对这块了解不多,最近看了下相关资料,个人觉得这个功能还是很方便的,本篇文章会将这块内容分享给大家。
MySQL技术
2020/02/10
8660
使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤
业务方有个需求,需要将node1上的employees库的departments 、dept_manager 这2张表同步到 node2 的 hellodb 库下面。
保持热爱奔赴山海
2019/09/18
2K0
MySQL主从报错解决:Table ‘mysql.gtid_slave_pos’ doesn’t exist
给内部一个数据库做异地热备,热备部分采用了 MariaDB 的 galera 集群模式。然后挑选其中一台作为 Slave 和深圳主集群做主从同步。
张戈
2018/10/10
4.4K0
MySQL复制过滤器配置方法
【注】在从库配置的优势在于,主库设置replicate_do_db或replicate_ignore_db后,MySQL执行sql检查的默认是当前数据库,所以在跨库更新语句的时候,SQL在slave上会被忽略,如:
Power
2025/03/02
930
解决方案 | MySQL DBA主从复制出错怎么办?
1. 如果主从复制时发生了主键冲突,从而阻止了主从复制,可以使用sql_slave_skip_counter这个变量来忽略错误将其排除
数据和云
2019/05/17
8370
MySQL动态修改复制过滤器
今天是周五,最近睡眠不好,一整天都浑浑噩噩的,状态不是很好,周五了,准备早点回家,早点休息了,今天的内容写写线上的一个案例,主要是关于主从复制过程中的replicate-gnore_table参数的,废话不多说,开始写。
AsiaYe
2019/11/06
9080
MySQL5.7配置基于GTID的复制及GTID回退到传统模式的方法
mysqldump -uroot -proot -q--single-transaction -A  > /root/all.sql
保持热爱奔赴山海
2019/09/18
7570
MySQL5.7配置基于GTID的复制及GTID回退到传统模式的方法
将 MariaDB 基于位置的复制转换为 GTID 复制
在我们的例子中,Relay_Master_Log_File 的值为 bin_log.000002,Exec_Master_Log_Pos 为 1206
贺春旸的技术博客
2025/03/12
1070
MySQL基于GTID主从复制的杂谈
先来回顾一下MySQL的二进制知识点。基于Row格式的日志可以避免MySQL主从复制中出现的主从不一致问题。在一个sql语句修改了1000条数据的情况下,基于段的日志格式只会记录这个sql语句。而基于row的日志格式会有1000条记录来记录每一行的数据修改。
用户2032165
2018/12/10
1.6K0
MySQL基于GTID主从复制的杂谈
传统复制在线变更为GTID复制
1.在所有数据库上执行SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;
wangwei-dba
2021/06/17
3640
mysql主从复制配置与问题解决
原理:MySQL使用3个线程来执行复制功能(其中1个在【主服务器】上,另两个在【从服务器】上)       当【从服务器】发出START SLAVE时,【从服务器】创建一个I/O线程,以连接【主服务器】并让它发送记录在其二进制日志中的语句。     【主服务器】创建一个线程将二进制日志中的内容发送到【从服务器】。该线程可以识别为【主服务器】上SHOW PROCESSLIST的输出中的Binlog Dump线程。
洋仔聊编程
2019/01/15
7150
MySQL基于GTID的replication
IP地址:10.0.0.201 端口:3306 (MySQL的Master) IP地址:10.0.0.201 端口:3307 (MySQL的Slave)
星哥玩云
2022/08/16
5080
Mysql5.7主从复制配置
准备两台服务器,一主一从。 IP 服务ID 角色 192.168.1.110 110 master 192.168.1.111 111 slave Mysql主从软件版本尽量保持一致 配置主数据 修改配置文件 > vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data #要给从库同步的库 binlog-do-db=rumenz #不给从机同步的库(多个写多行) binlog-ignore-db=my
入门笔记
2022/06/02
3140
Mysql5.7主从复制配置
MySQL数据库的主从同步配置
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
6.4K0
推荐阅读
相关推荐
MySQL 8.4 配置复制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验