mysql过滤器_MYSQL复制过滤器

vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]

binlog-do-db=db1      #白名单模式,仅允许主服务器上生成db1的二进制日志,此选项不支持一行指定多个参数,需要每个参数写一行

binlog-do-db=db2

重启服务

systemctl restart mariadb.service

主服务器上删除了非db1和db2的一些数据库,发现这些二进制日志已无法同步到从节点

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| bdb |

| db2 |

| db3 |

| db5 |

| db6 |

| hellodb |

| information_schema |

| mysql |

| performance_schema |

+--------------------+

9 rows in set (0.001 sec)

MariaDB [(none)]> create database db1;

Query OK, 1 row affected (3.002 sec)

MariaDB [(none)]>

MariaDB [(none)]>

MariaDB [(none)]>

MariaDB [(none)]> drop database bdb;

Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> drop database db5;

Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> drop database db6;

Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| db1 |

| db2 |

| db3 |

| hellodb |

| information_schema |

| mysql |

| performance_schema |

+--------------------+

7 rows in set (0.000 sec)

从节点查看数据库,发现数据库并未改变,且slave正常

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| bdb |

| db1 |

| db2 |

| db3 |

| db5 |

| db6 |

| hellodb |

| information_schema |

| mysql |

| performance_schema |

+--------------------+

10 rows in set (0.000 sec)

MariaDB [(none)]> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.0.0.211

Master_User: repluser

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mariadb-bin.000004

Read_Master_Log_Pos: 487

Relay_Log_File: mariadb-relay-bin.000006

Relay_Log_Pos: 788

Relay_Master_Log_File: mariadb-bin.000004

Slave_IO_Running: Yes                                     #此处显示状态正常

Slave_SQL_Running: Yes                                 #此处显示状态正常

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 487

Relay_Log_Space: 1549

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 211

Master_SSL_Crl:

Master_SSL_Crlpath:

Using_Gtid: No

Gtid_IO_Pos:

Replicate_Do_Domain_Ids:

Replicate_Ignore_Domain_Ids:

Parallel_Mode: conservative

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

Slave_DDL_Groups: 11

Slave_Non_Transactional_Groups: 0

Slave_Transactional_Groups: 0

1 row in set (0.000 sec)

ERROR: No query specified

主服务器上修改db1数据库,增加表格

MariaDB [db1]> create table jinlei (id int,name varchar(20));

Query OK, 0 rows affected (0.004 sec)

从服务器上查看可以同步该库的表

MariaDB [(none)]> use db1

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [db1]> show tables;

+---------------+

| Tables_in_db1 |

+---------------+

| jinlei |

+---------------+

1 row in set (0.000 sec)

主服务器在db3数据库内添加表

MariaDB [db1]> use db3

Database changed

MariaDB [db3]> create table jinlei (id int,name varchar(20));

Query OK, 0 rows affected (0.003 sec)

从服务器无法同步db3数据库内的表

MariaDB [db1]> use db3

Database changed

MariaDB [db3]> show tables;

Empty set (0.000 sec)

总结:在主服务器上配置文件中仅允许记录db1、db2的二进制文件后,主服务器上修改其他的数据库则无法同步到从服务器,只能在db1或db2上修改数据库才能同步到从服务器。

方法2服务器选项:从服务器SQL_THREAD在relay log中的事件时,仅读取与特定数据库或特定表相关的事件并应用于本地;

因为二进制日志是在从服务器本地被过滤,二进制日志还是通过主服务器发送过来了,所以此方法会造成网络及磁盘I/O的浪费

从服务器上修改系统变量

MariaDB [db3]> stop slave;

Query OK, 0 rows affected (0.002 sec)

MariaDB [db3]> set global replicate_do_db=‘db1,db2‘;

Query OK, 0 rows affected (0.000 sec)

主服务器上在db2中增加一个表

MariaDB [(none)]> use db2

Database changed

MariaDB [db2]> create table jiang (id int,name char(10));

Query OK, 0 rows affected (0.003 sec)

从服务器上db2内可以同步该表

MariaDB [(none)]> use db2;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [db2]> show tables;

+---------------+

| Tables_in_db2 |

+---------------+

| jiang |

+---------------+

1 row in set (0.000 sec)

主服务器在db3中增加一张表

MariaDB [db2]> use db3

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [db3]> create table liang (id int,name char(10));

Query OK, 0 rows affected (0.003 sec)

从服务器上在db3中无法同步该表

MariaDB [db3]> show tables;

+---------------+

| Tables_in_db3 |

+---------------+

| liang |

| mao |

| zheng |

+---------------+

3 rows in set (0.000 sec)

总结:该方法相对于方法一更加的灵活。但这两种方法都不支持主服务器跨库操作。

2.

MYSQL复制过滤器

标签:tables   变量   参数   har   cond   replica   host   thread   off

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/jinlei92131/p/13588971.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享

[背景简介]MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。mysql虽然功能未必很强大,但因为它的开源、广泛传播&#xf…

junit编写测试代码_编写数据访问代码测试-不测试框架

junit编写测试代码当我们向数据访问代码编写测试时,是否应该测试其公共API的每种方法? 一开始听起来很自然。 毕竟,如果我们不测试所有内容,那么如何知道我们的代码可以按预期工作? 这个问题为我们提供了重要的线索&…

mysql直接执行文件格式_Windows 环境下执行 .sql 格式文件方式

windows 命令行中有2种执行 .sql 文件的方式:直接行文件 和 先进入mysql命令行然后执行文件。具体操作如下:1. 直接在windows命令行执行。打开windows命令行(winR打开运行窗口然后输入cmd,回车),进入mysql的本机地址,如果配置了环…

