• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

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

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

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

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

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

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

set skip_replication=1;

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

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删除历史数据:

    pt-archiveris 使用 –set-vars “skip_replication=1” 参数启动。

    在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)

    MariaDB Proxy读写分离的实现

    MariaDB 本文来源gaodai#ma#com搞@代~码^网+的详细介绍:请点这里
    MariaDB 的下载地址:请点这里

    本文永久更新链接地址:


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:MariaDB: 选择性二进制日志事件

    喜欢 (0)
    [搞代码]
    分享 (0)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址