MySQL高可用

一、mysql路由

        1.利用路由器的连接路由特性,用户可以编写应用程序来连接到路由器,并令路由器使用响应的路由策略来处理连接来使其连接到正确的mysql数据库服务器

        2.mysql route的部署方式

                需要在所有数据库主机之外再打开一台主机mysql-router

                配置mysql-router

                vim /etc/mysqlrouter/mysqlrouter.conf

                [routing:ro]

                bind_address=0.0.0.0

                bind_port=7001

                destinations=172.25.254.10:3306,172.25.254.20:3306,172.25.254.30:3306

                routing_strategy=round-robin

                [routing:rw]

                bind_address=0.0.0.0

                bind_port=7002

                destinations=172.25.254.30:3306,172.25.254.20:3306,172.25.254.10:3306

                routing_stragegy=first-available

                启动mysqlrouter

                        systemctl  start  mysqlrouter.service

                建立测试用户:

                        create  user  xiao@'%'  identified  by  'xiao';

                        grant  all  on  xiao.*  to  xiao@'%';

                查看调度效果

                        watch  -1 lsof  -i  :3306

二、mysql高可用之MHA

        1.MHA是:高可用环境下故障切换和主从复制的软件

                           解决mysql单点问题

                           它可以在0-30s内自动完成故障切换操作

                            可以在故障切换的过程中最大程度保证数据的一致性

        2.MHA的组成:

                        其由MHAManage(管理节点),MHA Node(数据节点)

                        MHAManage可以单独部署到一台独立的机器上管理多个master-slave集群,也可以部署到slave节点上

                        MHAManager会定时探测集群中的master节点

                        当master出现故障时,会自动将最新数据的slave提升为新的master,然后将其他所有的slave重新指向新的master

        3.MHA的特点

                自动故障过程中,MHA从宕机的主服务器上保存二进制日志,最大程度保证数据不丢失

                使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器,因此可以保证所有节点的数据一致性

                MHA支持一主多从架构,最少三台服务器(一主两从)

        4.故障切换备选主库算法:

                最接近master的slave成为备选的master

                数据一致的情况下,按照配置文件顺序选择备选主库

                设定权重(candidate_master=1),按照权重强制指定备选主

                        默认情况下如果有一个slave落后master  100M的relay logs,即使由权重也会失效

                        如果check_repl_delay=0,即使落后很多日志,也强制选择其为备选主

        5.MHA部署实施:

                在master节点中:

                        vim  /etc/my.cnf

                         [mysqld]
                        datadir=/data/mysql
                        socket=/data/mysql/mysql.sock
                        server-id=1
                        log-bin=mysql-bin
                        gtid_mode=ON
                        log_slave_updates=ON
                        enforce-gtid-consistency=ON
                        symbolic-links=0

                        

                在其他两个从节点上的配置信息

                        vim  /etc/my.cnf

                         [mysqld]
                        datadir=/data/mysql
                        socket=/data/mysql/mysql.sock
                        server-id=1
                        log-bin=mysql-bin
                        gtid_mode=ON
                        log_slave_updates=ON
                        enforce-gtid-consistency=ON
                        symbolic-links=0

                

                配置MHA的管理环境:

                 编辑配置文件:vim  /etc/masterha/app1.cnf

                  [server  default]

                  user=root

                  password=test

                  ssh_user=repl

                  repl_password=test

                  master_binlog_dir= /data/mysql

                  remote_workdir=/tmp

                  secondary_check_script= masterha_secondary_check -s 172.25.254.10 -s
172.25.254.11

                  ping_interval=3

                 #发生故障后调用的脚本,用来迁移vip
                  master_ip_failover_script= /script/masterha/master_ip_failover

                  manager_workdir=/etc/masterha

                  manager_log=/var/etc/masterha/manager.log

                  [server1]

                  hostname=172.25.254.10

                  cnadidate_master=1        可能作为master主机

                  check_repl_delay=0        忽略复制延迟,在候选主切换过程中其一定为新的master

                  [server2]

                  hostname=172.25.254.20

                  candidate_master=1

                  check_repl_delay=0

                  [server3]

                  hostname=172.25.254.30

                  no-master=1                不会作为master的主机

  

                

   

               监控程序通过指定的配置文件监控master状态,当master出问题后自动切换并退出避免重复做故障切换

                masterha_manager  --conf=/etc/masterha/app1.cnf

                

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDD - 微服务架构模型_领域驱动设计(DDD)分层架构 vs 整洁架构(洋葱架构) vs 六边形架构(端口-适配器架构)

文章目录 引言1. 概述2. 领域驱动设计(DDD)分层架构模型2.1 DDD的核心概念2.2 DDD架构分层解析 3. 整洁架构:洋葱架构与依赖倒置3.1 整洁架构的核心思想3.2 整洁架构的层次结构 4. 六边形架构:解耦核心业务与外部系统4.1 六边形架…

LS和MMSE信道估计

1️⃣ LS(最小二乘)信道估计 OFDM系统的信道估计常在频域进行,因为OFDM本身就是基于频域的。频域模型可以表示为: Y ( f ) X ( f ) H ( f ) Z ( f ) Y(f)X(f) H(f)Z(f) Y(f)X(f)H(f)Z(f) 其中, Y ( f ) Y(f) Y(f)表…

C++ strcpy和strcat讲解

目录 一. strcpy 代码演示: 二.strcat 代码演示: 一. strcpy 使⽤字符数组可以存放字符串,但是字符数组能否直接赋值呢? ⽐如: char arr1[] "abcdef"; char arr2[20] {0}; arr2 arr1;//这样这节赋值可…

