当前位置: 首页 > news >正文

Lnmp架构之mysql数据库实战2

4、mysql组复制集群

一主多从的请求通常是读的请求高于写 ,但是如果写的请求很高,要求每个节点都可以进行读写,这时分布式必须通过(多组模式)集群的方式进行横向扩容。

组复制对节点的数据一致性要求非常高,因此要对所有的节点重新进行初始化:

编辑配置文件,根据实际情况修改主机名和网段

在server2上

只修改id和主机名

在server3上

根据实际情况修改id和主机名

在server1上查看组复制中的成员

测试:所有节点都可以写入数据

在server1上

在server2上

在server3上

5、mysql读写分离

延迟复制
如果在master端误操作,可以在slave端进行数据恢复,只需要停掉sql线程;
延迟只是延迟了sql ,IO已经复制过来了 ,数据已经在中继日志里保存起来了,只不过sql没有进行回放。

路由类似于代理 ,此实验组复制集群有三个节点 当外部应用在连接这个集群的时候,如果只连接其中一个节点,如果这个节点挂了,所以就得把它负载到其他节点,mysql 路由器 负责负载后端的节点。

在server4上

routing_strategy= round-robin  第一个访问11,第二个访问12,第三个访问13

routing_strategy=first-available 第一个可用的话就不会后面的,当第一个挂掉之后,才会到后面去

在mysql集群中创建远程测试用户

因为组复制集群,所以server2,server3上也会同步创建远程测试用户

在server1上

在server1,2,3上分别安装软件

7001端口是只读权限,顺序是11,12,13

当在server4上进行第一次执行时

server1与server4建立连接

在server4上进行第二次执行时

server1会与server4断开连接,server2与server4建立连接

7002端口为读写权限,调度列表顺序为13,12,11

在server4上第一次执行

与server3建立连接

当挂掉server3时

在server4上进行第二次执行则会与server2建立连接

6、mysql高可用架构

重新创建一主两从集群,在master端关闭mysql服务 /etc/init.d/mysqld stop ,

删除mysql文件,修改主配置文件重新初始化

master端重新初始化并建立用户

在slave端同样重新进行初始化(其他节点以此类推)

测试

在master端

在slave端

server2

server3

一主两从架构完成,进行MHA部署

做一个管理端在server4上

在server4上安装管理软件

管理端配置ssh免密传输,免密连接所有被控节点

复制客户端软件

在server1,sever2,server3上安装客户端软件

工具包

MHA配置


注释需要删除

每个节点上也必须要有免密连接,检测各节点的ssh免密连接

在master端设置mysql管理员权限,slave节点自动同步

检测主从复制集群状态

实验环境搭建完成。

7、mysql高可用切换

(1)手动切换

master正常时,12会接管11成为master,原始的master会变成新的slave

检测(11和13都指向的master是12)

当停掉server2这个master,slave就无法进行连接

在管理端

11重新变成master,快速变成了一个一主一从的架构

12如何恢复成slave

需要手动修复,重新加入主从集群

(2)自动切换(主从集群正常,一主两从)

故障切换后会生成lock文件,需要手动删除

此时,停掉server1上的mysql

自动切换成功,在13上可查看

修复11,在11上打开服务

此时,又构成了一主两从架构,12是master,11,13是slave

最后,删除管理端因为故障切换生成的的lock文件,以避免影响后面的操作


加入故障切换和在线切换脚本并对其做出相应的修改

测试

查看管理端日志,重新切换成功

恢复12的slave端

手动恢复

再进行一次手动切换

删除自动切换生成的锁定文件

手动切换不会生成锁定文件,VIP会随着master的改变而漂移

相关文章:

Lnmp架构之mysql数据库实战2

4、mysql组复制集群 一主多从的请求通常是读的请求高于写 ,但是如果写的请求很高,要求每个节点都可以进行读写,这时分布式必须通过(多组模式)集群的方式进行横向扩容。 组复制对节点的数据一致性要求非常高&#xff…...

【软件工程_设计模式Designer Method】三类?23种常用设计模式?-简介-作业一

设计模式?what? what is Design pattern??? 是一套反复被使用的、经过分类编目的、家喻户晓的、代码设计经验的总结。 它是 软件工程的一块基石。 “ 设计模式是软件工程中一种通用的,可复用的一种解决方案…...

信号相关的函数

#include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); -功能&#xff1a;给任何进程pid&#xff0c;发送任何信号sig 参数&#xff1a; pid: >0:将信号发送给指定的进程 0&#xff1a;将信号发送给当前的进程组 -1&#xff1a;将信号发送…...

matlab实现杨氏双缝干涉实验可视化界面

关于杨氏双缝干涉实验的条纹光强理论推导和matlab绘图可以参考下面的链接&#xff1a;杨氏双缝干涉实验matlab实现 接下来利用GUI实现可视化界面。 一、GUI GUIDE简介 1、在命令行窗口输入小写的guide可以自动弹出fig窗口。 2、界面的左侧是常用的工具&#xff0c;鼠标悬停…...

【SQL】统一训练平台数据库实践--20230927

储存过程vlookup_peopledata_csodtraining 默认导出用今天批次的数据进行join on&#xff0c;先删除过渡表的资料&#xff0c;再将查询结果放在过渡表中。 BEGINDECLARE startdate varchar(50);SET startdate date_format(NOW(),%Y%m%d);DELETE FROM season.csod_data2;INSE…...

全国职业技能大赛云计算赛项---Linux系统调优案例

全国职业技能大赛云计算赛项---Linux系统调优案例 Linux系统调优案例&#xff1a;OpenStack平台调度策略优化:OpenStack平台镜像优化&#xff1a;OpenStack平台I/O优化&#xff1a;OpenStack 平台内存优化&#xff1a;Linux 系统调优-防止SYN 攻击&#xff1a; Linux系统调优案…...

