MySQL/MariaDB数据库的复制过滤器

                       作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

一.复制过滤器概述

1>.复制器过滤器功能

  让从节点仅复制指定的数据库,或指定数据库的指定表。

2>.两种实现方式

方案一:
  主服务器仅向二进制日志中记录与特定数据库相关的事件   此项和binlog_format相关,详情请参考官网说明:https:
//mariadb.com/kb/en/library/mysqld-options/#-binlog-ignore-db     binlog_do_db = 数据库白名单列表,多个数据库需多行实现     binlog_ignore_db = 数据库黑名单列表   问题:
    基于二进制还原将无法实现(因为记录的日志只有部分数据库信息,可能存在部分数据无法还原的现象);不建议使用

方案二:
  从服务器SQL_THREAD在replay中继日志中的事件时,仅读取与特定数据库(特定表)相关的事件并应用于本地   问题:
    由于将master节点的所有数据都copy至slave节点,但SQL_THREAD线程仅读取与特定数据库(特定表)相关的事件并应用于本地,也就是说部分数据传过来也不去使用,这会造成网络及磁盘IO浪费。

3>.从服务器上的复制过滤器相关变量

MariaDB [(none)]> SHOW VARIABLES LIKE '%replicate%';
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| replicate_annotate_row_events    | OFF       |
| replicate_do_db                  |           |
| replicate_do_table               |           |
| replicate_events_marked_for_skip | replicate |
| replicate_ignore_db              |           |
| replicate_ignore_table           |           |
| replicate_wild_do_table          |           |
| replicate_wild_ignore_table      |           |
+----------------------------------+-----------+
8 rows in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> SHOW VARIABLES LIKE '%replicate%';

相关文章:

  • 2021-09-18
  • 2021-12-04
  • 2021-04-06
  • 2021-10-22
  • 2021-07-13
  • 2021-12-31
  • 2021-07-12
  • 2021-07-09
猜你喜欢
  • 2021-10-05
  • 2021-12-28
  • 2022-02-21
  • 2021-07-15
  • 2021-06-08
  • 2021-10-04
相关资源
相似解决方案