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

第2讲 配置和管理复制拓扑

目录1.什么是MySQL复制何时使用MySQL复制1概念2应用场景【1】水平横向扩展【2】商业智能与分析在正式介绍其用途前我们先理清两个概念---OLTP和OLAP2.为什么配置复制不能用socket通信3.如何配置复制主服务器1启用TCP/IP网络2启用二进制日志3创建具有复制权限的用户4备份主数据库作为从属服务器开始复制的起点5如果不使用GTID全局事务唯一标识则记录日志坐标一般生产中都会用到4.如何配置从属服务器1从主服务器备份恢复2在每个从属服务器上发出CHANGE_MASTER TO语句包含3执行备份后立即在主服务器上执行SHOW_MASTER_STATUS4若采用多源复制在CHANGE_MASTER TO语句时还应该添加FOR CHANNEL语句区分主服务器的传输通道5.简要介绍复制过滤规则6.分析异步复制和同步复制7.简述二进制日志工作方式8.什么是故障安全复制1二进制日志是故障安全的2将从属服务器状态日志存储在表中以进行故障安全复制1.什么是MySQL复制何时使用MySQL复制1概念MySQL复制是指使服务器将更改复制到另一个实例。依靠主服务器master将所有数据和结构更改记录到二进制日志中、从属服务器slave从主服务器请求二进制日志并在本地应用其内容和中继从属服务器作为一个从属服务器的主服务器来实现。主/从属服务器是一对多的关系它可以构建出三种复杂的拓扑结构双向拓扑、循环拓扑、多源复制。双向拓扑表示在两个主服务器中每个主服务器都是另一个主服务器的从属服务器循环拓扑结构里任意数量的服务器中每个主服务器且是另一个主服务器的从属服务器、对任何主服务器的更改都将复制到其他主服务器且并非每个从属服务器都必须是主服务器多源复制允许一个从属服务器接收来自多个主服务器的事务。对于这种复杂的拓扑结构存在明显的复制冲突每个服务器上冲突行的最终值由每个主服务器上应用事件的顺序有关所以应该尽量避免。2应用场景【1】水平横向扩展当服务器需要通过增加更多的节点来分担请求压力从而提升系统的整体处理能力吞吐量时我们需要采用MySQL复制。并且客户机的写操作应发送到复制主服务器只有一台服务器接收写操作以避免冲突读取操作应分布在配置负载均衡的从属服务器之间。这里你可能会有疑惑我本来业务都够多了我还要新增这么多设备还要同步数据这工作量不就不减反增了吗就比如你开一家奶茶店一开始你只有1个店员那么高峰期就会一直排队假设1个店员每5分钟能处理1个业务那10个客户就要花费50分钟。但如果你又新开了两家店每店一个店员那么50分钟它们能处理30个客户虽然工作效率没变甚至可能因为要在后台中同步账单花费更多时间但整体上能同时处理的业务量更多了吞吐能力单位时间内系统能够成功处理的数据量或请求数更强【2】商业智能与分析在正式介绍其用途前我们先理清两个概念---OLTP和OLAP高并发与高吞吐之间存在冲突因为高并发要求快速响应其实现逻辑可以参照Linux专栏中对于进程管理章节的描述它适合处理大量短小快速、高交互性、频繁读取IO的请求。但对于单个请求可能扫描几百万行数据进行复杂聚合排序连接的需要占用大量内存和CPU计算量要求高要求尽量短时间处理更多的量。如果让高吞吐任务在高并发系统中运行它会吞走所有CPU和IO资源造成等待甚至卡死所以高并发和高吞吐之间需要做好协调。对于一个电商系统为了应对白天用户疯狂下单、支付、查询库存等操作需要及时响应避免卡死造成数据丢失所以采用高并发场景这种称为事务型系统OLTP。对于夜间查看报表、用户行为分析等高吞吐的复杂查询处理采用分析型系统OLAP。商业智能BI查询需要从订单表、商品表、事件维度等多个大表中读取数百万甚至上亿行数据吞吐量高全表扫描和复杂连接占用大量资源容易造成死锁现象。而MySQL复制技术让主库只处理高并发的交易写从库处理高吞吐的分析读实现“负载隔离将不同类型的业务负载分离开来运行在不同的数据库节点或实例上”保证了交易系统的稳定工作。【3】地理数据分布使用本地应用程序为本地用户提供服务用户的数据缓存或存储在本地节点上这样用户请求时直接访问本地服务器集群写的是主服务器减少网络传输距离降低延迟。并将与位置无关的数据复制到其他地方的从属服务器数据下发和数据汇总各地与本部间是多源复制关系【4】特定分析使用BLACKHOLE存储引擎存储引擎是和表绑定的该存储引擎特点就是只记录日志修改记录但是不存储数据即写入结果你从属服务器要给我存储但我只记录改了些啥数据给丢弃了进行中继服务器上的复制时中继服务器把业务扔给从属服务器跑但自己只记录修改历史。但如果写过程故障可能导致数据丢失但从属服务器损坏可以通过迁移日志解决【5】高可用性在多台服务器间提供冗余并实施受控切换硬件或系统升级期间使用副本代替生产服务器或滚动升级从属服务器版本必须比主服务器新。2.为什么配置复制不能用socket通信套接字socket是用于两个进程间的通信服务器往往在不同设备上它们的文件系统不一样无法实现通信所以只能用tcp通信3.如何配置复制主服务器1启用TCP/IP网络2启用二进制日志在复制过程中每个主服务器将其日志内容发送到每个从属服务器3创建具有复制权限的用户第一个*表示任何库第二个*表示任何表。用户名后面加和主机名是因为在数据库中有些服务器可能用作特殊处理所以有些用户需要被限制登录加主机名用户就只能在特定从属服务器上登录mysql CREATE USER userslave_hostname IDENTIFIED BY password; mysql GRANT REPLICATION SLAVE ON *.* TO userslave_hostname;4备份主数据库作为从属服务器开始复制的起点这个意思就是你需要确保分配给从属服务器任务前让其同步主服务器的历史数据确保它能知道怎么操作及处理的对象5如果不使用GTID全局事务唯一标识则记录日志坐标一般生产中都会用到GTID记录在复杂系统中一个事务到底是在哪个机器上最早执行的每个服务器都有一个server_uuid标识的UUID怎么查看SELECT server_uuid\G加上它的事务编号构成GTID这样通过GTID用户就能知道复制顺序。同时设置了GTID的话进行故障转移时只需在从属服务器上发出单个CHANGE MASTER TO语句即可绕过主服务器系统会自动判断是否应用事件能有效减少数据不一致性出现使用以下选项可以设置GTIDgtid-modeON启动GTID复制功能enforce-gtid-consistency所以在主服务器上执行的事务必须是能被正确记录和复制的不能有非确定操作log-slave-updates将从属服务器接收到的复制事件记录到二进制日志4.如何配置从属服务器1从主服务器备份恢复若使用GTID后面我都只按使用GTID来讨论验证是否设置了gtid_purged变量2在每个从属服务器上发出CHANGE_MASTER TO语句包含【1】主服务器的网络位置MASTER_HOST和 MASTER_PORT【2】具有复制权限的用户名及其口令MASTER_USER和MASTER_PASSWORD【3】MASTER_AUTO_POSITION13执行备份后立即在主服务器上执行SHOW_MASTER_STATUS查看日志文件及其坐标确保备份后主服务器上没有用户活动保证日志坐标是备份前最后一个事件的坐标4若采用多源复制在CHANGE_MASTER TO语句时还应该添加FOR CHANNEL语句区分主服务器的传输通道5.简要介绍复制过滤规则当环境中不同服务器有不同目的时我们会采用过滤规则。例如专用于显示Web内容的服务器不需要从主服务器复制支付记录一样主服务器要是有300张表有200张表执行过修改从属服务器复制时只想要与自己业务相关的50张这样我们就想能不能让通往从属服务器的日志减少。 MySQL使用复制过滤器控制复制范围过滤器是应用于主服务器或从属服务器的服务器选项在主服务器是从源头上使用binlog-*过滤器从属服务器是应用replicate-*过滤器读取中继日志。过滤优先级为数据库过滤器replicate-do-db-do-表示只复制某部分, binlog-do-dbreplicate-ignore-db-ignore-表示不会复制某部分, binlog-ignore-db表过滤器replicate-do-table, replicate-wild-do-table-wild-表示使用通配符要匹配的replicate-ignore-table, replicate-wild-ignore-table使用通配符的数据库或表过滤器*-do-*过滤器*-ignore-*过滤器6.分析异步复制和同步复制异步复制是master上的bingo转储线程把二进制日志发送给从属服务器从属服务器上的IO线程接收后放到中继日志中里面有SQL线程应用该过程某一环节出故障后会造成数据库的数据不同步这在生产上需要避免的因此更常用同步和半同步复制。半同步复制是在异步复制基础上添加了一个插件只有至少一个从属服务器也和主服务器一样提交事务后不再阻止主服务器。这样能保证数据完整性但是牺牲了性能7.简述二进制日志工作方式二进制日志包含基于行和记录和基于语句从记录基于行的记录会把修改的所有行插入到从属服务器它的传输效率低且必须确保主从服务器使用相同的表结构基于语句的记录是在从属服务器上执行语句去修改行它的传输效率高且便于审计但是不能保证非确定性语句在远程机器上正确重放。它的恢复方式是一种是让你恢复到错误发生前任意时间点的方式一种是从备份时刻到当前时刻的完整数据重建。此外二进制日志通过轮转的方式自动管理何时应该生成新的二进制日志文件。轮转在MySQL重启、达到max_binlog_size值或发出FUSH LOGS语句时发生。可以通过使用SHOW BINARY LOGS或SHOW MASTER STATUS检查元数据或mysqlbinlog检查内容8.什么是故障安全复制它体现在两方面1二进制日志是故障安全的MySQL仅记录完成的事务避免不确定状态发生同时使用sync-binlog提高安全性。sync-binlog1则每次事务后写入文件以持久化sync-binlog0则操作系统根据调优配置集写入文件这种方式性能最好但风险最高将该值设为1的任何数会在该数量的事务后写入文件2将从属服务器状态日志存储在表中以进行故障安全复制使用master-info-repository和relay-log-info-repository选项把日志存储在表中表是故障安全的

