通俗易懂:MySQL中如何设置只读实例并确保数据一致性?

在MySQL中设置只读实例主要应用于构建高可用性和扩展性的数据库环境,通常是为了分担读取负载或者用于备份和灾难恢复。以下是创建MySQL只读实例并确保数据一致性的基本步骤:

1. 创建并配置只读实例

-

主从复制设置

- 首先,你需要有一个主数据库实例(Master)负责接收所有的写操作。

- 创建一个或多个从数据库实例(Slave),并将它们配置为主数据库的复制品。这通常通过设置主从复制(Replication)来实现,其中从库会接收到主库binlog(二进制日志)并通过I/O线程和SQL线程将其应用到自己的数据库中,从而保持数据同步。

-

只读设置

- 在从库上,可以设置全局变量 `read_only` 为1,使实例变为只读模式。这可以防止任何非特权用户的写入操作:

SET GLOBAL read_only = 1;

- 对于更严格的只读控制,MySQL 5.7.8及更高版本引入了 `super_read_only` 变量,即使有超级用户也不能在该实例上执行写操作,除非禁用此变量。

-

同步延迟设置

(可选):

- 在某些场景下,你可以配置只读实例延时复制,这样从库会在一段时间后才应用主库的更改,这可以用于数据分析或回溯查询等目的。

2. 确保数据一致性

-

主从复制机制

MySQL通过二进制日志和基于GTID(全局事务标识符)的复制技术(从MySQL 5.6开始推荐使用)来保证主从之间的数据一致性。

- 主库上的每一次事务提交都会被记录到binlog中,从库按照相同的顺序和事务边界来执行这些操作,从而维持与主库相同的数据状态。

-

监控与故障转移

- 应持续监控主从复制的状态,确保从库跟主库没有复制滞后或错误。

- 如果主库出现问题,可以将某个最新的从库提升为主库,但在此之前需要确保其数据是最新的,并且已经停止了只读设置。

-

应用层处理

- 在应用程序设计时,应当考虑到只读实例可能存在的延迟,并确保在读写分离的架构中正确路由读写请求。

对于云服务商提供的RDS(如阿里云RDS、AWS RDS、华为云RDS等),通常会提供便捷的方式来创建和管理只读实例,包括自动化的主从切换、只读实例的读取延迟设置等功能。在设置只读实例时,平台会自动处理大部分复制配置工作,同时提供监控和告警工具来帮助管理员确保数据的一致性。【电影院排片选择】

假设光头强是一位影院经理,而熊二是他的助手。他们每天的工作之一是为电影安排放映场次及影厅。有两部电影《动画总动员》和《科幻大片》,观众反响都很热烈。

情况一:

- 《动画总动员》已经有一份详细的观众年龄与喜好调查报告(相当于索引),可以根据这份报告快速定位到目标观众群体;

- 《科幻大片》虽然受欢迎但没有具体观众数据,只能逐一通知所有会员(相当于全表扫描)。

光头强作为“查询优化器”,他需要决定是利用《动画总动员》的观众报告精准排片,还是对《科幻大片》进行全面宣传推送。

决策过程:

光头强评估发现,《动画总动员》的报告能高效锁定潜在观众,节省宣传成本,因此优先考虑在黄金时段为其安排影厅。而对于《科幻大片》,由于缺乏有效数据,可能会采取大面积宣传并在多个时间段试播,观察上座率后调整策略。

在这个例子中,光头强就如同MySQL查询优化器,他会基于现有信息(统计数据)来判断哪种“执行计划”(排片策略)能够更高效地达到预期效果(吸引更多观众观影),从而做出最佳决策。

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

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

相关文章

太绝了!34张思维导图搞定Web安全知识架构

推荐关注 越来越多的朋友开始了解网络安全,但是不知道从哪里下手,网上的资源也很散乱,没有头绪,经常做无用功。 今天给大家分享几份网络安全思维导图,非常适合零基础入门或想进一步学习的小伙伴。 注:文…

leetcode 不同路径

62. 不同路径 问题描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的…

【数据处理包Pandas】DataFrame数据选择的基本方法

目录 一、选择行/列(一)读取文件(二)选择行(三)选择列(四)选择多行多列 二、带条件筛选(一)startswith()方法(二)mean()方法&#xff…

本地运行github上下载的项目--接Git入门篇

1.了解项目 这是一个基于Spring Boot 和 Mybatis Plus 构建的Java项目,很经典的外卖项目,参考b站的黑马瑞吉外卖。 2.构建项目 SpringBoot项目,首先下载一些常见的项目要求的组件。然后配置如下: 看README,在阅读该…

如何查找局域网内连接设备的IP地址?

如何查找局域网内连接设备的IP地址? 第一种方法:通过CMD指令 在电脑开始菜单中找到运行,点击打开,输入CMD,然后回车,如下图所示, 如下图所示,输入ipconfig/all,然后回车, 如下图所示,此时会扫描出所有的连接设备的IP地址、MAC地址以及网关等信息, 这时候在cmd命令窗…

设置浏览器声音外放,其他声音耳机里放

需求描述: 我想在耳机里听歌,浏览器里的声音外放 找到这个面板 让浏览器的声音输出设为,扬声器