Docker部署ZooKeeper分布式协调服务

1、准备工作 docker pull zookeeper:3.6.3 Pwd"/data/software/zookeeper" mkdir -p ${Pwd}/{logs,data,conf}2、创建TEST容器&#xff0c;将conf目录COPY出来&#xff0c;在映射进去&#xff0c;方便后续维护管理&#xff01; docker run -itd --name zookeeper z…...

算法 出现次数超过一半的数字-(哈希+摩尔投票)

牛客网: BM51 题目: 数组中只有1个数字出现次数超过一半&#xff0c;找出这个数字 思路: 投票计数vote0, 遍历数组&#xff0c;vote为0时&#xff0c;num赋值为当前值, num与当前值相等时&#xff0c;vote增加, 否则vote减小&#xff0c;只有1个数字出现次数超过一半&#xf…...

如何搭建游戏平台?

搭建游戏平台是一个复杂的任务&#xff0c;涉及多个方面的工作。下面是一些关键步骤和注意事项&#xff0c;以帮助您搭建游戏平台&#xff1a; 平台开发&#xff1a;开发游戏平台的关键部分&#xff0c;包括网站或应用程序的开发、数据库设计、用户界面设计、游戏上传和管理工具…...

【华为OD机试python】数字反转打印【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述: 小华是个很有对数字很敏感的小朋友,他觉得数字的不同排列方式有特殊美感。 某天,小华突发奇想,如果数字多行排列,第一行1个数,第二行2个,第三行3个, 即第n行有n个数字,并且奇数行…...

MATLAB配置编译器(包括vs和mingw)

版本&#xff1a;matlab2022b&#xff0c;VS2022&#xff0c;mingw&#xff1a;8.1.0 之前安装好了matlab和vs后&#xff0c;在matlab的命令行输入 mex -setup时&#xff0c;自动找到并且配置好了vs编译器&#xff0c;可能是应为二者安装在了同一个根目录下&#xff0c;比如都在…...

基本网络协议

TCP 协议 TCP 协议是一种传输控制协议&#xff0c;是一种面向连接的传输层协议,它提供高可靠性的通信高可靠性:数据无错误,数据无丢失,数据无失序,数据无重复到达。 TCP 协议头部结构 下图是 TCP 协议的头部结构&#xff0c;如图&#xff1a; 16 位端口号&#xff1a; 告知主机…...

Tungsten Fabric Rabbitmq故障处理

开源SDN软件Tungsten Fabric&#xff08;以下简称TF&#xff09;有时莫名其妙出现服务宕机情况。 使用TF自带工具contrail-status排查&#xff0c;多数时候是rabbitmq出现宕机&#xff0c;或者某个组件连接rabbitmq出错。 本次仅排查、处理rabbitmq问题。 1. 查rabbitmq日志发…...

sqlServer 检测慢 sql

部署监控: 部署慢SQL与死锁跟踪 Skip to end of metadata 仅SQL Server 2012及以上版本可用. 执行前请确保路径正确! 慢SQL定义:执行时间超过0.5秒即定义为慢SQL,会被捕获。 SSMS中新建查询窗口,将下面代码贴上后执行。 该代码会新建一个[YX_Monitor]库,库中包含[Deadloc…...

Mac电脑音视频播放器: Infuse for Mac中文

Infuse是一款流行的多媒体播放器应用程序&#xff0c;适用于iOS、tvOS和macOS平台。它由Firecore开发&#xff0c;旨在提供出色的媒体播放体验&#xff0c;并支持广泛的视频和音频格式。 以下是Infuse的一些主要功能和特点&#xff1a; 多媒体格式支持&#xff1a;Infuse支持…...

优化积分商城页面的8个实用技巧

积分商城是私域营销的强大工具&#xff0c;能够帮助企业吸引并留住客户&#xff0c;提高销售和客户忠诚度。然而&#xff0c;为了确保积分商城发挥最大效益&#xff0c;需要对其页面进行优化&#xff0c;以提供用户友好的体验。本文将介绍8个实用的技巧&#xff0c;帮助您优化积…...

Python机器学习实战-特征重要性分析方法(2):内置特征重要性(附源码和实现效果)

实现功能 一些模型&#xff0c;如线性回归和随机森林&#xff0c;可以直接输出特征重要性分数。这些显示了每个特征对最终预测的贡献。 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomForestClassifier import matplotlib.…...

vue中v-for和v-if同时使用的解决办法

在一个列表中&#xff0c;如果同时要遍历&#xff0c;并且根据某个条件控制某个列表项是否显示&#xff0c;如下代码是错误的&#xff1a; <ul><li v-for"item in list" v-if"item.show" :key"item.id">{{item.name}}</li> &…...

【解决方法】树莓派4B安装wiringpi失败、gpio -v与gpio readall命令not found(arm64架构)

问题描述 树莓派信息&#xff1a;#4B# #64位# #aarch# 使用 gpio -v 或 gpio readall 命令时显示 cmmand not foung安装好 RPi.GPIO &#xff08;安装命令&#xff1a;pip install RPi.GPIO&#xff09;仍旧不能使用上述命令安装好 wiringpi 结果报错 wiringpi:armhf 原因分析…...

oracle 递归

1&#xff09;此方法&#xff0c;父亲state 9999&#xff0c;儿子state ! 9999&#xff0c;儿子能查询出来 select * from T_ORGANIZATION ot where ot.state!9999 start with ot.id 7 connect by prior ot.id ot.ORG_PARENTID order by ot.id asc 2&#xff09;此方法…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...