mysql主从复制的原理和实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql主从复制的原理和实战

公众号merlinsea


实战



1、背景

   在后端的数据库如果是单点部署,那么可能出现如果这个数据库挂机了那么将没有其他数据库可以顶替的问题,即存在单点故障的风险,因此后端的数据一般都是一主多从的方法搭建。


2、主从架构的优势

   1、分担主库的读压力,提高主库的写性能

   2、从库作为副本可以有效保障主库数据安全性,如果主库挂机了,从库将顶上

640.jpg

3、以一主一从的模式搭建高可用主从架构的例子demo


搭建说明:在两台服务器上安装好mysql,下面的两台mysql服务器的信息

1、主库的服务器私有IP:172.28.144.179
2、主从的mysql用户名:root
3、主库的mysql密码:mysqlroot
4、从库的服务器私有IP:172.28.144.180
5、从库的mysql用户名:root
7、从库的mysql密码:mysqlslave


第一步、在【主】数据库上创建一个用户名和密码,该用户只能在从数据库的服务器上登陆。



GRANT REPLICATION SLAVE ON *.* to 'slave'@'172.28.144.180' identified by 'Slave.666';
FLUSH PRIVILEGES;


第二步、编辑【主】数据的配置文件 /etc/my.cnf

注:这是告诉主数据库开启bin log,同步merlin数据库的内容

# 开启binlog
log-bin=mysql-bin
server-id=100
# 需要同步的数据库,如果不配置则同步全部数据库
binlog-do-db=merlin
# binlog⽇志保留的天数,清除超过20天的⽇志
# 防⽌⽇志⽂件过⼤,导致磁盘空间不⾜
expire-logs-days=20


第三步、重启【主】数据库


systemctl restart mysqld


第四步、进入【从】数据库执行


CHANGE MASTER TO
//主数据库的地址
MASTER_HOST='172.28.144.179',
//主数据库上创建的用户名
MASTER_USER='slave',
//主数据库上创建的密码
MASTER_PASSWORD='Slave.666', 
//binlog文件
MASTER_LOG_FILE='mysql-bin.000002',
//binlog文件偏移
MASTER_LOG_POS=154,
master_port=3306;

第五步、重启【从】数据库


systemctl restart mysqld


原理



1、主从复制的架构图

640.jpg


2、流程

   1、主数据库会将变更数据存入binlog中,即在配置数据库主从时候指定的log-bin文件

    2、主数据库的dump线程定期将bin log日志文件推送给从数据库的IO线程

   3、从数据库的IO线程将主数据库推送来的bin log文件写入relay log日志中

    4、从数据库的sql线程在将relay log中的数据一条一条持久化到从数据库中。


3、变更日志从主库到从库到方式

   是主数据库主动将bin log 【推送】给从库。


4、relay log的作用

   从服务器 I/O 线程将主服务器的 Binlog ⽇志读取过来,解析到各类 Events 之后记录到从服务器本地⽂件,这个⽂件就被称为 relay log。然后 SQL 线程会读取 relay log ⽇志的内容并应⽤到从服务器,从⽽使从服务器和主服务器的数据保持⼀致。中继 ⽇志充当缓冲区,这样 master 就不必等待 slave 执⾏完成才发送下⼀个事件


关于leetcode算法训练营:

   加我微信号私聊参加训练营~

本人用c++刷了800道左右的算法,java语言刷了600道左右的算法题,并对这些题做了详细的个人总结。本科期间系统学习了数据结构与算法课程,同时考研过程中写完了率辉主编的《2020年数据结构高分笔记》和《数据结构1000题》,看完的视频包括《mooc浙大数据结构国家精品课程》和《王道考研408数据结构课程》,《王道2019年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等等,所以快加入训练营吧,我们一起进步

奔跑的小梁,公众号:梁霖编程工具库算法训练营,快来参加


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
185 66
|
12天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
2月前
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
134 1
|
9天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
71 24
|
13天前
|
缓存 关系型数据库 MySQL
MySQL 索引优化与慢查询优化:原理与实践
通过本文的介绍,希望您能够深入理解MySQL索引优化与慢查询优化的原理和实践方法,并在实际项目中灵活运用这些技术,提升数据库的整体性能。
46 5
|
25天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
2月前
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
123 1
MySQL主从复制原理和使用
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
303 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
98 5
|
2月前
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
Mysql中搭建主从复制原理和配置