超图打开不同格式的dem文件

dem,数字高程模型; dem文件的后缀是什么? 有*.dem格式的,也有Raster,ASCII和Tiff类型的。Raster类型的是一个raster文件夹里面有很多不同格式的文件共同组成了DEM文件的内容。ASCII类型的是个txt文件。Tiff类型的也是一个文件夹…

SAP_PP模块相关底表

计划独立需求 PBIM物料独立需求PBED独立需求数据PBHI独立需求历史记录PBID计划独立需求指标预留/计划订单  RKPF 凭证抬头:预留RESB预留/依赖需求AFKOPP订单标题数据订单AFPO订单行项目PLAF计划订单生产订单  AUFK 订单主数据AFPO订单行项目AFKO订单抬头数据AFFL工作订单顺序…

Linux-command not found问题

一、telnet命令 1.检查telnet是否有安装 #有输出说明已安装,如果没有输出则没有安装 rpm -qa telnet #安装telnet yum install -y telnet #执行检查命令 [rootlocalhost ~]# rpm -qa telnet [rootlocalhost ~]# #安装telnet [rootlocalhost ~]# yum install -y tel…

Learning Discriminative Representations for Skeleton Based Action Recognition

标题:基于骨架的动作识别的学习判别性表示 原文链接:Learning Discriminative Representations for Skeleton Based Action Recognition (thecvf.com) 源码链接:https://github.com/zhysora/FR-Head 发表:CVPR 摘要 最近&…

面试题:MySQL 优化篇

定位慢查询 💖 开源工具 调试工具:Arthas(阿尔萨斯)运维工具:Prometheus(普罗米修斯)、Skywalking 💖 MySQL 慢查询日志 # 开启 MySQL 慢查询日志开关 slow_query_log1 # 设置慢…

代码随想录算法训练营第25天|216.组合总和III |17.电话号码的字母组合

216.组合总和III 如果把 组合问题理解了,本题就容易一些了。 题目链接/文章讲解:代码随想录 视频讲解:和组合问题有啥区别?回溯算法如何剪枝?| LeetCode:216.组合总和III_哔哩哔哩_bilibili class Soluti…

k8s入门到实战(七)—— 回顾:使用yaml文件配置pv、pvc、configmap部署mysql服务

实战:部署 mysql 服务 回顾加深 pv、pvc、configmap 删除所有 deployment、pv、pvc、configmap、StorageClass创建一个 nsf 挂载目录给 mysql mkdir -p /nfs/data/mysql创建 yaml 文件mysql-server.yaml # 创建pv apiVersion: v1 kind: PersistentVolume metadat…

vue——computed和methods的区别

computed和methods在Vue.js中都是用于处理数据和逻辑的方法,但它们之间存在一些重要的区别。 缓存机制:computed属性是基于它们的依赖进行缓存的。只有当它的相关依赖发生改变时才会重新计算。这意味着只要计算属性依赖的响应式属性没有发生变化&#x…

黑马鸿蒙笔记 3

目录 11.ArkUI组件-Column和Row 12.ArkUI组件-循环控制 13.ArkUI组件-List 14.ArkUI组件-自定义组件 15.ArkUI组件-状态管理State装饰器 16.ArkUI组件-状态管理-任务统计案例 17.ArkUI组件-状态管理-PropLinkProvideConsume 11.ArkUI组件-Column和Row Colum和Row的交叉…

QT-飞机水平仪图标

QT-飞机水平仪图标 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include <stdio.h> #include <stdlib.h> #include <string.h>#include <QtCore> #include <QtGui> #include <QDebug> #include <QTableWidget&g…

Oracle Solaris 11.3开工失败问题处理记录

1、故障现像 起初是我这有套RAC有点问题&#xff0c;我想重启1个节点&#xff0c;结果发现重启后该节点的IP能PING通&#xff0c;但SSH连不上去&#xff0c;对应的RAC服务也没有自动启动。 操作系统是solaris 11.3。由于该IP对应的主机是LDOM&#xff0c;于是我去主域上telnet…

Games101Homework【6】Code Part

特别标注&#xff1a;本文章为代码部分&#xff0c;比较水&#xff0c;如果想看解释的请看如下链接&#xff08;如果没有就说明还没写完&#xff09; main.cpp: #include "Renderer.hpp" #include "Scene.hpp" #include "Triangle.hpp" #inclu…

【BlossomRPC】接入注册中心

文章目录 NacosZookeeper自研配置中心 RPC项目 配置中心项目 网关项目 这是BlossomRPC项目的最后一篇文章了&#xff0c;接入完毕注册中心&#xff0c;一个完整的RPC框架就设计完成了。 对于项目对注册中心的整合&#xff0c;其实我们只需要再服务启动的时候将ip/port/servic…

Qt6.6添加多媒体模块Multimedia报错问题

问题 QT包含多媒体模块Multimedia时提示未知的模块&#xff1a; error: Project ERROR: Unknown module(s) in QT: multimedia 在帮助文档中只可以找到QMediaPlayer类&#xff0c;但是点进去是空的&#xff0c;这是因为没有安装多媒体模块及对应的帮助文档。 解决 使用在线…