主从复制原理及操作

news2024/11/18 6:26:49

主从复制的概念

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

主从复制的原理

  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 MATER 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

常见问题

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

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

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

相关文章

springboot集成tika解析word,pdf,xls文件文本内容

介绍 Apache Tika 是一个开源的内容分析工具包&#xff0c;用于从各种文档格式中提取文本和元数据。它支持多种文档类型&#xff0c;包括但不限于文本文件、HTML、PDF、Microsoft Office 文档、图像文件等。Tika 的主要功能包括内容检测、文本提取和元数据提取。 官网 https…

一口气拿下Faster-RCnn三部曲系列01:Selective Search 和 R-CNN、Fast-CNN 简介

Selective Search 和 R-CNN、Fast-CNN 简介 1 目标检测算法简介1.0滑窗法的思路1.1 Selective Search 和 R-CNN 简介1.2.1 Selective Search简介1.1.1 Selective Search的思路1.1.2 Selective Search图解 1.2 Selective Search 和 Fast-CNN简介1.2.1 SPP和ROI Pooling简介1.2.2…

招聘一个1-3年经验的Java工程师:企业视角的技能与素质要求

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

es6新语法

es6新语法 1 什么是ES6 JS语法分三块 ECMAScript : 基础语法BOM 浏览器对象 history location windowDOM 文档对象 document 编程语言JavaScript是ECMAScript的实现和扩展 。ECMAScript是由ECMA&#xff08;一个类似W3C的标准组织&#xff09;参与进行标准化的语法规范。ECMAS…

python 实现docx指定语言翻译(不丢失格式)

我这边有个需求需要把一份docx翻译成指定语言的文档并且保存&#xff0c;研究了下&#xff0c;记录。 首先先安装依赖 pip install python-docx1.1.2 googletrans4.0.0rc1 python-docx是用来读取docx的&#xff0c;googletrans使用来翻译的。 googletrans PyPI 这个是官方文…

MATLAB 2024b 更新了些什么?

MATLAB 2024b版本已经推出了预览版&#xff0c;本期介绍一些MATLAB部分的主要的更新内容。 帮助浏览器被移除 在此前的版本&#xff0c;当我们从MATLAB中访问帮助文档时&#xff0c;默认会通过MATLAB的帮助浏览器&#xff08;Help browser&#xff09;。 2024b版本开始&…

uniapp 去掉小数末尾多余的0

文章目录 在uniapp或者一般的JavaScript环境中&#xff0c;要去掉小数末尾的0&#xff0c;可以使用以下几种方法&#xff1a; 使用parseFloat()函数 let num 123.4500; let result parseFloat(num); console.log(result); // 输出: 123.45字符串处理 将数字转换为字符串&am…

js的作用域链

function test(){} 运行期上下文&#xff1a;当函数执行时&#xff0c;会创建一个称为执行期上下文的内部对象。一个执行期上下文定义了一个函数执行时的环境&#xff0c;函数每次执行时对应的执行上下文都是 独一无二的&#xff0c;所以多次调用一个函数对导致创建多个执行上下…

在pycharm里如何使用Jetbrains AI Assistant

ai assistant激活成功后&#xff0c;如图 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 为 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌编码基础模型 Codey,Codey 是…

云联壹云 FinOps:赋能某车企公有云成本管理与精细化运营

背景 某车企&#xff0c;世界 500 强企业&#xff0c;使用了大量的公有云资源&#xff0c;分布于多家公有云&#xff0c;月消费在千万级别。 业务线多且分散&#xff0c;相关的云消耗由一个核心团队进行管理&#xff0c;本次案例的内容将围绕这些云成本的管理展开的。 需求 …

Google重大更新--解读Android Auto认证4.3

Google在今年五月更新了Android Auto 4.2.2版本&#xff0c;而在2024年7月他们推出了Android Auto 4.3版本&#xff0c;这是自2023年9月以来对Android Auto 4.2版本的一次重大更新。 为了确保合规性和顺利认证&#xff0c;OEM和Tire1必须确保PDK组件版本与正在认证的主机的Rece…

如何魔改vnstat-docker项目使其支持每1分钟采样?

文章目录 一、概述二、官网参考1. 官网地址2. 查看打包过程3.打包命令 三、修改过的文件四、部署运行1. 编排文件2. 运行效果 一、概述 接前文 网络流量监控神器vnStat初探 我们已经了解了vnStat的作用、使用和docker部署。 同时也了解到官方版本支持的采样统计间隔最小为5分…

Mysql数据库索引、事务相关知识

索引 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引&#xff0c; 并指定索引的类型&#xff0c;各类索引有各自的数据结构实现 查看索引 show index from 表名;创建索引对于非主键、非唯一约束、非外键的字段&#…

制作Ai 数字人和数字人带货全面拆解复盘

看了后不用再花高价钱去买怎么制作数字人 .数字人带货的相关教程了 市面上基本都是通过这几个方法制作的数字人 超级详细 值得注意的是 拆解的太详细 仅供正规个人用途哦 请勿用于任何非法操作 否则 就不用接着往下看了 点击获取完整版资料

Python基础小知识问答系列-高效遍历多个不同类型元素的迭代器

1. 问题&#xff1a; 当需要对多个迭代器进行相同遍历操作时&#xff0c;如何避免因为迭代器之间的类型或者迭代器元素 数量过大引发的问题&#xff1f; 2. 解决方法&#xff1a; 使用itertools模块中的chain函数。 示例&#xff1a; from itertools import chainlist_a [2,…

炫云云渲染平台:解锁设计师无限创意的魔法钥匙

在数字创意的浩瀚宇宙中&#xff0c;设计师们如同星辰般璀璨&#xff0c;他们以无尽的想象力和精湛的技能&#xff0c;绘制出一幅幅令人叹为观止的视觉盛宴。然而&#xff0c;在追求完美的道路上&#xff0c;复杂的渲染过程往往成为制约创意飞跃的瓶颈。这时&#xff0c;炫云云…

2024菜鸟春招笔试

第一题 解题思路&#xff1a; 签到题&#xff0c;把帖子按好评度降序排列&#xff0c;再将人按升序排列。 第二题 解题思路 从左到右遍历&#xff0c;如果当前元素没有错排&#xff0c;将其与后一个交换&#xff0c;这样两个元素一定都错排。 第三题 、 解题思路 这题当时暴力…

前端面试题21(js排序方法)

JavaScript 中有多种内置和自定义的排序方法。内置的 .sort() 方法是最直接的排序方式&#xff0c;而自定义排序算法如冒泡排序、选择排序、插入排序、希尔排序、快速排序等则提供了更深层次的学习和应用价值。下面我将详细介绍这些排序方法&#xff0c;并给出相应的示例代码。…

大学生电子设计大赛超全资料分享

超全大学生电子设计大赛项目合集免费分享 电赛竞赛资料大全&#xff0c;新增竞赛空间电子设计资料。包含嵌入式硬件和软件开发的学习资料&#xff0c;包括PCB教程&#xff0c;单片机例程&#xff0c; 单片机课程设计毕业设计参考资料、项目设计方案&#xff0c;源码和开发文档…

观察矩阵(View Matrix)、投影矩阵(Projection Matrix)、视口矩阵(Window Matrix)及VPM矩阵及它们之间的关系

V表示摄像机的观察矩阵&#xff08;View Matrix&#xff09;&#xff0c;它的作用是把对象从世界坐标系变换到摄像机坐标系。因此&#xff0c;对于世界坐标系下的坐标值worldCoord(x0, y0, z0)&#xff0c;如果希望使用观察矩阵VM将其变换为摄像机坐标系下的坐标值localCoord(x…