python输入多个坐标点_判断多个坐标是否在同一条直线上|Python练习系列[13]

练习内容:判断多个坐标是否在同一条直线上完整代码和注释如下print(请输入几个点的横纵坐标,程序将会返回这几个点是否在同一条直线上)def coor_nums():#获得每个值的横纵坐标int_list[]#初始化坐标列表wrong_list[]#初始化错误列表judgement#判断是否需要修正坐标值while True…

Java大数据处理的流行框架

大数据挑战 在公司需要处理不断增长的数据量的各个领域中,对大数据的概念有不同的理解。 在大多数这些情况下,需要以某种方式设计所考虑的系统,以便能够处理该数据,而不会随着数据大小的增加而牺牲吞吐量。 从本质上讲&#xff0c…

工信部python证书多少钱_python requests SSL证书问题

错误信息如下:requests.exceptions.SSLError: ("bad handshake: Error([(SSL routines, tls_process_server_certificate, certificate verify failed)],)",)python做爬虫,对于有的网站,需要验证证书,比如:1…

mysql binlog线程恢复_使用MySQL SQL线程回放Binlog实现恢复

[toc]1. 需求部分1.1 基于MySQL复制同步特性,尝试使用Replication的SQL线程来回放binlog,可基于以下逻辑模拟场景做全量xtrabackup备份模拟日常备份执行sysbench压测4张表,20个线程,压测10分钟,模拟大量binlog删除实例…

带有Prometheus的Spring Boot和测微表第6部分:保护指标

以前,我们使用Prometheus成功启动了Spring Boot应用程序。 Spring应用程序中的一个端点正在公开我们的指标数据,以便Prometheus能够检索它们。 想到的主要问题是如何保护此信息。 Spring已经为我们提供了强大的安全框架 因此,将其轻松用于…

列举python中常用的数据类型_列举Python常用数据类型并尽量多的写出其中的方法...

#1 把字符串的第一个字符大写string.capitalize()#2 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串string.center(width)#3 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数string.count(str, beg0, endl…

mysql 二元分词_MySQL 中文分词原理

一,首先我们来了解一下其他几个知识点:1. Mysql的索引意义?索引是加快访问表内容的基本手段,尤其是在涉及多个表的关联查询里。当然,索引可以加快检索速度,但是它也同时降低了索引列的插入,删除…

python 元类 type_Python 使用元类type创建类对象常见应用详解

本文实例讲述了Python 使用元类type创建类对象。分享给大家供大家参考,具体如下:type("123") 可以查看变量的类型;同时 type("类名",(父类),{类属性:值,类属性2:值}) 可以创建一个类。在Python中不建议一个函数具有不同的功能(重载)…

使用AWS Elastic Beanstalk轻松进行Spring Boot部署

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 几乎所有应用程序都依赖于身份验证。 开发人员以及雇用他们的公司都想确认谁在发出请求&…

mysql报错乱码_连接mysql服务器报错时,出现乱码

页头用了header(content-type:text/html;charsetutf-8);try{$this->dbonew PDO($dsn,$dbuser,$dbpassword);}catch(Exception $e){echo $e->getMessage();}连接失败时会报错,但是乱码,IE下编码查看是UTF-8,但是是乱码,如果选…

自学python条件_自学Python2.8-条件(if、if...else)

自学Python2.8-条件(if、if...else)1.if 判断语句if语句是用来进行判断的,其使用格式如下:if 要判断的条件:条件成立时,要做的事情当“判断条件”成立(True)时,才执行语句;反之,则不执行。执行语句可以为多…

mac lion 安装 mysql_mac osx下安装mysql

操作系统版本:mac osx 10.11mysql版本:官网下载dmg v5.6.33 https://www.mysql.com/安装步骤1.双击dmg安装2.开启mysql服务系统偏好设置-底部-mysql-打开服务这个时候还不能使用mysql命令,需要配置mysql命令的路径。3.配置环境变量mysql的路…

python爬虫实训日志_Python学习学习日志——爬虫《第一篇》(BeautifulSoup)

爬虫简介(学习日志第一篇)一、爬虫介绍爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。二、Pyyhon爬虫架构Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有…

zookeeper 负载_ZooKeeper,策展人以及微服务负载平衡的工作方式

zookeeper 负载Zookeeper如何确保每个工人都能从工作委托经理那里愉快地完成工作。 Apache ZooKeeper是注册,管理和发现在不同计算机上运行的服务的工具。 当我们必须处理具有许多节点的分布式系统时,它是技术堆栈中必不可少的成员,这些节点…

mysql error handler_MySql错误处理(二) - Condition Handle

20.2.10.2. DECLARE处理程序DECLARE handler_type HANDLER FOR condition_value[,...] sp_statementhandler_type:CONTINUE| EXIT| UNDOcondition_value:SQLSTATE [VALUE] sqlstate_value| condition_name| SQLWARNING| NOT FOUND| SQLEXCEPTION| mysql_error_code这个语句指定…

方程组的直接解法和迭代法 python_数据与算法总结——基本数值算法2(线性方程组)...

4 基本数值算法4.2 线性方程组4.2.1 线性方程组的特性解的存在性和唯一性满足下面条件之一,A非奇异,可逆:如果b属于A的列向量张成的空间,则称方程组是相容的。范数需要满足次可加性(三角不等式)。对于n维矢…

高效的企业测试-集成测试(3/6)

本系列的这一部分将展示如何通过代码级以及系统级集成测试来验证我们的应用程序。 (代码级)集成测试 集成测试一词有时在不同的上下文中使用不同。 根据Wikipedia的定义,我指的是在代码级别上验证多个组件之间相互作用的测试。 通常&#x…