返回顶部
首页 > 资讯 > 数据库 >MySQL过滤复制
  • 349
分享到

MySQL过滤复制

摘要

目录一、过滤复制什么是过滤复制1.过滤复制的方式2.配置过滤复制3.配置过滤多个库4.过滤复制配置在主库5.过滤复制总结 一、过滤复制 什么是过滤复制 # 出现原因 让从节点仅仅复制指定的数据库,或指定数据库的指定数据表。主服务器有10个数


	MySQL过滤复制
[数据库教程]

目录

  • 一、过滤复制
    • 什么是过滤复制
    • 1.过滤复制的方式
    • 2.配置过滤复制
    • 3.配置过滤多个库
    • 4.过滤复制配置在主库
    • 5.过滤复制总结

一、过滤复制

什么是过滤复制

# 出现原因
让从节点仅仅复制指定的数据库,或指定数据库的指定数据表。主服务器有10个数据库,而从节点只需要同步其中的一两个数据库。这个时候就需要复制过滤。
复制过滤器可以在主节点中实现,也可以在从节点中实现。

# 过滤复制选择:
主节点: 
在主节点的二进制事件日志中仅记录与指定数据库(数据表)相关的事件日志,但是主节点的二进制日志不完整,没有记录所有对主节点的修改操作。(不推荐) 
 如果要使用该方式,则在主节点的配置文件中添加如下参数:


binlog_do_db=”XXX,XXX,XXX”;     #数据库白名单列表
binlog_inGore_db=”XXX,XXX,XXX”; #数据库黑名单列表。
但这两个配置参数不要同时使用。

从节点: 
从服务器的 sql Thread在Replay中继日志中的事件时,仅读取于特定数据库(数据表)相关的事件,并应用于本地。(但是浪费I/O ,浪费带宽)推荐使用 
从节点复制过滤相关设置项:


replicate_do_db =”“;       #复制的白名单
replicate_ingore_db =”“;   #复制的黑名单
replicate_do_table=”“;
relicate_ingore_table=”“;
replicate_wild_do_table=”“;  #更高级别的应用,通配符,应用到哪一类表的。

1.过滤复制的方式

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| Mysql-bin.000002 |      305 |   白名单      |    黑名单        |                   |
+------------------+----------+--------------+------------------+-------------------+

1)白名单

#从库
replicate-do-db=test
replicate-do-table=test.t1
replicate-wild-do-table=test.t*
#主库
binlog-do-db=test
binlog-do-table=test.t1
binlog-wild-do-table=test.t*

2)黑名单

#从库
replicate-ignore-db=test
replicate-ignore-table=test.t1
replicate-wild-ignore-table=test.t*
#主库
binlog-ignore-db=test
binlog-ignore-table=test.t1
binlog-wild-ignore-table=test.t*

2.配置过滤复制

1)主库创建两个库

mysql> create database wzry;
Query OK, 1 row affected (1.00 sec)

mysql> create database lol;
Query OK, 1 row affected (0.00 sec)

2)第一台从库配置

[[email protected] data]# vim /etc/my.cnf
[mysqld]
server_id=2
replicate-do-db=wzry

[[email protected] data]# systemctl restart mysqld

#查看主从状态
mysql> show slave statusG
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: wzry

3)配置第二台从库

[[email protected] ~]# vim /etc/my.cnf
[mysqld]
server_id=2
replicate-do-db=lol

[[email protected] ~]# systemctl restart mysqld

#查看主从状态
mysql> show slave statusG
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: lol

4)验证过滤复制

#1.主库操作
mysql> use wzry
Database changed

mysql> create table cikexintiao(id int);
Query OK, 0 rows affected (0.26 sec)

mysql> use lol
Database changed

mysql> create table fuleierzhuode(id int);
Query OK, 0 rows affected (0.01 sec)

#第一台从库查看
mysql> use wzry
Database changed

