博客
关于我
mysql主从复制 master和slave配置的参数大全
阅读量:789 次
发布时间:2023-02-11

本文共 2296 字,大约阅读时间需要 7 分钟。

MySQL主从复制参数优化指南

在MySQL主从复制环境中,合理配置参数是确保数据一致性和性能的关键。以下是基于实际经验总结的关键参数设置建议,涵盖master和slave的配置。

master节点配置

1. log_bin参数

  • 作用:控制master是否启用二进制日志记录功能。
  • 注意事项:建议将二进制日志文件放在单独的目录下,便于优化和维护。
  • 配置示例
    [mysqld]log_bin=/home/mysql/binlog/

    请确保路径以.log结尾,否则可能导致MySQL启动失败。

2. server-id参数

  • 作用:为每个节点分配唯一的服务标识。
  • 注意事项:在主从复制环境中,master和slave的server-id必须不同,否则可能导致数据同步问题。

3. expire_logs_days参数

  • 作用:自动删除过期的二进制日志文件。
  • 默认值:15
  • 注意事项:建议根据具体需求调整保留时间,避免磁盘占用过大。

4. innodb_flush_log_at_trx_commit参数

  • 作用:控制事务提交时重做日志的写入方式。
  • 取值范围:0、1、2
  • 建议:在复制环境中,建议设置为1以保证数据一致性。
    • 0:提升性能,但可能导致数据不一致。
    • 1:默认设置,确保事务提交时写入磁盘。
    • 2:提升性能,但可能导致数据丢失风险。

5. sync_binlog参数

  • 作用:控制二进制日志缓冲的同步方式。
  • 取值范围:0、1
  • 建议:在复制环境中,建议设置为1,但需权衡I/O性能。
  • 注意事项:即使设置为1,也需确保master和slave的时间一致,避免因时间差异导致数据不一致。

6. innodb_support_xa参数

  • 作用:支持XA事务,确保二进制日志与InnoDB数据文件一致。
  • 建议:在复制环境中必须设置为1。

7. binlog-do-db参数

  • 作用:指定需要记录到二进制日志的数据库。
  • 示例
    binlog-do-db=skate_db

8. binlog-do-table参数

  • 作用:指定需要记录的表。
  • 示例
    binlog-do-table=skate_tab

9. binlog-ignore-db参数

  • 作用:忽略指定数据库的更新。
  • 示例
    binlog-ignore-db=skate_db

10. log_slave_updates参数

  • 作用:控制slave是否记录从master同步的更新到二进制日志。
  • 建议:在级联复制环境中,建议设置为1。

11. binlog_format参数

  • 取值范围:statement、row、mixed
  • 默认值:mixed
  • 建议:根据需求选择合适的格式,statement适合文本记录,row适合行级锁相关的日志。

12. max_binlog_size参数

  • 作用:限制二进制日志文件的大小。
  • 默认值:1G

13. binlog_cache_size参数

  • 作用:控制二进制日志缓冲的大小。
  • 注意事项:建议根据具体IO压力调整缓冲大小,并结合Binlog_cache_disk_useBinlog_cache_use参数进行优化。

14. auto_increment_increment和auto_increment_offset参数

  • 作用:在双master环境中,防止键值冲突。
  • 示例
    auto_increment_increment=2auto_increment_offset=1

slave节点配置

1. server-id参数

  • 作用:与master不同,确保唯一性。

2. log_bin参数

  • 作用:启用二进制日志记录功能。

3. relay-log参数

  • 作用:指定中继日志文件的路径。
  • 示例
    relay-log=relay-bin/

4. read_only参数

  • 作用:使slave只读。
  • 注意事项:在复制环境中,建议设置为1,避免从客户端发来的更新。

5. skip_slave_start参数

  • 作用:在mysql启动时不启动复制。
  • 注意事项:建议设置为1,手动调用start slave命令。

6. replicate-do-db参数

  • 作用:指定需要复制的数据库。

7. replicate-do-table参数

  • 作用:指定需要复制的表。

8. replicate-ingore-table参数

  • 作用:忽略指定的表。

9. replicate_wild_do_table参数

  • 作用:基于模式匹配复制指定数据库。
  • 示例
    replicate-wild-do-table=skatedb.*

10. log_slow_slave_statements参数

  • 作用:记录slave上的慢查询日志。
  • 示例
    log-slow-slave-statements=1

11. max_relay_log_size参数

  • 作用:限制中继日志文件大小。

12. relay_log_info_file参数

  • 作用:指定中继日志状态信息文件的路径。

13. relay_log_purge参数

  • 作用:自动清理中继日志。
  • 示例
    relay-log-purge=1

14. replicate-rewrite-db参数

  • 作用:数据库重定向,方便数据汇总。

注意事项

  • 时间一致性:确保master和slave的时间一致,避免因时差引发的数据不一致。
  • 硬链接:避免使用硬链接,防止文件丢失或无法删除。
  • 监控日志文件:定期检查二进制日志文件的大小和数量,及时清理过期文件。

通过合理配置以上参数,可以显著提升MySQL主从复制环境的稳定性和性能。

转载地址:http://atbfk.baihongyu.com/

你可能感兴趣的文章
MySQL-架构篇
查看>>
MySQL-索引的分类(聚簇索引、二级索引、联合索引)
查看>>
Mysql-触发器及创建触发器失败原因
查看>>
MySQL-连接
查看>>
mysql-递归查询(二)
查看>>
MySQL5.1安装
查看>>
mysql5.5和5.6版本间的坑
查看>>
mysql5.5最简安装教程
查看>>
mysql5.6 TIME,DATETIME,TIMESTAMP
查看>>
mysql5.6.21重置数据库的root密码
查看>>
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>