Lnmp架构之mysql数据库实战2

news2024/11/24 18:33:53

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的改变而漂移

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python多重继承

前面介绍的大部分的继承都是单继承,既一个子类只有一个父类,但是Python也支持多重继承,即一个子类可以有多个父类。多继承有复杂的父类冲突问题,大部分的面向对象语言都仅仅支持单继承,Python是为数不多支持多继承的语…

Python 判断回文数

"""判断输入的数是否为回文数介绍:回文数:数字从高位到低位正序排列和低位到高位逆序排列都是同一数值例如:数字 1221 无论正序还是逆序都是 1221知识点:1、获取字符串长度函数len()2、条件语句if/elif/else3、循环…

MySQL 高级(进阶) SQL 语句(二) -----存储过程

目录 1 存储过程 1.1 创建存储过程​ 1.2 调用存储过程 1.3 查看存储过程 1.4 存储过程的参数 1.5 修改存储过程 1.6 删除存储过程 2 条件语句 3 循环语句 1 存储过程 存储过程是一组为了完成特定功能的SQL语句集合。 存储过程在使用过程中是将常用或者复杂的工作预…

常用的软件项目管理工具有哪些?

在软件项目管理中,项目计划是工作中非常重要的一环,因此在选择软件项目管理工具时,除了任务管理、进度跟踪外,还需要关注软件的项目计划能力。 软件项目管理的工具有哪些?有什么好用的软件项目管理工具吗?…

windows 深度学习环境部署

1. 根据显卡配置安装适合的CUDA,查看显卡配置可在显卡控制面板上查看,安装是否成功可通过nvidia-smi查看;注意安装路径 https://developer.nvidia.com/cuda-toolkit-archive 2. 根据cuda安装合适的cudnn,需要注册NVIDIA cuDNN Archive | NVIDIA Devel…

记录一次关于嵌套事务传播机制的bug

1、具体问题 这段代码是A嵌套B,B嵌套C,遇到的bug是C代码发生异常进行事务标记(因为使用的传播行为是默认的REQUIRED所以要等A事务进行rollback,C加入了A事务只能暂时进行标记),但是由于B代码进行了异常捕获返回给了A信息并没有抛…

[C]精炼分析状态机FSM

FSM:finite state machine 【有限状态机】,用通俗的语言来表达就是逻辑流程图。 当前状态满足触发条件时,就会切换到下一个状态,并执行对应的任务操作。传统代码做法是用if-else 或者 switch-case来处理。若要做到可扩展性良好的…

【车联网/自动驾驶仿真学习】VEINS_CARLA安装指南

VEINS_CARLA安装指南 这是Veins团队开发的一个接口,能够实现veins和carla之间的数据传输,通过veins通信模块能够实现carla中感知决策等相关数据的传输。 github:veins_carlapaper:Poster: A Case for Heterogenous Co-Simulation of Cooperative and A…

MySQL 高级(进阶) SQL 语句(二) -----连接查询、union联集、case、正则表达式

目录 1 连接查询 1.1 内连接 1.2 左连接 1.3 右连接 2 UNION ----联集 2.1 交集值 2.2 无交集值 3 case 4 正则表达式 1 连接查询 准备工作: create database k1; use k1; create table location (Region char(20),Store_Name char(20)); insert into loca…

最新时间注入攻击和代码分析技术

点击星标,即时接收最新推文 本文选自《web安全攻防渗透测试实战指南(第2版)》 点击图片五折购书 时间注入攻击 时间注入攻击的测试地址在本书第2章。 访问该网址时,页面返回yes;在网址的后面加上一个单引号&#xff0c…

《从菜鸟到大师之路 Nginx 篇》

《从菜鸟到大师之路 Nginx 篇》 Nginx 简介 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行…

java面试题-学成在线项目

1、详细说说你的项目吧 从以下几个方面进行项目介绍: 1、项目的背景,包括:是自研还是外包、什么业务、服务的客户群是谁、谁去运营等问题。 2、项目的业务流程 3、项目的功能模块 4、项目的技术架构 5、个人工作职责 6、个人负责模块的详细说…

R统计绘图-线性混合效应模型详解(理论、模型构建、检验、选择、方差分解及结果可视化)

目录 一、 基础理论 二、数据准备 三、构建线性混合效应模型(LMMs) 3.1 lme4线性混合效应模型formula 3.2 随机截距模型构建及检验 3.3 随机截距模型分析结果解释及可视化 3.4 随机斜率模型构建、检验及可视化 四、线性混合效应模型选择 4.1 多模型比较 4.2 模型最优子…

003-第一代硬件系统环境搭建

第一代硬件系统环境搭建 文章目录 第一代硬件系统环境搭建项目介绍摘要结构部分电路部分软件部分 关键字: Qt、 Qml、 硬件、 系统、 搭建 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language&#…

Java编程的精髓:深入理解JVM和性能优化

文章目录 Java虚拟机(JVM)的核心概念1. 类加载器(Class Loader)2. 内存区域3. 垃圾回收(Garbage Collection)4. 类型转换和多态 JVM性能调优1. JVM参数调整2. 内存管理3. 多线程优化4. 使用性能分析工具5. …

服务注册发现_创建服务消费者

创建cloud-consumer-order80模块 pom文件添加依赖 <dependencies><!-- 引入Eureka client依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId&…

CompletableFuture-FutureTask结合线程池提升性能

使用线程池&#xff1a; 返回计算结果&#xff1a; 2.2.3 Future编码实战和优缺点分析 优点&#xff1a;Future线程池异步多线程任务配合&#xff0c;能显著提高程序的运行效率。 缺点&#xff1a; get()阻塞---一旦调用get()方法求结果&#xff0c;一旦调用不见不散&…

GEE:哨兵时间序列遥感数据和动态阈值方法计算物候时期EOS/SOS(2)

作者:CSDN @ _养乐多_ 本文将分享和解释论文《Improved Estimates of Arctic Land Surface Phenology Using Sentinel-2 Time Series》中使用到的基于阈值估算北极地区的植被物候,特别是北极地区的植被季节开始和结束的日期(SoS和EoS)的方法和代码。该方法使用的是使用哨兵…

Pytorch(GPU)环境安装

winR:启动cmd; 输入nvidia-smi 查看cuda的配置 (1) 安装CUDA 地址&#xff1a;https://developer.nvidia.com/cuda-downloads 详细参考&#xff1a;安装CUDA与CUDNN与Pytorch&#xff08;最新超级详细图文版本2023年8月最新&#xff09;_pytorch安装cudnn_LyaJpunov的博客-C…

Zookeeper-JavaApI操作

JavaApI操作 JavaApI操作1) Curator 介绍2) Curator API 常用操作a) 建立连接与CRUD基本操作b) Watch事件监听c) 分布式锁c.1) 介绍c.2) Zookeeper分布式锁原理c.3) 案例&#xff1a;模拟12306售票 JavaApI操作 1) Curator 介绍 Curator 是 Apache ZooKeeper 的Java客户端库。…