背景说明 假设各位都已经安装好了 MySQL 数据库,本次操作采用的 MySQL 版本是 5.7.16。正好还有一台 Mac闲着,所以干脆就用两台物理机直接操作了,没有空闲机器的可以在虚拟机操作是一样的。 以最简单的一主一从配置。 主服务器:192.168.0.101 从服务器:192.168.0.108 数据库层的几种模式在系统架构中,数据库层主要有如下几种模式,分别是单点模式、主备模式、主从模式。 单点模式单点模式是最简单的模式,只有一台数据库服务器,部署最简单。但是存在单点风险,一旦这台服务器挂掉,整个系统也就挂掉了。 主备模式为了解决单点模式的风险,主备模式产生。目前,主备模式应该是各个线上服务系统的最低配置了,比如你在各个云平台购买的数据库服务一般都会开启备份功能。一旦主节点出现问题,还可以切换到备份节点,不至于整个系统瘫痪。 主备又分为一主一备、一主多备。多个备份是为了保证更高的安全性,万一主节点出现问题的时候,碰巧备份节点也出问题呢。 当主节点出现问题的时候要切换到备份节点,切换方式又分为手动切换和自动切换。手动切换具有一定的延时,当主节点出现问题时,只能等运维人员发现或者收到系统通知。 主从模式主从配置一般都是和读写分离相结合,主服务器负责写数据,从服务器负责读数据,并保证主服务器的数据及时同步到从服务器。 主从模式又分为一主一从、一主多从和多主多从,越往后部署越复杂,同时,系统稳定性更高。主从模式可以更好的分担数据库压力,将插入更新操作和查询操作分开,提高系统整体性能。 本文的目的就是介绍一下简单的一主一从架构的配置和原理。 主从原理主节点1、当主节点上进行 insert、update、delete 操作时,会按照时间先后顺序写入到 binlog 中;2、当从节点连接到主节点时,主节点会创建一个叫做 binlog dump 的线程; 3、一个主节点有多少个从节点,就会创建多少个 binlog dump 线程; 4、当主节点的 binlog 发生变化的时候,也就是进行了更改操作,binlog dump 线程就会通知从节点 (Push模式),并将相应的 binlog 内容发送给从节点; 从节点当开启主从同步的时候,从节点会创建两个线程用来完成数据同步的工作。 I/O线程: 此线程连接到主节点,主节点上的 binlog dump 线程会将 binlog 的内容发送给此线程。此线程接收到 binlog 内容后,再将内容写入到本地的 relay log。 SQL线程: 该线程读取 I/O 线程写入的 relay log,并且根据 relay log 的内容对从数据库做对应的操作。 主从配置一般都是和读写分离相结合,主服务器负责写数据,从服务器负责读数据,并保证主服务器的数据及时同步到从服务器。 |