相关文章:

第2讲 配置和管理复制拓扑

目录 1.什么是MySQL复制?何时使用MySQL复制? (1)概念 (2)应用场景 【1】水平横向扩展 【2】商业智能与分析 在正式介绍其用途前,我们先理清两个概念---OLTP和OLAP 2.为什么配置复制不能用soc…...

Using Vulkan -- Querying Properties, Extensions, Features, Limits, and Formats -- Enabling Features

本节讲解启用 features 的具体流程。 Category of Features Vulkan 中的所有 feature 可归为 / 查自以下 3 类: Core 1.0 Features 这些是 Vulkan 1.0 初始版本就提供的特性集合。特性列表可在 VkPhysicalDeviceFeatures 中找到。 Future Core Version Feature…...

问题解决方法:铺铜修改后无反应的完整排查与解决步骤

你已经把铜箔 / 内电层到焊盘的间距设为 0,但铺铜仍有间隙,这通常是热焊盘规则或铺铜未重建导致的,按以下步骤逐一解决:1. 先关闭热焊盘(发散连接)热焊盘会刻意在铺铜和引脚间留间隙,这是最常见…...

AI重构医疗生态:从技术赋能到临床革命,未来医疗已至

人工智能正在以一种不可逆的方式,渗透并重塑医疗健康行业。如果说过去几年,AI在医疗领域的应用还停留在影像识别、病历结构化、辅助问诊等单点突破,那么从2025到2026年开始,随着多模态大模型、可解释AI、联邦学习、数字孪生与端侧…...

