MST

星途 面试题库

面试题:MariaDB选择性复制技术的基本原理

请详细阐述MariaDB选择性复制技术的基本原理,在主从复制架构下,如何通过配置实现选择性复制,涉及到哪些关键参数和配置文件的修改?
41.5万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

MariaDB选择性复制技术基本原理

  1. 基于日志的复制:MariaDB主从复制基于二进制日志(binary log)。主库将数据库的更改操作记录到二进制日志中,从库通过I/O线程连接主库,读取主库的二进制日志,并将其记录到自己的中继日志(relay log)中,然后通过SQL线程将中继日志中的记录应用到从库的数据库,从而实现数据同步。
  2. 选择性复制核心:选择性复制允许从库只复制主库上特定数据库、表或部分数据。这主要通过在主库和从库上分别配置过滤规则来实现。主库会根据配置决定是否将某些操作记录到二进制日志中,从库则根据配置决定是否应用中继日志中的某些记录。

在主从复制架构下实现选择性复制的配置

  1. 主库配置
    • 关键参数
      • binlog_do_db:指定需要记录到二进制日志的数据库。例如,如果只想记录mydb1mydb2数据库的操作到二进制日志,可以在my.cnf文件中添加或修改如下配置:
        [mysqld]
        binlog_do_db=mydb1
        binlog_do_db=mydb2
        
      • binlog_ignore_db:与binlog_do_db相反,指定不需要记录到二进制日志的数据库。例如,不想记录mydb3数据库的操作到二进制日志:
        [mysqld]
        binlog_ignore_db=mydb3
        
    • 配置文件修改:打开主库的my.cnf(或my.ini,取决于操作系统)配置文件,在[mysqld]部分添加或修改上述参数,然后重启MariaDB服务使配置生效。
  2. 从库配置
    • 关键参数
      • replicate_do_db:指定从库需要复制的数据库。例如,从库只希望复制mydb1mydb2数据库:
        [mysqld]
        replicate_do_db=mydb1
        replicate_do_db=mydb2
        
      • replicate_ignore_db:指定从库不需要复制的数据库。如从库不想复制mydb3数据库:
        [mysqld]
        replicate_ignore_db=mydb3
        
      • replicate_do_table:用于指定从库需要复制的表,格式为database.table。例如,只想复制mydb1数据库中的mytable1表:
        [mysqld]
        replicate_do_table=mydb1.mytable1
        
      • replicate_ignore_table:指定从库不需要复制的表,格式同样为database.table
    • 配置文件修改:打开从库的my.cnf(或my.ini)配置文件,在[mysqld]部分添加或修改上述参数,然后重启MariaDB服务。之后在从库上使用CHANGE MASTER TO语句重新配置主库连接信息(如果之前已配置过),并使用START SLAVE命令启动从库复制进程。