Linux、MySQL--主从、MHA知识整理

本文介绍了Linux环境下的MySQL主从复制与MHA(Master High Availability)的原理和搭建过程,包括MHA的故障切换机制。同时,文章探讨了Linux的CPU、内存、I/O、磁盘容量和网络等五大负载的监控与优化,并对TCP协议进行了深入解析,对比了TCP与UDP的区别。此外,还涉及了内核管理、Nginx的使用及系统资源管理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.MySQL主从复制

二.MHA

2.1原理

2.2如何搭建MHA

三.Linux五大负载

3.1CPU

3.2内存

3.3 I/O

3.4磁盘容量

3.5网络

四.TCP协议

4.1TCP介绍

4.2TCP与UDP比较

五.内核

六.Nginx

七.知识体系分析


一.MySQL主从复制

主MySQL服务器做的增删改,都会写入自己的二进制日志(Binary log),然后从MySQL服务器打开自己的I/O线程连接主服务器,进行读取主服务器的二进制日志,备份写入到从服务器的中继日志(Relay log)当中,然后从服务器打开SQL线程,将中继日志中的数据重放到自己的服务器中,复制完成。
 

先复制一份表,做为临时表,保存在内存中,给与用户修改,当事务提交后,再将内存中的临时表数据修改、保存到磁盘中I/o sql线程主要用于主从复制
增删改查中查询和写入→消耗线程资源(是一种连接机制) mysql的线程池处理能力较差→多线程处理能力不够→并发处理能力不够→线程/任务处理能力进行优化redis + MQ

二.MHA

2.1原理

基于二进制日志故障备份+基于VIP的健康检查+故障自动切换(master→backup master)

2.2如何搭建MHA

① 首先搭建主从复制

② 软连接(一条是做MySQL命令,mysqlbinlog 软连接)

③ ssh 免交互

④ manager 提权

以上是MySQL集群的操作

node组件

在所有服务器上优先部署

→ 抢救

→ 同步中继日志

→ 在mha节点上的node组件还会汇总其他node组件的信息,用于将详细信息提供给Manager组件

manager

→ 维护mysql集群信息

→ 健康检查+故障切换

核心的配置文件 2个

master_ip_failover → VIP +VIP所在的虚拟接口,如下:

    my $vip ='192.168.226.200';       #浮动IP

    my $ifdev='ens33' ;                     #使用的网卡为ens33

    my $key='1';                                #虚拟接口

app1.cnf

    定义了mysql节点的主机(以server的方式来表示)

    定义了从节点信息

    可定义主备服务器(需要忽略检查策略)

→ 执行两个健康检查+启动MHA

→ 首次启动时,在master节点创建VIP

三.Linux五大负载

3.1CPU

排查cPU负载过高+CPü怎么看负载过大,多少的数值算是负载,多少算为高负载

→ CPU 占用过高 →进程级别

→ CPU 使用百分比 →哪个CPU 压力过高

3.2内存

内存使用过高,内存溢出out memory 怎么解决 → 内存过高的话,内存中的数据是否可以删除,如

何减缓压力,如何持久化后,再清理,如何选择性的清理内存中的数据 → redis

3.3 I/O

→ I/0负载过高,如何定义I/o的负载,read 和write速率或者压力是多大,多少算是负载

3.4磁盘容量

如何定位磁盘容量使用最高的目录/文件位置

→引申出:如果我的磁盘负载过高了,在定位到磁盘负载最高的文件/目录后,执行了删除(如何删除)删除后的话,发现磁盘的容量大小,没有发生变化,是什么原因?(inode号排除,进阶:排除进程占用)

3.5网络

防火墙、linux防火墙策略 、DNS 解析 → 假设我在网上申请了一个域名www.cat.com,发现无法进行解析,是啥情况 → 换一个DNS服务端,是解决方式之一、配置的安全组(云上)、防火墙的选择WAF防火墙,第三方的网络插件,使用的协议TCP为例

TCP协议中:重传机制

四.TCP协议

4.1TCP介绍

TCP/IP协议簇:指TCP和IP协议对应的通信协议

TCP/IP在数据包设计中使用了封装和分用的策略

封装:应用程序发送数据的过程中,每层都增加了一些首部信息,用于发送方与接收方这一层次进行交互

分用:对于不同通信、交互方式使用了不同的协议规范

TCP重要的机制:三次握手、四次挥手

为什么要三次握手:为了防止已失效的连接延迟后连接到server端,当server端收到请求后,会误认为是新建连接,然后会向Client端发送ACK建立连接,而Client端已经放弃了此次请求,也并不会向Server端发送数据,如此,server端就会浪费很多资源,所以第三次握手是为了解决这个问题,而如果为四次挥手的话再次确认会浪费资源

4.2TCP与UDP比较

直观意义而言,TCP就是有校验的UDP

比较而言:
TCP面向连接、UDP无连接

UDP(无连接)︰协议不能保证准确无误的传递到目的地,所以一般在短消息、或数据重要性较低的传输方式会使用到UDP

TCP(面向连接)︰目的为提高可靠的数据传输,建立虚拟连接是其特性,在数据包接受无序、丢失或者在交付期间被破坏时,负责数据恢复。通过给每个数据包绑定一个序列号来完成恢复

为了保证正确的接受数据,TCP要求在目标计算机成功收到数据时发回一个确认(ACK),如指定时限内美誉偶收到、则会重新传送数据包,若网络拥塞,重传机制会导致数据包重复,因序列号相同,所以接收端可以据此确定数据句是否为重复,可以活时丢弃

TCP逻辑通信信道为全双工可靠信道、UDP是不可靠信道

同时,这也是为什么三次握手的解释

五.内核

TCP控制

转发的控制

重定向

内存使用、分配

CPU使用、分配

端口使用范围

连接数

六.Nginx

Nginx使用的资源:

CPU

内存

磁盘容量

I/O

网络 → QOS → 工具优化 → 防火墙、流量清洗(重复流量筛选/过滩,可以由第三方软件/服务来完成,大数据),以上指的是连接的效率,以下指的是安全 → DDOS、CC、等等WAF防火墙→渗透、网络安全体系

→Nginx中返回各种服务端的状态码5XX

→配置文件

多台nginx一起组合
一种类型的nginx会做为反向代理使用
另一种Nginx类型,会做为专门的图片加载工具→ 内存/缓存型数据库

mysql

先复制一份表,做为临时表,保存在内存中,给与用户修改,当事务提交后,再将内存中的临时表数据修改、保存到磁盘中I/o sql线程主要用于主从复制
增删改查中查询和写入→消耗线程资源(是一种连接机制) mysql的线程池处理能力较差→多线程处理能力不够→并发处理能力不够→线程/任务处理能力进行优化redis + MQ

磁盘(固态SCSI 机械):RAID、LVM、quota

CPU:

划分CPU 资源比例
CPU 亲和NICE指优先级

10个
Nginx → 8个CPU

2个

七.知识体系分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值