【 Windows 操作系统】.bat 与 .ps1 的区别和作用

很多人“会用脚本”,但说不清脚本。 真正的差距,往往从 bat 和 ps1 的理解深度 开始拉开。一、为什么 Windows 会同时存在 .bat 和 .ps1?这是一个历史 架构演进的问题。.ps1 是 PowerShell 脚本文件的扩展名,用于编写和执行 Powe…...

Coruna 漏洞工具包曝光:苹果紧急推送 iOS 15.8.7,老 iPhone 正面临一场「无声围剿」

近日,苹果面向仍在使用 iOS 15 的老旧机型,紧急推送 iOS 15.8.7 安全更新,官方描述简短低调,却直指一个代号为 Coruna 的高危漏洞利用工具包。这不是一次常规迭代,而是一场针对数亿旧款 iPhone 的安全止损。 在移动安全…...

RAG技术解析:让大模型从“闭卷考试“到“开卷考试“的进化

RAG(检索增强生成)是一种结合检索与生成的AI架构,通过外挂知识库解决大模型的幻觉、缺乏专业知识和可解释性问题。工作流程分为索引、检索、增强、生成四阶段。企业应用广泛,包括知识助手、智能客服等。未来发展趋势包括GraphRAG、Agent增强RAG和多模态R…...

