文档详情

MySQL数据库任务驱动式教程 项目十一 MySQL集群架构搭建实例.ppt

发布:2022-03-05约3.46千字共14页下载文档
文本预览下载声明
* 项目十一 MySQL集群架构搭建实例 * 项目十一 MySQL集群架构搭建实例 * 项目十一 MySQL集群架构搭建实例 内容 CONTENTS 导航 项目十一 MySQL集群架构搭建实例 MySQL数据库任务驱动式教程(第3版)(微课版) 任务26 Linux操作系统中搭建MySQL集群 【任务背景】 在现实生产环境中,随着业务的发展,数据库的承载能力会慢慢达到瓶颈(机器硬件性能、开发代码性能差等),导致单个数据库不足以满足现阶段业务需求,因此需要采用数据库集群与分布式架构来减轻单个服务器的压力。 【任务要求】 本任务从了解MySQL主从原理着手,理解主从同步机制。学习者应掌握MySQL的主从与互为主从的配置,对主从同步故障能快速定位故障点并进行错误排除。 认识MySQL主从 MySQL支持的复制的类型见表26.1。 MySQL支持的复制的类型 复制的类型 优点 缺点 基于语句的复制 (1)基于语句的复制基本就是执行SQL语句,这意味着所有在服务器上发生的变更都以一种容易理解的方式运行,出问题时可以很好的定位; (2)不需要记录每一行数据的变化,减少了bin-log日志量,节省I/O以及存储资源,提高性能 (1)对于触发器或者存储过程,存在大量bug; (2)很多情况下无法正确复制 基于行的复制 (1)bin-log会非常清楚地记录下每一行数据修改的细节,非常容易理解; (2)几乎没有基于行的复制无法处理的场景,对于所有的SQL构造、触发器、存储过程,其都能正确执行 (1)会产生大量的日志内容; (2)难以定位; (3)难以进行时间点恢复 混合类型的复制 默认情况下使用基于语句的复制方式,如果发现语句无法被正确复制,就切换成基于行的复制方式 认识MySQL主从 MySQL复制技术的特点 1.数据的分布 (Data distribution) 2.负载平衡 (Load balancing) 3.备份 (Backups) 4.高可用性和容错性 (High availability and failover) 复制技术使数据从一台MySQL主服务器Master复制一到一台或多台MySQL从属服务器Slave。因此,使用复制技术可以创建数据的本地副本以供远程站点使用,而无需永久访问主数据库实现远程数据分发。 数据写入和更新在主服务器Master上进行,数据读取和查询发生在一个或多个从属服务器(Slave)上,读写分离降低了master服务器的访问压力,负载平衡提高了性能。 主服务器(Master)数据被复制到从属服务器(Slave),并且从属服务器(Slave)可以暂停复制过程,在从属服务器上运行备份服务而不会破坏相应的主数据,保证数据的备份和数据安全。 实时数据可以在主数据库服务器(Master)上创建,而信息分析可以在从属数据库服务器(Slave)上进行,而不会影响主数据库服务器的性能。 认识MySQL主从 MySQL主从复制过程 复制的基本过程如下。 Slave上面的I/O进程连接上Master,请求从bin-log文件的指定位置(或从文件头部)之后的日志内容。 Master接收到来自Slave的I/O进程的请求后,I/O进程根据请求信息读取指定bin-log文件信息,返回给Slave的I/O进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置。 Slave的I/O进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚地告诉Master“需要从某个bin-log的哪个位置开始往后的日志内容”。 Slave的SQL进程检测到relay-log中增加了内容后,会马上解析relay-log的内容然后判断Master端哪些内容已经执行,并在自身执行。 认识MySQL主从 复制的过程如图26.1所示。 图26.1 复制的过程 MySQL主从详细配置 Master服务器配置 在my.cnf配置文件中,打开二进制日志,指定唯一的server-id,如图26.2所示。 创建主从连接账号,如图26.3所示。 MySQL 8.0版本的安全级别更高,必须先创建用户再设置密码。 mysqlcreate user rep@10.10.10.2; 同时,由于MySQL 80使用的是caching_sha2_password加密规则,为了避免SLAVE远程连接出现错误,最好修改远程连接用户的加密规则,并使用大小写加数字加特殊符号的密码策略限制。 mysqlALTER USER rep@10.10.10
显示全部
相似文档