暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL主从同步

原创 一帆风顺 2022-06-30
357
基本概念

原理主从同步( Replication ) : 基于二进制日志( Binary log 以事件方式记录主库的数据变更)实现主库( Master )数据变更操作在从库( Slave )的回放。

● 条件:

1 、开启二进制日志( log-bin=mysql-bin , relay-log = mysql-relay )

2 、主从库全局唯一 server-id ( 1 ~ 2^32–1 )

3 、同步账号( GRANT REPLICATION SLAVE ON *.* TO )

4 、基准数据及同步点


特点:

优点:● 读写分离● 数据备份● 数据融合● 单点冗余

困扰:● 同步延迟● 数据差异● 维护成本● 程序复杂


常见问题:

● 同步中断SLAVE IO THREAD ( net work , grants , server-id , net-slavetimeout... )SLAVE SQL THREAD ( 1062, drop user, killed event, diff errno... )

● 同步延迟(无时无刻, 双刃剑)

● 数据不一致:

主从库版本不一致

使用了触发器、存储过程、函数、临时表等主从库数据结构不一致


常用命令

● mysql> change master to -> master_host='master_host_name', -> master_user='replication_user_name', -> master_password='replication_password', -> master_log_file='recorded_log_file_name', -> master_log_pos=recorded_log_position

● show master status;

● show slave status\G

● show master logs;

● purge master logs to/before

● stop/start slave sql_thread/io_thread;

● start slave until

● set sql_log_bin=0;

● set global sql_slave_skip_counter=N


建议:

● 建议主从库版本一致

● 慎用触发器、存储过程、函数、临时表

● 停实例前 stop slave; show status like “%temp%”

● skip-slave-start

● 每次重启同步都 tail -f error-log

● 操作前注意检查版本master.info,relay.info 不同版本格式存在差异不同版本的二进制日志格式不同

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论