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

异步主从复制

主从复制的概念

主从复制是一种在数据库系统中常用的数据备份和读取扩展技术,通过将一个数据库服务器(主服务器)上的数据变更自动同步到一个或多个数据库服务器(从服务器)上,以此来实现数据的冗余备份、读写分离以及负载均衡等目的。

主从复制的原理

  1. 首先在Master上开启二进制日志。
  2. 当Master上数据发生变化,进行DML操作时,会产生二进制日志。
  3. Master上dump线程会通知Slave上的I/O线程来拿二进制日志。
  4. I/O线程拿到日志后会写入到Slave上的中继日志。
  5. 然后SQL线程会去读取新产生的中继日志,重演二进制日志里的操作,从而达到Slave和Master上的数据一模一样,实现数据的一致性

主从复制的原理如上,在Slave服务器上还存在master-info文件和relay-log.info文件。master-info文件记录I/O线程从Master服务器上获取二进制日志结束的pos位置号和日志文件的名字。relay-log.info文件记录当前中继日志的文件名和位置点。

主从复制的操作

1、环境准备

准备两台服务器,一台作为master服务器(192.168.2.117),一台作为slave服务器(192.168.2.118),确保两台服务器上的mysql服务是启动的,mysql版本为5.x。

修改主机名,便于辨识:

// master服务器上
[root@localhost ~] hostnamectl set-hostname master// slave服务器上
[root@localhost ~] hostnamectl set-hostname slave

2、修改mysql配置文件

在master服务器上开启二进制日志,server_id=1,在slave服务器上也可以开启二进制日志,server_id=2

// master服务器上
[root@master ~] vim /etc/my.cnf
# 找到[mysqld]位置添加以下内容
[mysqld]
log_bin
server_id=1// 重启服务
[root@master ~] service mysqld restart// slave服务器上
[root@slave ~] vim /etc/my.cnf
# 找到[mysqld]位置添加以下内容
[mysqld]
log_bin
server_id=2// 重启服务
[root@slave ~] service mysqld restart

3、统一两台服务器的基础数据

// master服务器导出所有数据
[root@master ~] mysqldump -uroot -p'123456' --all-databases >all_db.SQL// 上传slave服务器
[root@master ~] scp all_db.SQL root@192.168.2.118:/root// slave服务器执行SQL文件
[root@slave ~] mysql -uroot -p'123456' <all_db.SQL

4、master服务器初始化二进制日志

清除master服务器上所有的二进制日志,因为上一步已经做了一次全部备份了。

root@(none) mysql> reset master;// 查看二进制文件名和位置点POS
root@(none) mysql> show master status;

5、新建授权用户

在master服务器上新建一个授权用户,给slave来复制二进制日志。

// master服务器上操作
root@(none) mysql> reset master;
root@(none) mysql> grant replication slave on *.* to 'slave-1'@'192.168.2.118';

6、配置master-info信息

在slave服务器上配置master-info信息,master-info文件记录I/O线程从master服务器上获取二进制日志结束的pos位置号和日志文件的名字。当master服务器通知slave服务器来读取二进制日志时,slave服务器通过master-info信息才能得知从哪里开始读取。

// slave服务器上操作
root@(none) mysql> CHANGE MASTER TO MASTER_HOST='192.168.2.137',
> MASTER_USER='slave-1',
> MASTER_PASSWORD='123456',
> MASTER_PORT=3306,
> MASTER_LOG_FILE='master-bin.000001',
> MASTER_LOG_POS=154;

7、查看slave是否配置成功

// slave服务器上操作
// 启动slave
root@(none) mysql> start slave;root@(none) mysql> show slave status\G;// 下面这两个为yes则表示启动成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

在线主从复制

在线主从复制指服务器运行中进行主从复制,在线主从复制与上述主从复制原理一致,其难点在于slave服务器配置master-info信息时,如何准确知晓master服务器的二进制日志文件名和位置号pos。

本文在这给出的方法是使用xtrabackup工具包,xtrabackup在备份的时候自动记录二进制日志文件和位置好,感兴趣的小伙伴可以自行去搜索深入了解。

主从切换的原理

