mysql主从配置
发布日期:2021-08-30 07:11:49
浏览次数:6
分类:技术文章
本文共 2928 字,大约阅读时间需要 9 分钟。
主从形式:一主一从,主主复制,联级复制,一主多从--扩展系统读取性能,多主一从--5.7开始支持
用途:实时灾备的故障切换,读写分离,备份
主从原理:
主:log dump线程传binlog;从:i/o线程接受读取binlog,并写入relay log文件,sql线程从relay log 文件中读取binlog并持久化问题及解决:
主库宕机后,数据丢失---->半同步复制主库写压力大,因从库只有一个sql 线程来持久化,复制可能延迟---->并行复制半同步复制原理:
事务在主库写完binlog后需要从库返回一个已接受,才放回给客户端;5.5集成到mysql,以插件的形式存在,需要单独安装确保事务提交后binlog至少传输到一个从库不保证从库应用完成这个事务的binlog性能有一定的降低网络异常或从库宕机,卡主库,直到超时或从库恢复并行复制原理:
从库多线程apply binlog在社区5.6中新增库级别并行应用binlog,同一个库数据更改还是串行的5.7版本并行复制基于事务组部分数据复制
联级复制(常用)A->B->CB中添加参数log_slave_updatesB将把A的binlog记录到自己的binlog日志中复制的监控
show slave status复制出错处理
常见:1062(主键冲突),1032(记录不存在),1007(已创建数据库)解决:手动处理,跳过复制错误:set global sql_slave_skip_counter=1或者可以选择忽略这些错误 slave-skip-errors=1062,1032,1007mysql主从复制是mysql高可用性,高性能(负载均衡)的基础
简单,灵活,部署方式多样,可以根据不同业务场景部署不同复制结构复制过程中应该时刻监控复制状态,复制出错或延时可能给系统造成影响mysql主从复制目前也存在一些问题,可以根据需要部署复制增强功能主从实践:
主从复制要求mysql版本一致1、修改主服务器mastervi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
2、修改从服务器slave
vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
然后重启两台服务器的mysql
3、配置主服务器mysql>GRANT REPLICATION SLAVE ON *.* to 'fangxslave'@'100.168.50.211' identified by 'fangxslave'; # 一般不用root帐号,主从用户用具体IP代替,加强安全。
mysql>show master status; #查询日志节点 +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
4、配置从服务器
mysql>change master to master_host='100.168.50.203',master_user='fangxslave',master_password='fangxslave',master_log_file=' mysql-bin.000004',master_log_pos=308; #注意不要断开,308数字前后无单引号。
Mysql>start slave; 启动从服务器复制功能
如果有报错为ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
使用reset slave可解决5、检查复制状态
从服务器操作show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.2.222 //主服务器地址 Master_User: fangxslave //授权帐户名,尽量避免使用root Master_Port: 3306 //数据库端口,部分版本没有此行 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos Relay_Log_File: ddte-relay-bin.000003 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes //此状态必须YES Slave_SQL_Running: Yes //此状态必须YES ......
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成。转载于:https://blog.51cto.com/243662875/2126015
转载地址:https://blog.csdn.net/weixin_34026276/article/details/91745077 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月25日 10时18分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”?
2019-04-21
python土味情话_Python 将土味情话语录设置为桌面壁纸
2019-04-21
幻兽天下修复版java_宠物天下四-幻兽天下
2019-04-21
java类spring加载_spring的加载机制?
2019-04-21
java计数器策略模式_java设计模式(二十一)--策略模式
2019-04-21
java负数十进制转二进制_java中负数的补码转换为十进制
2019-04-21
linux setuid函数_setuid函数解析
2019-04-21
java中asl_带你认识绕不开的ASLR
2019-04-21
java复杂性_java – 计算Big-O复杂性
2019-04-21
java泛型与接口_Java泛型用于方法,类和接口
2019-04-21
unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题
2019-04-21
java ip 范围内打卡_定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019-04-21
与java线程有关的,线程多少和什么有关?大神们表示有话要说!
2019-04-21
php正则表达式 匹配数字,正则表达式之匹配数字范围
2019-04-21
php中带?错误,参考-此错误在PHP中意味着什么?
2019-04-21
php生成链接列表,根据URL链接和抛文本生成链接<a>标签的PHP函数
2019-04-21
php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
2019-04-21