mysql> show tables;
+----------------+
| Tables_in_wzry |
+----------------+
| cikexintiao    |
+----------------+
1 row in set (0.00 sec)

mysql> use lol
Database changed

mysql> show tables;
Empty set (0.00 sec)

#第二台从库查看
mysql> use wzry
Database changed

mysql> show tables;
Empty set (0.00 sec)

mysql> use lol
Database changed

mysql> show tables;
+---------------+
| Tables_in_lol |
+---------------+
| fuleierzhuode |
+---------------+
1 row in set (0.00 sec)

3.配置过滤多个库

1)方法一:

[[email protected] data]# vim /etc/my.cnf
[mysqld]
server_id=2
replicate-do-db=wzry,lol

2)方法二:

[[email protected] data]# vim /etc/my.cnf
[mysqld]
server_id=2
replicate-do-db=wzry
replicate-do-db=lol

4.过滤复制配置在主库

1.配置
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
server_id=1
log_bin=/usr/local/mysql/data/mysql-bin
binlog-do-db=wzry

2.查看主库状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      120 | wzry         |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

3.在主库的wzry库和lol库添加数据

4.从库查看数据,只能看到wzry库的数据

5.过滤复制总结

#配置在从库时
1.配置白名单:IO线程将主库的数据拿到了relay-log,但是sql线程只执行白名单配置的数据库相关语句
1.配置黑名单:IO线程将主库的数据拿到了relay-log,但是sql线程只不执行黑名单配置的数据库相关语句

#配置在主库时
1.配置白名单:binlog只记录白名单相关的sql语句
2.配置黑名单:binlog只不记录黑名单相关的sql语句

MySQL过滤复制

原文地址:https://www.cnblogs.com/tcy1/p/13378014.html

您可能感兴趣的文档:

--结束END--

本文标题: MySQL过滤复制