在主从复制中,当主服务器挂了,就需要提升原来的从为主,这就是主从切换。

首先在监控机器上每秒钟扫描master服务器的3306端口(nc 3306),当master服务器出现故障时,马上执行手工操作的步骤(最后是将其编写成脚本自动执行),从而实现主从复制。

手工操作步骤:

  1. 首先选择一台从服务器,在其上停止从服务器服务(stop slave)。
  2. 开启二进制日志。
  3. 重置二进制日志(reset master)。
  4. 建立授权复制用户。
  5. 在其他从服务器中配置master-info信息去拉取二进制日志。
  6. 将网站的写流量切换到新的master上。

常见问题

  1. 查看服务器防火墙3306端口是否开放。
  2. 配置时是否出现拼写错误。
  3. 两天服务器是否为克隆产生,是克隆产生则需要修改uuid。修改mysql数据目录下auto.cnf文件(vim /data/mysql/auto.cnf)中server-uuid的值,随便修改几个字符即可。

相关文章:

异步主从复制

主从复制的概念 主从复制是一种在数据库系统中常用的数据备份和读取扩展技术&#xff0c;通过将一个数据库服务器&#xff08;主服务器&#xff09;上的数据变更自动同步到一个或多个数据库服务器&#xff08;从服务器&#xff09;上&#xff0c;以此来实现数据的冗余备份、读…...

论文解析——Full Stack Optimization of Transformer Inference: a Survey

作者及发刊详情 摘要 正文 主要工作贡献 这篇文章的贡献主要有两部分&#xff1a; 分析Transformer的特征&#xff0c;调查高效transformer推理的方法通过应用方法学展现一个DNN加速器生成器Gemmini的case研究 1&#xff09;分析和解析Transformer架构的运行时特性和瓶颈…...

selenium处理cookie问题实战

1. cookie获取不完整 需要进入的资损平台(web)首页&#xff0c;才会出现有效的ctoken等信息 1.1. 原因说明 未进入指定页面而获取的 cookie 与进入页面后获取的 cookie 可能会有一些差异&#xff0c;这取决于网站的具体实现和 cookie 的设置方式。 通常情况下&#xff0c;一些…...

(十五)GLM库对矩阵操作

GLM简单使用 glm是一个开源的对矩阵运算的库&#xff0c;下载地址&#xff1a; https://github.com/g-truc/glm/releases 直接包含其头文件即可使用&#xff1a; #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <io…...

android中activity与fragment之间的各种跳转

我们以音乐播放、视频播放、用户注册与登录为例【Musicfragment&#xff08;音乐列表页&#xff09;、Videofragment&#xff08;视频列表页&#xff09;、MusicAvtivity&#xff08;音乐详情页&#xff09;、VideoFragment&#xff08;视频详情页&#xff09;、LoginActivity&…...

动态规划算法-以中学排课管理系统为例

1.动态规划算法介绍 1.算法思路 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中&#xff0c;可能会有许多可行解。每一个解都对应于一个值&#xff0c;我们希望找到具有最优值的解。动态规划算法与分治法类似&#xff0c;其基本思想也是将待求解问题分解成若…...

本安防爆手机:危险环境下的安全通信解决方案

在石油化工、煤矿、天然气等危险环境中&#xff0c;通信安全是保障工作人员生命安全和生产顺利进行的关键。防爆智能手机作为专为这些环境设计的通信工具&#xff0c;提供了全方位的安全通信解决方案。 防爆设计与材料&#xff1a; 防爆智能手机采用特殊的防爆结构和材料&…...

算法学习笔记(8)-动态规划基础篇

目录 基础内容&#xff1a; 动态规划&#xff1a; 动态规划理解的问题引入&#xff1a; 解析&#xff1a;&#xff08;暴力回溯&#xff09; 代码示例&#xff1a; 暴力搜索&#xff1a; Dfs代码示例&#xff1a;&#xff08;搜索&#xff09; 暴力递归产生的递归树&…...

数据库常见问题(持续更新)

数据库常见问题(持续更新) 1、数据库范式&#xff1f; 1NF&#xff1a;不可分割2NF&#xff1a;没有非主属性对候选码存在部分依赖3NF&#xff1a;没有非主属性传递依赖候选码BCNF&#xff1a;消除了主属性对对候选码的传递依赖或部分依赖 2、InnoDB事务的实现&#xff1f; …...