用大模型和RAG打造智能客服系统,小白也能轻松上手

本文详细介绍了如何利用大模型和RAG技术构建智能客服系统。通过分块处理企业文档、向量化存储和检索知识,系统能够理解用户意图、提供准确回答并支持多轮对话。相比传统客服的慢、笨、贵,该方案可降低70%成本,支持本地部署保障数据安全&#…...

“HALCON error #2404: Invalid handle type in operator do_ocr_multi_class_cnn

"HALCON error #2404: Invalid handle type in operator do_ocr_multi_class_cnn版本不一致的时候,安装群里的halcon20.11...

大模型学习宝典:零基础入门到项目实战的完整攻略

这篇文章提供了从零进入大模型领域的完整转型攻略,包括明确目标方向、掌握基础知识、学习大模型技术、实践项目、参与开源社区、推荐学习资源、职业发展建议和常见问题解答,帮助读者系统学习大模型技术并成功转型。 这里为你提供一份详细的转型攻略&…...

AI在线客服系统源码独立管理后台,自动回复文本、图片、视频等多种消息类型

温馨提示:文末有资源获取方式在数字化转型的浪潮中,企业客户服务的响应速度与智能化程度直接影响用户体验与品牌口碑。春哥团队基于PHP自主研发的微信AI智能在线客服系统源码,为企业打造了一套集智能交互、多媒体识别、知识库管理与人工协同于…...

基于卷积神经网络-门控循环单元的时间序列预测 CNN-GRU 基于MATLAB环境 替换自己的...

基于卷积神经网络-门控循环单元的时间序列预测 CNN-GRU 基于MATLAB环境 替换自己的数据即可 数据回归预测评价指标为RMSE R2 MAE MBE 最近在捣鼓时间序列预测的时候试了把CNN和GRU组队干活,发现这俩组合拳效果还挺有意思。直接把一维CNN当特征提取器,后面…...

C++智能指针:高效管理内存的利器

上篇文章:C算法:一维/二维前缀和算法模板题 目录 1.智能指针的使用场景 2.RAII和智能指针的设计思路 3.C标准库智能指针的使用 4.智能指针的原理 5.shared_ptr和weak_ptr 5.1shared_ptr循环引用问题 5.2weak_ptr 6.shared_ptr的线程安全问题 7…...

Linux系列四:SSH工具安装

由于我们企业开发时,Linux服务器一般都是在远程的机房部署的,我们要操作服务 器,不会每次都跑到远程的机房里面操作,而是会直接通过SSH连接工具进行连接操作。 进入正文: https://dl.hostbuf.com/finalshell3/finalsh…...

【跟韩工学Hadoop系列第3篇】Hadoop 单节点集群搭建(优化版)-003篇

文章目录Hadoop 单节点集群搭建(优化版)一、环境前置优化(基础层)1. 系统级优化(Linux)2. JDK 环境优化二、核心配置优化(功能层)1. 通用配置(core-site.xml)…...

Excel高级查询工具Pro版v3.0|跨平台浏览器端轻量级数据引擎

温馨提示:文末有联系方式为什么推荐升级至Excel高级查询工具Pro版v3.0? 突破传统Excel筛选局限,这不仅是一款增强型查询插件,更是一个嵌入浏览器的轻量级本地数据库系统——无需联网、不依赖Office,开箱即用。跨平台无…...

PTA 习题9-3 平面向量加法

本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1​ y1​ x2​ y2​”的格式给出两个二维平面向量v1​(x1​,y1​)和v2​(x2​,y2​)的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位&#xff…...

生产环境部署Spring boot时优化启动速度和内存的技巧

核心思路是减少类加载、精简依赖、优化JVM。一、 提升启动速度惰性初始化在 application.yml或启动命令中开启,让 Bean 只在首次使用时创建,大幅缩短启动时间:spring:main:lazy-initialization: true注意:可能隐藏依赖问题&#x…...

ADRC自抗扰控制器的Simulink仿真之旅:S函数构建ESO与TD模块

