`
丁林.tb
  • 浏览: 798757 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Doublebinlog for MySQL

阅读更多

Background

         In some projects that require very strict data safety, DBAs will except there is a solution to ensure the safety of binlog. That means after the worst case, OS crash or disk damage, there is a way to find out a whole copy of binlog.

        Doublebinlog patch is done for this requirement. It offers a switch to enable the behavior: any write and fsync operation on binary logs are duplicated in another file. So if the original binlog file is destroyed by disk damage, the bak file can be used.

 

Usage

         Two static variables and a dynamic variable:

       If “log-bin” is set “/log/mysql3306/binlog/binlog”, add two line under [mysqld] in my.cnf

    double_file_src_prefix = /log/mysql3306/binlog/binlog

    double_file_dst_dir    = /log/mysql3306/extra_binlog

 

    a) Be sure mysqld has the privilege of /log/mysql3306/extra_binlog

    b) "set global double_file_switch=1" can enable the strategy, default is off

c) After set double_file_switch=0, "flush logs" is recommended.

 

         The logic is that, if an file operation on a file and the filename has the prefix as double_file_src_prefix, all the operaion will duplicated in another file, which locates in the directory double_file_dst_dir.

 

Design

  In order to avoid modifying the logic, we hook in the file operations such as write/pwrite/fsync/lseek.

1)    When a file is open or create, we check whether it matches the prefix, if yes, the same operation is done in the duplicated file. This will return two file description (fd), src_fd defined as key, dest_fd defined as value, a hash table is used to save the relationship.

2)     When wrte/pwrite/fsync/lseek operate on an fd, search it in the hash table, if there is an item match, get the value as dest_fd, the same operation is done on it.

3)    When close(src_fd), we close(dest_fd) too, and then remove the relationship from hash table.

4)     It is confirmed that when doing fsync, duplicated file is done before original file, so if the server crash, duplicated file will be larger than original, which means the slave will not get “dirty” binary events.

 

 Patch File Download  (based on Percona Server 5518)  

0
0
分享到:
评论

相关推荐

    彭立勋-DoubleBinlog方案

    彭立勋在2015年Oracle技术嘉年华的分会场7中介绍了DoubleBinlog方案,这是对MySQL原生复制可靠性的改进。DoubleBinlog方案主要包括Double Sync Replication(双同步复制)的概念,其目的是解决异步复制和半同步复制...

    mysql5.7开启binlog注意事项1

    MySQL 5.7 开启 Binlog 注意事项 在 MySQL 5.7 中,开启 Binlog 是一个非常重要的步骤, Binlog 是 MySQL 的二进制日志,这个日志记录了 MySQL 的所有操作,包括数据的增删改查等操作。开启 Binlog 可以帮助 DBA ...

    MySQL Binlog Digger 4.28 + Mysql Binlog分析 + 数据库

    MySQL Binlog Digger是一款免费的,且基于图形界面的binlog挖掘分析工具与sql审计工具。当发生误删、误增、误改时,它可以帮助我们从binlog中快速定位到误操作的重做语句(redo sql),同时推理出回滚语句(undo sql)。...

    MySQL Binlog Digger 4.8.0

    MySQL Binlog Digger 4.8.0 是一个专为MySQL数据库设计的强大的日志挖掘和分析工具,尤其适用于数据恢复场景。它采用图形用户界面,使得操作更加直观易用。该工具支持在线和离线两种模式的binlog分析,能够帮助用户...

    Mysql binlog查看工具

    MySQL的二进制日志(Binary Log,简称binlog)是数据库系统中非常重要的一个功能,主要用于数据恢复、数据同步以及审计。它记录了所有改变数据库状态的事务,包括INSERT、UPDATE、DELETE等操作,为数据库提供了事务...

    navicat for mysql for mac汉化包

    【标题】"Navicat for MySQL for Mac 汉化包"是一款专为Mac用户设计的MySQL数据库管理工具的中文语言包。Navicat是由PremiumSoft公司开发的一款强大的数据库管理和开发工具,支持多种数据库系统,包括MySQL、MariaDB...

    NavicatforMySQL中文绿色免安装版

    Navicat for MySQL是一款强大的数据库管理和开发工具,专为MySQL数据库设计。这款软件以其直观的图形界面、多语言支持和全面的功能集而受到广大用户的欢迎。在提供的“NavicatforMySQL中文绿色免安装版”中,用户...

    Navicat for MySQL 10.1.7中文注册版

    Navicat for MySQL是一套类似于phpMyAdmin、Mysql-Front这样的超强的Mysql数据库管理工具,适用于MySQL数据库系统的图形化数据库管理、报告以及监控的等。 Navicat for MySQL软件可以让数据库管理员可以方便轻松的...

    SSMA 2008 for MySQL

    SSMA(SQL Server Migration Assistant)2008 for MySQL 是一个专门设计用于帮助用户将MySQL数据库迁移至Microsoft SQL Server的工具。这个工具旨在简化数据库迁移过程,减少手动转换的工作量,确保数据的一致性和...

    MySQL Binlog Digger 4.19

    MySQL Binlog Digger 4.19安装包,mysql日志回滚、解析、挖掘、支持离线在线 支持解析全sql字段语句

    dbForge Studio for MySQL 8.0.124 官网最新破解版

    dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作...

    Toad for MySQL 8.0.0.296免费版

    Toad for MySQL 8.0.0.296免费版是一款专为MySQL数据库管理人员设计的强大工具,由Quest Software开发,旨在提供高效、便捷的数据库管理和开发环境。这个版本的Toad for MySQL提供了许多功能,使得数据库管理、查询...

    navicatforMysql 10.1.7-enterprise-解压版.rar

    《Navicat for MySQL 10.1.7:便捷的数据库管理工具》 Navicat for MySQL是一款功能强大的MySQL数据库管理和开发工具,专为数据库管理员和开发人员设计。在这个无需安装的10.1.7企业版解压包中,用户可以直接运行,...

    Navicat for MySQL v11.0.10绿色版 解压可用

    Navicat for MySQL v11.0.10绿色版 解压可用Navicat for MySQL v11.0.10绿色版 解压可用Navicat for MySQL v11.0.10绿色版 解压可用Navicat for MySQL v11.0.10绿色版 解压可用Navicat for MySQL v11.0.10绿色版 ...

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    dbForge Studio for MySQL 7.2.58 破解补丁

    dbForge Studio for MySQL 7.2.58 破解补丁 dbForge Studio for MySQL 是 Devart 公司出品的专门用于管理 MySQL 数据库的工具。功能十分强大,集查询、管理、分析以及报表于一身,是十分值得一试的管理工具。 安装...

    dbForge Studio 2023 for MySQL Enterprise 10.0.150 x64【亲测可用,最新版本】

    dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作...

    亲测可用dbForge Studio 2023 for MySQL Enterprise 9.2.5 x64【官网次新版本】

    dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作...

    NavicatforMySQL含密匙Key

    Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯...

    MySQL迁移SQLServer工具SSMA for MySQL.6.0.zip

    SSMA for MySQL.6.0.0是微软发布的一款用于MySQL迁移SQLServer工具,支持多种SQL数据库版本,最高支持SQL2014数据库。安装说明:在安装SSMA之前,一定要先安装mysql和mssql的ODBC,当然也可以直接安装两者的客户端...

Global site tag (gtag.js) - Google Analytics