服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - MariaDB: 选择性二进制日志事件

MariaDB: 选择性二进制日志事件

2023-05-07 02:12未知服务器之家 MongoDB

作为MariaDB一系列有趣特性的第一篇文章,我们从选择性跳过复制binlog事件开始。MariaDB 5.5和10支持此特性。 默认情况下使用MySQL标准复制功能时,所有事件都记录在二进制日志中,并复制到所有从机(可以过滤掉一些模式)。但使用此

作为MariaDB一系列有趣特性的第一篇文章,我们从选择性跳过复制binlog事件开始。MariaDB 5.5和10支持此特性。

默认情况下使用MySQL标准复制功能时,所有事件都记录在二进制日志中,并复制到所有从机(可以过滤掉一些模式)。但使用此特性,可以在从机上跳过一些事件的复制,即使这些事件是被写入到二进制日志中的。在二进制日志中保存那些事件对于时间点恢复来说总是有用的。

的确,当需要复制一个事件时,我们通常会设置 sql_log_bin = 0 ,该事件就会被跳过:既不会写入binlog也不会复制到从机。

然而使用此新特性,只需要设置一个会话级变量标记一些事件,就可以使这些事件写入二进制日志,随即在一些从机上被跳过。

而且该特性真的非常易于使用,你需要在主机上设置:

set skip_replication=1;

并在从机上设置replicate_events_marked_for_skip='FILTER_ON_MASTER' 'FILTER_ON_SLAVE',主机上跳过的事件就不会被复制。

replicate_events_marked_for_skip得有效值包括:

 

  • REPLICATE(默认值) : 从机会复制被跳过的事件

  • FILTER_ON_SLAVE: 从机会跳过标记的事件并且不会复制

  • FILTER_ON_MASTER : 过滤操作会在主机完成,因此从机不会收到被跳过的事件从而节省网络带宽

这是一个很酷的特性,但是它在什么时候会特别有用呢?
 

用例:

在归档时使用它非常有意思。的确,很多时候当人们归档数据时,他们使用 pt-archiver 等工具删除数据并在归档服务器上复制删除的数据。

由于有了此特性,我们可以使一个从机不删除那些数据,而不必使用归档服务器复制被删除的数据。这将会快得多(更智能?),从而使归档服务器总是最新的。当然,在这种情况下 sql_log_bin = 0  会起作用(如果我们忽略时间点恢复)。

但是对于Galera Cluster呢?是的,这正是此特性非常酷的地方,如果我们在一个Galera Cluster节点上使用了 sql_log_bin = 0 ,其他所有节点都将会忽略删除操作,从而使节点之间不一致。

所以,如果你使用一个异步从机作为Galera Cluster的归档服务器,此特性真的很有必要。

如下图所示,你可以使一个MariaDB Galera Cluster节点加入 Percona XtraDB Cluster ,以便借助pt-archiver删除历史数据:

MariaDB: 选择性二进制日志事件

pt-archiveris 使用 --set-vars "skip_replication=1"  参数启动。

英文:MariaDB: Selective binary logs events

译文:http://www.oschina.net/translate/mariadb-selective-binary-logs-events

延伸 · 阅读

精彩推荐
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12