【mysql面试题】mysql复习之常见面试题(四)

news/2024/9/21 16:11:57 标签: mysql, 数据库

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

思考一下问题:

6、mysql 的复制原理以及流程

参考答案: 

MySQL 的复制功能是其核心特性之一,它允许从一个 MySQL 数据库服务器(主服务器)将数据和变更复制到另一个或多个 MySQL 数据库服务器(从服务器)。复制可以提高数据的可用性、负载均衡和数据备份。MySQL 主要支持基于二进制日志的复制。下面将详细介绍 MySQL 复制的原理和流程:

### 复制原理

MySQL 复制主要基于二进制日志(binary log)。这个日志文件记录了影响数据库状态的所有更改,如表的创建和数据的增删改等操作。复制过程包括三个主要组件:二进制日志、中继日志(relay log)和复制 IO/SQL 线程。

1. **二进制日志**:
   - 主服务器上的所有数据修改都会被记录在二进制日志中。这包括 DML(数据操纵语言)和 DDL(数据定义语言)操作。

2. **复制 IO 线程**:
   - 在从服务器上运行,负责从主服务器的二进制日志中读取日志事件,并将它们写入从服务器本地的中继日志。

3. **中继日志**:
   - 存储在从服务器上,接收从主服务器复制过来的二进制日志内容。

4. **复制 SQL 线程**:
   - 在从服务器上运行,负责读取中继日志中的事件,并将这些事件应用到从服务器的数据库中,从而实现数据的同步。

### 复制流程

1. **启动和配置**:
   - 在主服务器上,启用二进制日志并配置一个唯一的服务器 ID。
   - 在从服务器上,配置主服务器的信息(如主服务器的 IP 地址、端口号、登录凭证等),并设置一个唯一的服务器 ID。

2. **建立连接**:
   - 从服务器上的复制 IO 线程连接到主服务器,并请求从指定的日志文件位置开始读取日志。

3. **数据传输**:
   - 主服务器接收到请求后,开始将二进制日志的内容发送到从服务器。这些数据包括所有对数据库执行的更改操作。

4. **写入中继日志**:
   - 从服务器的复制 IO 线程接收到数据后,将其写入本地的中继日志。

5. **应用更改**:
   - 从服务器的复制 SQL 线程读取中继日志中的事件,并执行这些事件来更新从服务器的数据库,从而保持与主服务器的数据一致。

6. **错误处理和管理**:
   - 如果在复制过程中遇到错误(如网络问题、数据不一致等),从服务器可以配置自动重试或停止复制,需要管理员介入进行问题诊断和修复。

### 高级复制配置

- **过滤规则**:可以设置复制过滤规则,决定哪些数据库或表的更改需要被复制或忽略。
- **多源复制**:从 MySQL 5.7 开始,支持从多个主服务器复制数据到一个从服务器。
- **并行复制**:从 MySQL 5.6 开始,从服务器可以配置使用多个线程并行应用中继日志中的事件,以提高复制效率和减少延迟。

通过理解和配置这些复制原理和流程,你可以有效地利用 MySQL 的复制功能来提高数据的可用性和读取性能,同时也为数据的灾难恢复提供支持。


http://www.niftyadmin.cn/n/5669032.html

相关文章

视频存储EasyCVR视频监控汇聚管理平台设备录像下载报错404是什么原因?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能,还支持多种主流标准协议,如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

13年计算机考研408-数据结构

解析: 这个降序链表不影响时间复杂度,因为是链表,所以你想要升序就使用头插法,你想要降序就使用尾插法。 然后我们来分析一下最坏的情况是什么样的。 因为m和n都是两个有序的升序序列。 如果刚好m的最大值小于n的最小值&#xff0…

OpenLayers 开源的Web GIS引擎 - 地图初始化

在线引用&#xff1a; 地址&#xff1a;OpenLayers - Get the Code 离线引用&#xff1a; 下载地址&#xff1a;Releases openlayers/openlayers GitHub v10.0.0版本 地图初始化代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><…

[深度学习]神经网络

1 人工神经网络 全连接神经网络 2 激活函数 隐藏层激活函数由人决定输出层激活函数由解决的任务决定: 二分类:sigmoid多分类:softmax回归:不加激活(恒等激活identify)2.1 sigmoid激活函数 x为加权和小于-6或者大于6,梯度接近于0,会出现梯度消失的问题即使取值 [-6,6] ,…

Pillow:Python图像处理库详解

Pillow&#xff08;之前称为PIL&#xff0c;Python Imaging Library&#xff09;是一个开源的Python图像处理库&#xff0c;它提供了广泛的文件格式支持、强大的图像处理能力和易于使用的API。Pillow可以处理几乎所有类型的图像文件&#xff0c;并且可以进行复杂的图像操作&…

如何限制任何爬虫爬取网站的图片

随着网络爬虫技术的普及&#xff0c;网站的图片、内容和数据容易被恶意爬取。这不仅可能导致带宽资源的浪费&#xff0c;还会侵犯图片版权和私密性。因此&#xff0c;许多网站管理员希望限制或阻止爬虫爬取网站的图片。本文将介绍一些有效的技术和方法&#xff0c;帮助网站管理…

元学习的简单示例

代码功能 模型结构&#xff1a;SimpleModel是一个简单的两层全连接神经网络。 元学习过程&#xff1a;在maml_train函数中&#xff0c;每个任务由支持集和查询集组成。模型先在支持集上进行训练&#xff0c;然后在查询集上进行评估&#xff0c;更新元模型参数。 任务生成&…

python生成词云图

目录 1、安装分词工具jieba、词云图库wordcloud 2、分词 3、过滤停用词 4、生成词云图 1、安装分词工具jieba、词云图库wordcloud 编程环境是Anaconda,需要安装jieba、wordcloud。 pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple pip install wordcloud…