ADRC自抗扰控制器的simulink仿真,ESO和TD等模块使用S函数开发最近在研究控制算法这块,ADRC(自抗扰控制器)着实引起了我的兴趣。今天就来跟大家分享一下ADRC在Simulink中的仿真实现,特别是ESO(扩张状态观测器&#xff0…...

ServerBox安卓版SSH客户端推荐|高效远程服务器管理工具

温馨提示:文末有联系方式ServerBox安卓版:专为移动场景优化的SSH管理利器 ServerBox安卓版是一款面向Android平台深度优化的SSH终端工具,集安全性、稳定性与易用性于一体,让服务器管理不再局限于电脑端。核心功能全覆盖&#xff0…...

探索滑模控制的多元世界

滑模控制,SMC,滑模抖振削弱,模糊滑模,动态滑模,高阶滑模,反馈线性化滑模,滑模控制器参数寻优。在控制领域,滑模控制(SMC)就像一颗璀璨的明珠,以其…...

关于网络故障排查

ping和traceroute命令都是常用的工具ping命令主要用于检测网络联通性。通过发送ICMP(Internet Control Message Protocol)回显请求(echo request)报文并等待目标主机回应,可以确定目标主机是否在线以及网络传输的延迟和…...

2026 全球 AI 大模型实力榜:国产崛起与国际争锋的全新格局

2026 年,全球 AI 大模型行业迈入技术深水区与产业落地期双轨并行的新阶段,国际头部模型在超大参数、全模态能力上持续突破,国产模型则凭借本土化适配、垂直领域深耕、算力自主化实现弯道超车,不仅在核心性能上与国际顶尖模型差距持…...

WrenAI 深度解析:算法视角:wren-ai-service 如何利用 RAG 与 Metadata 提升 SQL 准确率?

在 Text-to-SQL 领域,尽管 GPT-4 等大语言模型(LLM)已经展现了惊人的代码生成能力,但在面对复杂的企业级数据库时,直接生成 SQL 的准确率往往不尽如人意。核心难点不在于 SQL 语法,而在于**“语义鸿沟”**&…...

2.斐波那契数列的题解

##题目的分析首先他是关于一个数列,第一项为1,第二项为1,从第三项起为前两项的和1.输入#测试数据的组数n#输入n组测试数据(每组数据代表数列的第几项)2.输出#对应第n项的数字(这个数字是前两项数字的和&…...

基于NI Linux RT和Veristand的实时仿真探索

基于Ni linux RT和veristand的实时仿真在工程与科研领域,实时仿真扮演着至关重要的角色,它能帮助我们在实际系统搭建之前,对各种设计进行验证和优化。今天咱们就来聊聊基于NI Linux RT和Veristand的实时仿真。 NI Linux RT简介 NI Linux RT是…...

字节面试官怒怼:RAG只会检索?大模型意图识别实战(非常详细),从入门到精通,收藏这一篇就够了!

直到上周一个学员面试的经历让我觉得必须补上这篇了:Query 理解与路由。 面试官问他:“用户在你们系统里输入’帮我算一下 A 款保险的理赔金额’,你的系统怎么处理的?” 他说:“先做 Embedding,然后去向量…...

【基于GasTurb的不同构型发动机性能对比】 GasTurb软件 1、涡桨、涡扇发动机等构型

【基于GasTurb的不同构型发动机性能对比】 GasTurb软件 1、涡桨、涡扇发动机等构型 2、在一样的推力需求下对比NOx排放差异 3、在不同的delta_T和高度下对比性能差异在航空发动机设计领域,GasTurb软件就像机械工程师的瑞士军刀。今天咱们拿它来折腾点有意思的——把…...

玩转T-Mats库:航空发动机气路故障仿真那些事儿

T-Mats库 涡扇发动机气路故障 数据 仿真模型】 1、包含部件流量、效率及压比故障在内的13类故障植入,故障程序和组合可自定义;航空发动机,典型气路故障仿真; 2、基于软阈值去噪处理后的信号序列提取了真实的运行扰动; 3、输出数据符合CMAPASS的排列要求。…...

电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,可以用于学习研究

电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,可以用于学习研究,才用了输出参考电压的方式来进行pwm调制。电导增量法的仿真模型在光伏圈子里都快被玩出花了,但说实话这算法确实稳得一批。今天咱们直接撸代…...