一、前言
MySQL数据库集群是一个分布式系统,它为处理大量数据提供了高可用性、可扩展性和改进的性能。MyCat是一个开源的数据库中间件,可以有效地构建这样一个集群。
MyCat通过提供数据分片、负载平衡和读/写拆分等功能,简化了MySQL数据库集群的管理过程。通过将数据分布在多个节点上,MyCat实现了并行处理,增强了查询性能,并提供了容错能力。
二、MySQL-Replication
MySQL复制,也称为主-从复制,是一个将数据从一个MySQL数据库(主数据库)自动复制到一个或多个其他MySQL数据库(从数据库)的过程。这种复制机制允许在数据库系统中实现数据冗余、提高性能和增强容错能力。
在MySQL复制中,主数据库是数据的主要来源,而从数据库则从主数据库复制数据。对主数据库所做的任何更改(如插入、更新或删除)都会自动传播到从属数据库,从而确保整个复制拓扑中的数据一致性。

1.Master数据库:Master数据库是数据的主要来源,它接收并处理来自应用程序或客户端的写入操作(数据修改)。
2.从数据库:从数据库从主数据库复制数据。他们接收并应用在主机上所做的更改,确保数据在所有复制副本中保持一致。
3.二进制日志:二进制日志是由主数据库维护的文件,以二进制格式记录所有数据修改(插入、更新、删除)。从数据库使用二进制日志来获取和应用更改。
4.复制线程:MySQL使用两个主线程进行复制:I/O线程和SQL线程。I/O线程从主线程读取二进制日志并将其发送到从线程。SQL线程从I/O线程接收复制的事件,并将它们应用于从属数据库。
三、实战案例
实验环境:五台服务器,其中四台安装MySQL5.7,修改主机名,所有服务器都配置域名解析(如下图)。

vim /etc/hosts

1.一主一从(M-S)(1)
(第一个实验只会用到master1、master2)
实验步骤:
在master1上操作:
<1>开启MySQL的二进制日志,进入MySQL的配置文件:/etc/my.cnf
[root@master01 ~]# vim /etc/my.cnf
在文件末尾添加:
log_bin
server-id=1
重启MySQL服务:[root@master01 ~]# systemctl restart mysqld
<2>创建复制用户:
[root@master01 ~]# mysql -uroot -p123456
mysql > grant replication slave, replication client on *.* to 'rep'@'192.168.188.%' identified by '123456';
<3>备份master1数据:
[root@master01 ~]# mysqldump -p'123456' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql
<4> 将备份的sql文件发送给master2:
[root@master01 ~]# scp -r 2023-08-17-mysql-all.sql master2:/tmp
<5> 观察二进制日志分割点:
[root@master01 ~]# vim 2023-08-17-mysql-all.sql
<6> 准备数据验证主从同步:mysql> create database master1db;
mysql> create table master1db.master1tab(id int);
mysql> insert into master1db.master1tab values(11111111);
在master2上操作:
<1> 测试rep用户是否可用:
[root@master02 ~]#<

本文介绍了MySQL数据库集群,其为分布式系统,可处理大量数据。MyCat作为开源数据库中间件,能简化集群管理。还阐述了MySQL复制机制,包括主从复制原理。并给出多个实战案例,如一主一从、双主双从配置,以及MyCat代理的配置与使用。


最低0.47元/天 解锁文章
1089

被折叠的 条评论
为什么被折叠?



