zoukankan      html  css  js  c++  java
  • mysql主从库配置文件

    主库my.cnf(Win为my.ini)需要添加的关键配置

    开启binlog, 因为我们使用混合模式所以binlog必须开启.
    log-bin=mysql-bin

    实例唯一ID, 每个参与主从的实例ID都必须唯一, 用于相互识别.
    server-id=1
    事务提交后持久化频率设置.
    0: 固定每秒一次, 宕机丢失一秒内的所有事务数据.
    1: 事务提交后立即写入磁盘缓冲区并立即刷新, 为默认值. 但刷新磁盘为阻塞函数, 所以最安全, 但会限制写入并发性能.
    2: 事务提交后数据写入磁盘缓冲区, 刷新依旧每秒一次, 该方式可保证mysql宕机但操作系统正常时数据的完整性.
    重要数据最好选择1, 为了应对系统宕机或停电等极端情况.
    innodb_flush_log_at_trx_commit=1
    这个参数和上一个成对使用, binlog中写入多少个事务缓冲后立即触发刷新.
    这个参数根据可根据自身并发写入量、服务器负载量、机房环境及数据重要性等因素综合来定
    sync_binlog= 1

    同步数据库,如果多库,就以此格式另写几行即可

    binlog-do-db=order
    binlog-do-db=order2
    忽略mysql的系统库
    binlog-ignore-db = cluster
    binlog-ignore-db = mysql
    binlog-ignore-db = performance_schema
    binlog-ignore-db = information_schema

    混合模式同步

    binlog_format=MIXED
    binlog过期清理时间
    expire_logs_days=7
    binlog每个日志文件大小
    max_binlog_size=20M

    从库my.cnf(Win为my.ini)需要添加的关键配置

    开启binlog, 因为我们使用混合模式所以binlog必须开启.
    log-bin=mysql-bin

    实例唯一ID, 每个参与主从的实例ID都必须唯一, 用于相互识别.
    server-id=2

    因为我们使用的混合模式同步, 那么即是从库进用于读, bin log也会在同步时被用到.
    所以配置考量同主库.
    sync_binlog=1

    这里可选择开启从库的bin log记录, 可方便日后扩展又从变主.
    binlog-do-db=order
    binlog-do-db=order2
    无需同步的数据库,以下几行基本一样,无需改动
    binlog-ignore-db = cluster
    binlog-ignore-db = mysql
    binlog-ignore-db = performance_schema
    binlog-ignore-db = information_schema

    指定需要进行同步的数据库

    replicate-do-db=order
    replicate-do-db=order2

    忽略mysql的系统库

    replicate-ignore-db = cluster
    replicate-ignore-db = mysql
    replicate-ignore-db = performance_schema
    replicate-ignore-db = information_schema

    从库开启 crash-safe 的关键配置 crash-safe可解决系统宕机或断电等极端情况从库出现数据异常的问题.

    开启后会自动创建mysql.slave_relay_log_info表, 注意! 5.6.5之前版本该表默认为MyISAM引擎, 需手动改为Innodb
    relay_log_info_repository = TABLE
    relay_log_recovery = 1

    跳过所有错误继续, 从数据健壮性考虑, 这里不建议跳过任何错误, 任何错误都应该即刻停止.
    做读写分离时, 应心跳检测主从复置状态(心跳调用show slave status), 一旦同步进程挂掉即停止从该服务器读取数据.
    slave-skip-errors=OFF
    设置超时时间, 不易过长, 因为超时后重连成功会追赶同步.
    slave-net-timeout=60

    混合模式同步

    binlog_format=MIXED
    binlog过期清理时间
    expire_logs_days=7
    binlog每个日志文件大小
    max_binlog_size=20M

    每个一个关键配置我都进行了比较详细描述了有什么用|什么时候用|怎么用.
    建议深刻理解以上配置, 并本地进行各项选项的实验, 有坑提前踩, 避免上线后遇到问题抓耳挠腮.

    看明白之后将以上配置区分主从分别加入你数据库里的配置文件中重启.

    Ps: 当我们因为数据一致性被迫使用最严格的模式而导致性能瓶颈时, 还可以使用集群来做主从, 进一步分担IO压力, 集群的主从配置大同小异.

    第三步 开启同步线程
    首先先从主库手动同步数据库到从库中, 结构和数据皆需要同步, 空库可跳过, 备份主库时记得先锁住所有表, 防止备份时数据库发生变化.

    在主库执行

    /* 给主库增加从库用于同步使用的用户 */
    grant replication slave on . to rep@"192.168.%.%" identified by "pwd";

    /* 查看数据bin log, 将File和Position两个字段内容复制下来. */
    show master status

    在从库执行

    /* 配置同步进程需要的数据 */
    CHANGE MASTER TO
    MASTER_HOST='主库IP',
    master_port=主库端口,
    MASTER_USER='刚刚在主库创建的同步用户名',
    MASTER_PASSWORD='密码',
    MASTER_LOG_FILE='刚刚复制File字段内容',
    master_log_pos=刚刚复制的Position字段内容;

    /* 开启同步 */
    start slave;

    /* 如果需要修改上面进程同步需要的配置, 需要先停止同步 */
    stop slave;
    主从同步配置全部完成. 可自行在主库上增删改数据进行测试.

  • 相关阅读:
    c# 通过Windows服务启动外部程序
    MVC 视图页对数字,金额 用逗号 隔开(数字格式化)
    mvc4 @foreach 如何写@if 判断
    最小生成树Prim算法和Kruskal算法
    Triangle War
    定制kickstart重建CentOS7.5镜像用于U盘引导安装
    有限状态机FSM
    最短路经算法简介(Dijkstra算法,A*算法,D*算法)
    利用/dev/urandom文件创建随机数
    A*搜索算法
  • 原文地址:https://www.cnblogs.com/lvshuizhicheng/p/14507937.html
Copyright © 2011-2022 走看看