【高级篇】主从复制与高可用性:构建坚若磐石的数据库基础设施(十二)

引言

在上一章《备份与恢复》中,我们深入探讨了如何通过各种备份策略和恢复技术,确保数据的安全性和业务的连续性。然而,为了应对更大规模的业务挑战和灾难恢复需求,仅仅依靠备份是不够的。本章,我们将聚焦于MySQL的主从复制与高可用性技术,从原理到实践,从配置到优化,全方位解析如何构建一个既可扩展又具备高可用性的数据库架构。

1. 主从复制原理与配置

主从复制是MySQL中实现数据冗余与读写分离的关键技术,它通过在多个服务器间同步数据,不仅提高了系统的可用性,还增强了读取性能。
在这里插入图片描述

1.1 复制原理详解

主从复制依赖于二进制日志(Binary Log),主服务器上的所有更改操作都会被记录在二进制日志中。从服务器通过I/O线程读取这些日志,并通过SQL线程在本地执行,从而实现数据的同步。

(1) 主服务器写操作

当主服务器接收到客户端发送的SQL写操作(例如INSERT、UPDATE、DELETE)时,这些操作首先会被解析并执行。执行过程中,MySQL会将这些操作记录在二进制日志(Binary Log)中。这个日志记录了数据库的所有更改,但不包含查询(SELECT)语句,因为它们不会引起数据状态的变化。

关键点

  • 每个写操作都会生成一个事件(Event),并在二进制日志中按顺序记录。
  • 日志记录是事务安全的,即只有在事务成功提交后,相关的事件才会被写入日志。
(2)二进制日志生成

一旦写操作完成并提交,相应的事件就会被写入二进制日志。这些事件包含了足够的信息来在从服务器上重放这些操作,包括执行的SQL语句、受影响的行以及执行前后数据的状态变化。

关键点

  • 二进制日志文件是循环使用的,当达到一定大

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序猿大战Python——Python与MySQL交互一

pymysql模块的安装 目标:了解如何安装pymysql模块? 当要使用Python和MySQL数据库进行交互,需要借助一个第三方模块:pymysql。 在使用pymysql模块前,先进行安装: pip install pymysql 有时使用pip instal…

iptables(11)target(SNAT、DNAT、MASQUERADE、REDIRECT)