力扣257. 二叉树的所有路径(遍历思想解决)

Problem: 257. 二叉树的所有路径 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 利用先序遍历的思想,我门用一个List变量path记录当前先序遍历的节点,当遍历到根节点时,将其添加到另一个List变量res中&…

JVM运行时数据区域-附面试题

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…

向上调整算法(详解)c++

算法流程: 与⽗结点的权值作⽐较,如果⽐它⼤,就与⽗亲交换; 交换完之后,重复 1 操作,直到⽐⽗亲⼩,或者换到根节点的位置 这里为什么插入85完后合法? 我们插入一个85,…

数据库备份、主从、集群等配置

数据库备份、主从、集群等配置 1 MySQL1.1 docker安装MySQL1.2 主从复制1.2.1 主节点配置1.2.2 从节点配置1.2.3 创建用于主从同步的用户1.2.4 开启主从同步1.2.4 主从同步验证 1.3 主从切换1.3.1 主节点设置只读(在192.168.1.151上操作)1.3.2 检查主从数…

【题解】AtCoder Beginner Contest ABC391 D Gravity

题目大意 原题面链接 在一个 1 0 9 W 10^9\times W 109W 的平面里有 N N N 个方块。我们用 ( x , y ) (x,y) (x,y) 表示第 x x x 列从下往上数的 y y y 个位置。第 i i i 个方块的位置是 ( x i , y i ) (x_i,y_i) (xi​,yi​)。现在执行无数次操作,每一次…

FFmpeg工具使用基础

一、FFmpeg工具介绍 FFmpeg命令行工具主要包括以下几个部分: ‌ffmpeg‌:编解码工具‌ffprobe‌:多媒体分析器‌ffplay‌:简单的音视频播放器这些工具共同构成了FFmpeg的核心功能,支持各种音视频格式的处理和转换‌ 二、在Ubuntu18.04上安装FFmpeg工具 1、sudo apt-upda…

自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)

先修复上一次的bug&#xff0c;添加新指令&#xff0c;并增加图形界面 #include <graphics.h> #include <conio.h> #include <windows.h> #include <commdlg.h> #include <iostream> #include <fstream> #include <sstream> #inclu…

LeetCode:63. 不同路径 II

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;63. 不同路径 II 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]…

索引的底层数据结构、B+树的结构、为什么InnoDB使用B+树而不是B树呢

索引的底层数据结构 MySQL中常用的是Hash索引和B树索引 Hash索引&#xff1a;基于哈希表实现的&#xff0c;查找速度非常快&#xff0c;但是由于哈希表的特性&#xff0c;不支持范围查找和排序&#xff0c;在MySQL中支持的哈希索引是自适应的&#xff0c;不能手动创建 B树的…

EigenLayer联合Cartesi:打造面向主流用户的DeFi、AI等新用例

EigenLayer 与 Cartesi 正在开展合作&#xff0c;致力于弥合基础设施协议与终端用户应用之间的鸿沟&#xff1b;鼓励核心开发人员构建人工智能代理、复杂 DeFi、游戏、社交网络等应用场景&#xff1b;得益于 Cartesi 基于 Linux 的协处理器&#xff0c;开发者可复用现有软件库和…

DeepSeek-R1论文研读:通过强化学习激励LLM中的推理能力

DeepSeek在朋友圈&#xff0c;媒体&#xff0c;霸屏了好长时间&#xff0c;春节期间&#xff0c;研读一下论文算是时下的回应。论文原址&#xff1a;[2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 摘要&#xff1a; 我们…

MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译

感谢阅读 注意不含评估以后的翻译原论文地址标题以及摘要介绍部分MiniRAG 框架2.1 HETEROGENEOUS GRAPH INDEXING WITH SMALL LANGUAGE MODELS2.2 LIGHTWEIGHT GRAPH-BASED KNOWLEDGE RETRIEVAL2.2.1 QUERY SEMANTIC MAPPING2.2.2 TOPOLOGY-ENHANCED GRAPH RETRIEVAL 注意不含评…

Kafka中文文档

文章来源&#xff1a;https://kafka.cadn.net.cn 什么是事件流式处理&#xff1f; 事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础&#xff0c;在这个世界里&#xff0c;企业越来越多地使用软件定义 和 automated&#xff0c;而软件的用户更…

【学习笔记】深度学习网络-正则化方法

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

Flutter常用Widget小部件

小部件Widget是一个类&#xff0c;按照继承方式&#xff0c;分为无状态的StatelessWidget和有状态的StatefulWidget。 这里先创建一个简单的无状态的Text小部件。 Text文本Widget 文件&#xff1a;lib/app/app.dart。 import package:flutter/material.dart;class App exte…

浅色可视化大屏虽然经常被诟病,也有自己的用武之地呀

一、视觉舒适性与减轻疲劳 在长时间的使用和观察中&#xff0c;浅色可视化大屏能够为用户带来更舒适的视觉体验&#xff0c;减轻视觉疲劳。与深色背景相比&#xff0c;浅色背景通常反射的光线较少&#xff0c;对眼睛的刺激相对较小。尤其是在需要长时间盯着大屏进行数据分析…

Office / WPS 公式、Mathtype 公式输入花体字、空心字

注&#xff1a;引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 使用空心字时&#xff0c;一般不用斜体&#xff0c;取消勾选 “斜体”。 2、Mathtype 公式输入花体字、空心字 2.1 直接输…