search
HomeDatabaseMysql TutorialMariaDB: 选择性二进制日志事件

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

    archiving

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

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

    MariaDB Proxy读写分离的实现

    MariaDB 的详细介绍:请点这里
    MariaDB 的下载地址:请点这里

    本文永久更新链接地址:

    linux

    Statement
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    How does MySQL differ from SQLite?How does MySQL differ from SQLite?Apr 24, 2025 am 12:12 AM

    The main difference between MySQL and SQLite is the design concept and usage scenarios: 1. MySQL is suitable for large applications and enterprise-level solutions, supporting high performance and high concurrency; 2. SQLite is suitable for mobile applications and desktop software, lightweight and easy to embed.

    What are indexes in MySQL, and how do they improve performance?What are indexes in MySQL, and how do they improve performance?Apr 24, 2025 am 12:09 AM

    Indexes in MySQL are an ordered structure of one or more columns in a database table, used to speed up data retrieval. 1) Indexes improve query speed by reducing the amount of scanned data. 2) B-Tree index uses a balanced tree structure, which is suitable for range query and sorting. 3) Use CREATEINDEX statements to create indexes, such as CREATEINDEXidx_customer_idONorders(customer_id). 4) Composite indexes can optimize multi-column queries, such as CREATEINDEXidx_customer_orderONorders(customer_id,order_date). 5) Use EXPLAIN to analyze query plans and avoid

    Explain how to use transactions in MySQL to ensure data consistency.Explain how to use transactions in MySQL to ensure data consistency.Apr 24, 2025 am 12:09 AM

    Using transactions in MySQL ensures data consistency. 1) Start the transaction through STARTTRANSACTION, and then execute SQL operations and submit it with COMMIT or ROLLBACK. 2) Use SAVEPOINT to set a save point to allow partial rollback. 3) Performance optimization suggestions include shortening transaction time, avoiding large-scale queries and using isolation levels reasonably.

    In what scenarios might you choose PostgreSQL over MySQL?In what scenarios might you choose PostgreSQL over MySQL?Apr 24, 2025 am 12:07 AM

    Scenarios where PostgreSQL is chosen instead of MySQL include: 1) complex queries and advanced SQL functions, 2) strict data integrity and ACID compliance, 3) advanced spatial functions are required, and 4) high performance is required when processing large data sets. PostgreSQL performs well in these aspects and is suitable for projects that require complex data processing and high data integrity.

    How can you secure a MySQL database?How can you secure a MySQL database?Apr 24, 2025 am 12:04 AM

    The security of MySQL database can be achieved through the following measures: 1. User permission management: Strictly control access rights through CREATEUSER and GRANT commands. 2. Encrypted transmission: Configure SSL/TLS to ensure data transmission security. 3. Database backup and recovery: Use mysqldump or mysqlpump to regularly backup data. 4. Advanced security policy: Use a firewall to restrict access and enable audit logging operations. 5. Performance optimization and best practices: Take into account both safety and performance through indexing and query optimization and regular maintenance.

    What are some tools you can use to monitor MySQL performance?What are some tools you can use to monitor MySQL performance?Apr 23, 2025 am 12:21 AM

    How to effectively monitor MySQL performance? Use tools such as mysqladmin, SHOWGLOBALSTATUS, PerconaMonitoring and Management (PMM), and MySQL EnterpriseMonitor. 1. Use mysqladmin to view the number of connections. 2. Use SHOWGLOBALSTATUS to view the query number. 3.PMM provides detailed performance data and graphical interface. 4.MySQLEnterpriseMonitor provides rich monitoring functions and alarm mechanisms.

    How does MySQL differ from SQL Server?How does MySQL differ from SQL Server?Apr 23, 2025 am 12:20 AM

    The difference between MySQL and SQLServer is: 1) MySQL is open source and suitable for web and embedded systems, 2) SQLServer is a commercial product of Microsoft and is suitable for enterprise-level applications. There are significant differences between the two in storage engine, performance optimization and application scenarios. When choosing, you need to consider project size and future scalability.

    In what scenarios might you choose SQL Server over MySQL?In what scenarios might you choose SQL Server over MySQL?Apr 23, 2025 am 12:20 AM

    In enterprise-level application scenarios that require high availability, advanced security and good integration, SQLServer should be chosen instead of MySQL. 1) SQLServer provides enterprise-level features such as high availability and advanced security. 2) It is closely integrated with Microsoft ecosystems such as VisualStudio and PowerBI. 3) SQLServer performs excellent in performance optimization and supports memory-optimized tables and column storage indexes.

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    mPDF

    mPDF

    mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

    VSCode Windows 64-bit Download

    VSCode Windows 64-bit Download

    A free and powerful IDE editor launched by Microsoft

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    PhpStorm Mac version

    PhpStorm Mac version

    The latest (2018.2.1) professional PHP integrated development tool

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    Powerful PHP integrated development environment