定个小目标之刷LeetCode热题(40)

94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 直接上代码吧&#xff0c;中序遍历左根右 class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res new ArrayList<Integer>(…...

Linux--线程(概念篇)

目录 1.背景知识 再谈地址空间&#xff1a; 关于页表&#xff08;32bit机器上&#xff09; 2.线程的概念和Linux中线程的实现 概念部分&#xff1a; 代码部分&#xff1a; 问题&#xff1a; 3.关于线程的有点与缺点 4.进程VS线程 1.背景知识 再谈地址空间&#xff1a…...

Mojo: 轻量级Perl框架的魔力

在Perl的丰富生态系统中&#xff0c;Mojolicious&#xff08;简称Mojo&#xff09;是一个轻量级的实时Web框架&#xff0c;以其极简的API和强大的功能而受到开发者的喜爱。Mojo不仅适用于构建高性能的Web应用&#xff0c;还可以用来编写简单的脚本和命令行工具。本文将带你探索…...

Python 游戏服务器架构优化

优化 Python 游戏服务器的架构涉及多个方面&#xff0c;包括性能、可伸缩性、并发处理和网络通信。下面是一些优化建议&#xff1a; 1、问题背景 在设计 Python 游戏服务器时&#xff0c;如何实现服务器的横向扩展&#xff0c;以利用多核处理器的资源&#xff0c;并确保服务器…...

13 学习总结:指针 · 其一

目录 一、内存和地址 &#xff08;一&#xff09;内存 &#xff08;二&#xff09;内存单元 &#xff08;三&#xff09;地址 &#xff08;四&#xff09;拓展&#xff1a;CPU与内存的联系 二、指针变量和地址 &#xff08;一&#xff09;创建变量的本质 &#xff08;二…...

golang 项目打包部署环境变量设置

最近将 golang 项目打包部署在不同环境&#xff0c;总结一下自己的心得体会&#xff0c;供大家参考。 1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) &#xff0c;如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm) 目标服务器的CPU架构可执行命令&…...

【Linux进程】进程优先级 Linux 2.6内核进程的调度

目录 前言 1. 进程优先级 2. 并发 3. Linux kernel 2.6 内核调度队列与调度原理 总结 前言 进程是资源分配的基本单位, 在OS中存在这很多的进程, 那么就必然存在着资源竞争的问题, 操作系统是如何进行资源分配的? 对于多个进程同时运行, 操作系统又是如何调度达到并发呢?…...

Linux中的粘滞位及mysql日期函数

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 为了解决这个不科学的问题, Linux引入了粘滞位的概念. 粘滞位 当一个目录被设置为"粘滞位"(用chmod t),则该目录下的文件只能由 一、超级管理员删除 二、该目录…...

BP神经网络的实践经验

目录 一、BP神经网络基础知识 1.BP神经网络 2.隐含层选取 3.激活函数 4.正向传递 5.反向传播 6.不拟合与过拟合 二、BP神经网络设计流程 1.数据处理 2.网络搭建 3.网络运行过程 三、BP神经网络优缺点与改进方案 1.BP神经网络的优缺点 2.改进方案 一、BP神经网络基…...

PCL 点云FPFH特征描述子

点云FPFH特征描述子 一、概述1.1 FPFH概念1.2 基本原理1.3 PFH和FPFH的区别二、代码实现三、结果示例一、概述 1.1 FPFH概念 快速点特征直方图(FPFH)描述子:计算 PFH 特征的效率其实是十分低的,这样的算法复杂度无法实现实时或接近实时的应用。因此,这篇文章将介绍 PFH 的简…...

基于golang的文章信息抓取

基于golang的文章信息抓取 学习golang爬虫&#xff0c;实现广度爬取&#xff0c;抓取特定的网页地址&#xff1a;测试站点新笔趣阁&#xff08;https://www.xsbiquge.com/&#xff09; 主要学习golang的goroutine和channel之间的协作&#xff0c;无限爬取站点小说的地址仅限书目…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...