debian

Debian MySQL复制功能详解

小樊
46
2025-08-30 01:26:48
栏目: 云计算

Debian MySQL复制功能主要基于主从复制(Master-Slave Replication)机制,实现数据从主服务器到从服务器的同步,以下是核心要点:

一、基础配置流程

  1. 主服务器配置

    • 编辑配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,设置唯一 server-id 和开启二进制日志:
      [mysqld]
      server-id = 1
      log_bin = /var/log/mysql/mysql-bin.log
      binlog_do_db = your_database_name  # 指定复制数据库(可选)
      
    • 重启MySQL服务:sudo systemctl restart mysql
    • 创建复制用户并授权:
      CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
      GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
      FLUSH PRIVILEGES;
      
    • 获取当前二进制日志位置:SHOW MASTER STATUS;,记录 FilePosition
  2. 从服务器配置

    • 编辑配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,设置唯一 server-id 和中继日志路径:
      [mysqld]
      server-id = 2
      relay_log = /var/log/mysql/mysql-relay-bin.log
      log_bin = /var/log/mysql/mysql-bin.log  # 可选,用于从库本地记录binlog
      
    • 重启MySQL服务。
    • 配置连接主服务器:
      CHANGE MASTER TO
      MASTER_HOST='master_ip',
      MASTER_USER='replicator',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='recorded_log_file',
      MASTER_LOG_POS=recorded_position;
      
    • 启动复制:START SLAVE;
  3. 验证复制状态

    • 在从服务器执行 SHOW SLAVE STATUS\G,检查 Slave_IO_RunningSlave_SQL_Running 是否为 Yes,确保无错误。

二、关键组件与原理

三、高级功能与优化

  1. 半同步复制(Semi-Sync Replication)

    • 主库提交事务时需等待至少一个从库确认接收binlog,减少数据丢失风险(需安装插件):
      # 主库配置
      plugin-load = "rpl_semi_sync_master=semisync_master.so"
      rpl_semi_sync_master_enabled = 1
      
      # 从库配置
      plugin-load = "rpl_semi_sync_slave=semisync_slave.so"
      rpl_semi_sync_slave_enabled = 1
      
  2. 并行复制(Parallel Replication)

    • MySQL 5.7+支持基于库级或多线程并行应用binlog,提升从库处理速度:
      slave_parallel_type = LOGICAL_CLOCK
      slave_parallel_workers = 4  # 根据CPU核心数调整
      
  3. GTID(全局事务标识)

    • 通过唯一事务ID简化故障恢复和主从切换,避免依赖binlog文件名和位置:
      gtid_mode = ON
      enforce_gtid_consistency = ON
      

四、常见问题与解决方案

五、安全与维护建议

参考来源

0
看了该问题的人还看了