本文链接: https://lsjlt.com/news/7488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL过滤复制
    目录一、过滤复制什么是过滤复制1.过滤复制的方式2.配置过滤复制3.配置过滤多个库4.过滤复制配置在主库5.过滤复制总结 一、过滤复制 什么是过滤复制 # 出现原因 让从节点仅仅复制指定的数据库,或指定数据库的指定数据表。主服务器有10个数...
    99+
    2021-10-16
    MySQL过滤复制 数据库入门 数据库基础教程 数据库 mysql
  • mysql过滤复制思路详解
    目录mysql过滤复制主库上实现从库上实现一些问题mysql过滤复制 两种思路: 主库的binlog上实现(不推荐,尽量保证主库binlog完整) 从库的sql线...
    99+
    2024-04-02
  • mysql 如何动态修改复制过滤器
    MySQL动态修改复制过滤器     说说今天遇到的问题吧,今天在处理一个业务方的需求,比较变态,我大概描述一下: 线上的阿里云rds上面有个游戏的日志库,里面的表都是日表的形式,数据量...
    99+
    2022-05-12
    MySQL 修改复制过滤器 MySQL 复制过滤器
  • MySQL 5.7 复制的过滤参数有哪些
    这篇文章将为大家详细讲解有关MySQL 5.7 复制的过滤参数有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 1、库级过滤...
    99+
    2024-04-02
  • Mariadb之复制过滤器 - Linux
    mariadb的主从复制集群,默认情况下是把主库上的所有库进行复制,只要在主库上产生写操作,从库基于主库的二进制日志做重放,从而实现把主库的上的库表复制到从库;复制过滤器指的是我们仅复制一个或几个数据库相关的数据,而非所...
    99+
    2014-09-12
    Mariadb之复制过滤器 - Linux
  • MySQL 过滤重复数据
    方法1:加关键字 DISTINCT 在mysql中,可以利用“SELECT”语句和“DISTINCT”关键字来进行去重查询,过滤掉重复的数据,语法“SELECT DISTINCT 字段名 ...
    99+
    2023-09-09
    mysql 数据库 sql kubernetes 面试
  • mysql过滤重复数据-select
    一、mysql过滤重复数据-distinct关键字  select distinct type from table;   注: distinct 只能在select 语句中使用 如使用distinct对多个关键字...
    99+
    2023-09-06
    mysql 数据库 sql
  • MySQL怎么过滤重复数据
    本篇内容主要讲解“MySQL怎么过滤重复数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么过滤重复数据”吧!方法1:加关键字 DISTINCT在mysql中,可以利用“SELEC&...
    99+
    2023-07-06
  • 在线更改复制过滤选项的方法
    如何在线更改复制过滤选项?针对这个问题,今天小编总结这篇有关修改复制过滤的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。前言: MySQL最常用的架构就是主从复制了,其实主从复制...
    99+
    2024-04-02
  • mysql主从复制跳过复制错误
    跳过复制错误mysql因为binlog机制问题,有些时候会出现从库重放sql执行失败的情况,特别是旧的STATEMENT模式最容易出现这种情况(因为函数和存储过程等原因),这也是为什么强调使用mixed和r...
    99+
    2024-04-02
  • sql如何过滤重复
    sql 中过滤重复记录的方法包括:使用 distinct 关键字去除重复值。使用 group by 子句分组结果并返回每组的第一行。使用 count() 函数查找出现多次的值并进一步过滤...
    99+
    2024-06-06
  • SpringSecurity的过滤器链机制
    目录前言请求执行链路推荐阅读 前言 在“码农小胖哥”的文章中提到一个关键的过滤器链SecurityFilterChain,当一个请求 HttpServletR...
    99+
    2022-11-13
    Spring Security过滤器链 Spring Security过滤器链机制
  • MySQL GTID复制中断修复过程
    slave中出现错误: 2020-04-09T07:40:18.719203Z 16 [ERROR] Slave SQL for channel '': Could not execute ...
    99+
    2024-04-02
  • linux如何过滤控制字符
    这篇文章主要介绍了linux如何过滤控制字符的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux如何过滤控制字符文章都会有所收获,下面我们一起来看看吧。linux中可以过滤控制字符的命令是“col”。col...
    99+
    2023-07-04
  • 如何使用replicate-rewrite-db实现复制映射以及Replicate_Wild_Do_Table实现复制过滤
    本篇文章给大家分享的是有关如何使用replicate-rewrite-db实现复制映射以及Replicate_Wild_Do_Table实现复制过滤,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇...
    99+
    2024-04-02
  • MySQL过滤重复数据的两种方法示例
    目录方法1:加关键字 DISTINCT方法2:用GROUP By 分组最后方法1:加关键字 DISTINCT 在mysql中,可以利用“SELECT”...
    99+
    2023-05-16
    mysql查询过滤重复数据 mysql如何去除重复数据 数据库过滤重复语句
  • mysql主从复制配置过程
    主库配置 1. 配置mysql vim /etc/my.cn # 在文件中增加以下内容 server-id=1 # 保证server id唯一 log-bin = /var/lib/mysql/mysql-bin...
    99+
    2022-05-23
    mysql 主从复制 mysql 主从复制配置
  • Mysql主从复制搭建过程
    这篇文章主要讲解了“Mysql主从复制搭建过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql主从复制搭建过程”吧! 一、相关概念mysql主从复...
    99+
    2024-04-02
  • MySQL主主复制(双主复制)配置过程介绍
    一、修改配置文件my.cnf 服务器A(172.16.16.70)配置如下 server_id = 70 socket = /tmp/mysql.sock innodb_buffer_pool_size =...
    99+
    2024-04-02
  • Mysql 的join on上的过滤和在where上过滤的区别
    测试如下: (1)创建两张表,并插入数据,sql语句如下: a表: CREATE TABLE `a` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50...
    99+
    2016-11-01
    Mysql 的join on上的过滤和在where上过滤的区别
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作