简介 前面我们已经介绍了ACCEPT、DROP、REJECT、LOG,这篇文章我们介绍SNAT、DNAT、MASQUERADE、REDIRECT,这几个参数的定义我们在上篇文章中都有介绍,我这里再列出回顾一下 DNAT(目标地址转换)和 SNAT(源地址转换) 原理:修改数据包的源或目标 IP 地址。通常用于 NAT(…

制造业“智改数转”背景下,产品经理考取NPDP证书的重要性

在“智改数转”(智能化改造和数字化转型)已成为推动制造业高质量发展的关键路径背景下,作为连接市场需求与产品实现的关键角色,产品经理的角色愈发重要。而考取NPDP(新产品开发专业人士认证)证书&#xff0…

VBA 进度条(2)

1.前提 1-1. 在VBA编辑器找到工具-引用-勾选MicroSoft Visual Basic for Applications Extensibility Library 1-2. 信任中心 -> 宏设置 -> 开发人员宏设置 -> 选中“信任对VBA工程对象模型的访问” 2.类模块 Private objApp As Object Private u…

Mysql进阶-索引-使用规则-索引失效情况二(or连接的条件、数据分布影响)

文章目录 1、or连接的条件1.1、展示 tb_user 索引1.2、查询 id10 or age231.3、执行计划 id10 or age231.4、给 age 创建 索引1.4、执行计划 phone17799990004 or age23 2、数据分布影响2.1、查询 tb_user2.2、查询 phone >177999900202.3、执行计划 phone >177999900202…

Java 自定义jackson2序列化器遇到的问题

问题1:java: 错误: 不支持发行版本 5 修改idea java环境 问题2:ClassNotFoundException: com.fasterxml.jackson.annotation.JsonMerge 缺少 jar 包:jackson-annotations 引入依赖的地址:https://mvnrepository.com/artifact/c…

【深度学习】【Lora训练3】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

为了便于使用,构建一个docker镜像来使用秋叶包。2024年6月26日。 docker run -it --gpus all -v /ssd/xiedong:/datax --net host kevinchina/deeplearning:pytorch2.3.0-cuda12.1-cudnn8-devel-xformers bashgit clone --recurse-submodules https://github.com/A…

如何实现智慧农田的精准灌溉

如何实现智慧农田的精准灌溉 智慧农田的精准灌溉是现代农业技术发展的重要组成部分,它集成了物联网、大数据分析、人工智能以及现代水利技术,旨在通过实时监测土壤湿度、气象条件及作物生长状况,实现水资源的高效利用和作物产量、品质的双重…

学习记录698@基带传输和频带传输基础

还是在学习计算机网络物理层时遇到这些知识点,这里简单的记录一下,主要都是通信专业的知识 基带传输 信源发出的原始信号叫做基带信号,基带信号分为模拟基带信号与数字基带信号。基带信号一般是低频成分,适合在具有低通特性的有…

使用uniapp.pageScrollTo方法进行页面滚动

先看看是不是你想要的: 需求: 有个填写数据的单子在提交的时候,会对必填项做校验,如果必填项没有数据的话,必填项校验生效给出提示,并且页面滚动到第一个需要填写数据的地方。 开发: 因为这个…

flutter是app跨平台最优解吗?

哈喽,我是老刘 最近在知乎上看到这样一个问题 我们先来解释一下问题中碰到的几个现象的可能原因,然后聊聊跨平台的最优解问题 问题解释 1、跟手、丝滑问题 这个问题其实很多人是有误解的,觉得原生的就丝滑跟手 其实不是这样的 我在做Flut…

一键生成AI动画视频?Animatediff 和 ComfyUI 更配哦!

大家好我是极客菌! 之前我分享过 Animatediff 在 WebUI 中的应用,最近不是在分享 ComfyUI 嘛,那我们也来讲讲 Animatediff 在 ComfyUI 的应用。 如果从工作流和内存利用率的角度来说,Animatediff 和 ComfyUI 可能更配一些&#…

Python 语法基础二

7.常用内置函数 执行这个命令可以查看所有内置函数和内置对象(两个下划线) >>>dir(__builtins__) [__class__, __contains__, __delattr__, __delitem__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getitem__, __gt…

API-元素尺寸与位置

学习目标: 掌握元素尺寸与位置 学习内容: 元素尺寸与位置仿京东固定导航栏案例实现bilibili点击小滑块移动效果 元素尺寸与位置: 使用场景: 前面案例滚动多少距离,都是我们自己算的,最好是页面滚动到某个…

【研究】美国2023年就业增长可能是假的?加州已经爆出大雷

美国就业市场可能比火热的非农数据所描绘的场面惨淡得多。 去年以来,美国劳动力市场顶着二十多年来最高的利率一路高歌猛进,让许多市场分析人士开始怀疑数据的准确性。尽管官方报告显示就业形势向好,但越来越多的证据表明,实际情…

校园圈子小程序系统搭建需求和需要哪些功能?APP小程序H5前后端源码交付

功能:小程序授权登陆,支持app双端,小程序,h5,pc端,手机号登陆,发帖,建圈子、发活动。可置顶推荐帖子,关注、粉 丝、点赞等。可作为圈子贴吧、小红书、校园社区、表白墙、…

韩国锂电池工厂火灾:行业安全警钟再次敲响

三天前,6月24日上午,韩国京畿道华城市一电池厂突发火灾,造成严重人员伤亡,其中包括多名中国籍员工。这一事件不仅令人痛心,更为全球锂电池行业安全敲响了警钟。 事发当天,电池厂内堆放锂电池成品的区域突然…

深度神经网络(dnn)--风格迁移(简单易懂)

概括 深度神经网络(DNN)在风格迁移领域的应用,实现了将一幅图像的艺术风格迁移到另一幅图像上的目标。该技术基于深度学习模型,特别是卷积神经网络(CNN),通过提取内容图像的内容特征和风格图像的…

CAD2012 网络许可和单机切换

由于公司使用的CAD2012 是网络租借许可的方式,如果许可有限,使用人数比许可数多,就会出现争抢问题。出现有些人得不到许可(遇到公司不增加许可真的很坑B,因为A抢上了可能C被迫掉了,C上去O可能掉&#xff0c…

Oracle 19C19.3 rac安装并RU升级到19.14

19C支持RU补丁安装。 下载好19.14的RU补丁 [rootrac1 soft]# ll total 9830404 -rw-r--r-- 1 grid oinstall 3059705302 Jun 18 15:26 LINUX.X64_193000_db_home.zip -rw-r--r-- 1 grid oinstall 2889184573 Jun 18 15:27 LINUX.X64_193000_grid_home.zip -rw-r--r-- 1 grid …