MySQL集群技术2——MySQL的主从复制

news2024/9/25 21:22:38

MySQL主从复制

MySQL 主从复制是一种常用的数据复制机制,它允许在一个或多个从属服务器上复制来自主服务器的数据更改。这种机制对于实现数据备份、负载均衡、读写分离等多种应用场景都非常有用。下面是关于 MySQL 主从复制的详细说明:
在这里插入图片描述

MySQL 主从复制的概念

  • 主服务器:主服务器接收所有的写操作(INSERT、UPDATE、DELETE 等),并将这些操作记录到二进制日志(Binary Log)中。
  • 从服务器:从服务器通过读取主服务器的二进制日志,并在本地执行相同的更改来复制数据。

MySQL 主从复制的工作原理

  1. 写操作记录:当主服务器接收到写操作时,这些操作会被记录到二进制日志中。
  2. 日志传输:从服务器定期轮询主服务器的二进制日志,并将这些日志文件复制到自己的中继日志(Relay Log)中。
  3. 日志执行:从服务器从中继日志中读取这些操作,并在本地执行同样的更改,以使数据保持一致。

MySQL 主从复制的配置步骤

以下是在一个典型的 MySQL 主从复制环境中配置主从复制的基本步骤。假设我们有一个主服务器(Master)和一个从服务器(Slave)。

步骤 1: 准备主服务器
  1. 开启二进制日志:确保主服务器的二进制日志功能已开启。
[root@mysql-node1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
log-bin=mysql-bin
server-id=1

/etc/init.d/mysqld restart#记得重启使配置生效
2. 创建复制用户:在主服务器上创建一个用于复制的用户。

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
  1. 获取二进制日志的位置:记录当前的二进制日志文件名和位置,稍后从服务器需要用到这些信息。
    SHOW MASTER STATUS;
    

示例:
在这里插入图片描述

步骤 2: 准备从服务器
  1. 配置从服务器:确保从服务器的配置正确。
[root@mysql-node2 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
server-id=2

/etc/init.d/mysqld restart#记得重启使配置生效
2. 初始化从服务器:从主服务器导出数据并导入到从服务器。

# 在主服务器上
mysqldump --all-databases > all-databases.sql
# 将 all-databases.sql 复制到从服务器
# 在从服务器上
mysql < all-databases.sql
  1. 配置复制:在从服务器上配置复制。
 CHANGE MASTER TO
#该示例中的host为172.25.254.10


```sql
MASTER_HOST='$master_host', 
   MASTER_USER='repl',
   MASTER_PASSWORD='password',

#该处的二进制日志文件需要对应实际上获取的二进制日志名称

  MASTER_LOG_FILE='mysql-bin.000001'

#该处的端口号同样的需要对应实际表中给出的端口号

   MASTER_LOG_POS=$position;

其中 MASTER_LOG_FILEMASTER_LOG_POS 是之前从主服务器获取的信息。

  1. 启动复制:启动从服务器上的复制进程。
    START SLAVE;
    
步骤 3: 验证复制状态
  1. 查看复制状态:在从服务器上检查复制状态。

    SHOW SLAVE STATUS\G
    

    如果复制正常工作,您应该能看到类似 Slave_IO_Running: YesSlave_SQL_Running: Yes 的输出。
    示例:
    在这里插入图片描述

  2. 解决复制问题:如果遇到问题,可以查看错误日志或使用 SHOW SLAVE STATUS\G 查找错误信息。

MySQL 主从复制的类型

  • 基于语句的复制 (SBR):在主服务器上执行的 SQL 语句直接被复制到从服务器上执行。
  • 基于行的复制 (RBR):只复制实际受影响的数据行,而不是整个 SQL 语句。
  • 混合模式复制 (MBR):结合了 SBR 和 RBR 的优点,对于大多数情况,使用 RBR,但对于无法可靠复制的语句(如函数或触发器),使用 SBR。

MySQL 主从复制的注意事项

  • 数据类型兼容性:确保主服务器和从服务器的数据类型兼容,特别是在使用基于行的复制时。
  • 唯一键约束:如果表中有唯一键约束,确保主服务器和从服务器上的数据不会导致唯一键冲突。
  • 性能监控:定期检查复制延迟和性能指标,以确保复制过程的效率。

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

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

相关文章

Linux平台下UE的代码启动流程

文章目录 概述main(主函数)CommonUnixMain(unix平台通用函数)GuardedMain(引擎主函数)AppExitCallback(退出调用) 小结 概述 本篇主要写下Linux下UE的启动流程&#xff0c;主要还是代码流程。从最开始的main函数&#xff0c;到最后的引擎层的启动退出&#xff0c;至于中间加载…

显示器熄屏待机时,音响持续发出USB插入和拔出的声音的解决方法!

电脑电源计划设置经过一段时间自动关闭显示屏&#xff0c;当显示屏关闭的时候&#xff0c;连接电脑主机的音响会每隔大约5秒左右持续播放USB插入和拔出的提示声&#xff0c;非常烦人。 网上搜索的解决方法是在显示器的设置中将输入源的【自动输入】关闭即可。原因是显示器信号被…

从汇编层看64位程序运行——C++的Copy Elision(复制省略)技术的实现

大纲 Copy Elision的应用场景返回值优化&#xff08;Return Value Optimization, RVO&#xff09;命名返回值优化&#xff08;Named Return Value Optimization, NRVO&#xff09;C11及以后的移动语义 禁用Copy Elision&#xff08;复制省略&#xff09;Copy Elision&#xff0…

Redis 的 主从复制

目录 1 Redis 主从复制介绍 2 Redis主从复制原理 2.1 主从同步过程 3 Redis实现主从复制 3.1 环境配置 3.2 修改各节点的配置文件 3.2.1 MASTER 3.2.2 SLAVE 3.3.3 重启Redis 3.3 查看是否实现了主从复制 3.3.1 MASTER 3.3.2 SLAVE 3.3.3 Redis 常用操作 3.3.4 数据添加查看…

AD9162数据链路lanes与FPGA高速BANK引脚交叉相连导致vivado编译失败

问题概述 对AD9162芯片进行功能开发时&#xff0c;发现AD9162的链路lanes与FPGA的高速BANK引脚存在交叉相连的情况&#xff0c;按照实际的引脚连接关系进行约束后&#xff0c;vivado编译失败。 问题阐述及原因分析 问题详情阐述 板卡对AD9162芯片进行功能开发时&#xff0c;发…

高并发业务下的库存扣减技术方案设计

扣减库存需要查询库存是否足够: 足够就占用库存不够则返回库存不足&#xff08;这里不区分库存可用、占用、已消耗等状态&#xff0c;统一成扣减库存数量&#xff0c;简化场景&#xff09; 并发场景&#xff0c;若 查询库存和扣减库存不具备原子性&#xff0c;就可能超卖&…

node.js使用express框架实现api接口开发(从零开始,超简单可直接复制)

目录 一、效果图 二、实现 1、引入express框架依赖 2、 新建启动文件&#xff08;/server/index.js&#xff09; 3、新建接口函数文件&#xff08;/server/router.js&#xff09; 一、效果图 二、实现 1、引入express框架依赖 在项目文件夹根目录下&#xff0c;打开控制台…

ShenNiusModularity:一款基于 .NET Core 框架研发的自媒体内容管理系统

项目介绍 ShenNiusModularity是一款基于 .NET Core 框架研发的、开源、免费的自媒体内容管理系统。项目秉承大道至简的原则开发&#xff0c;坚持业务模块最低复杂度复用&#xff0c;代码方面追求简单、高效、实用。适合小白入门进阶&#xff0c;同样适用老手上路干活。 项目包…

Python青少年简明教程:字符串

Python青少年简明教程&#xff1a;字符串 字符串&#xff08;string&#xff09;是用于表示文本的数据类型。它是不可变的序列类型&#xff0c;即一旦创建&#xff0c;字符串中的字符就无法改变。 下面对Python中字符串的详细介绍&#xff0c;包括字符串的创建、操作和常见方法…

MySQL 集群技术全攻略:从搭建到优化(下)

目录 四.mysql高可用之组复制 (MGR) 1.组复制流程 2.组复制单主和多主模式 3.实现mysql组复制 五.mysql-router&#xff08;mysql路由&#xff09; 1.Mysql route的部署方式 六.mysql高可用之MHA 1.MHA架构图 2.为什么要用MHA&#xff1f; 3.MHA 的组成 4.什么是 MH…

网络 (tcp)

客户端 /*************************************************************************> File Name: client.c> Author: yas> Mail: rage_yashotmail.com> Created Time: Thu 22 Aug 2024 04:04:26 PM CST******************************************************…

从零开始学习SLAM六(单应矩阵)

本文参考&#xff1a;计算机视觉life 概念 单应性&#xff08;homography&#xff09;是指两个平面之间的一种保直线性的对应关系。如果一个平面上的点集经过某种变换后&#xff0c;在另一个平面上形成的新点集仍然保持原来的线性特性&#xff08;如共线的点仍然共线&#xf…

一起搭WPF界面之View的简单设计一

一起搭WPF界面之View的简单设计一 1 前言2 界面预期设想3 基础的实现步骤3.1 界面划分3.1.1 基础框架代码&#xff1a;3.1.2 实现效果 4 界面花样设计4.1 花样设计4.2 界面源代码4.3 错误提醒4.3.1 错误14.3.2 错误2 总结 1 前言 基于上一篇的window、Gird、Border的简单介绍&…

XSS LABS - Level 13 过关思路

关注这个靶场的其他相关笔记&#xff1a;XSS - LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 进入靶场&#xff0c;老样子&#xff0c;右击&#xff0c;查看页面源码&#xff0c;找找不同&#xff1a; 可以看到&#xff0c;本关又多了一个新字段 t_cook&#xf…

关于 Vue/React 的 cli 中运用 webpack 打包的原理简单解析

webpack、webpack-cli的打包 关于 webpack 对前端工程中进行资源文件进行打包处理的过程中&#xff0c;运用到的核心插件主要是 webpack 和 webpack-cli&#xff0c;在 react 和 vue 对于打包各自工程中的 cli 则是进行了自定义的构建&#xff0c;专门用于项目打包的 …

【MySQL-25】万字总结<锁>——(全局锁&行级锁&表级锁)【共享锁,排他锁】【间隙锁,临键锁】【表锁,元数据锁,意向锁】

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

Bytebase 2.22.2 - 允许在工作空间为群组分配角色

&#x1f680; 新功能 允许在工作空间给群组分配角色。 支持禁用邮箱密码登录&#xff0c;仅允许 SSO 登录的设置项。 新增 Postgres SQL 审核规则&#xff1a;禁止在列上设置会变化的默认值。 &#x1f514; 重大变更 下线项目内的变更历史页面&#xff1b;所有变更历史仍可…

Phoenix

Apache Phoenix 是一个开源的关系数据库层&#xff0c;运行在 Apache HBase 之上&#xff0c;旨在为 HBase 提供 SQL 查询能力和优化的存储引擎。它允许用户使用标准的 SQL 查询和事务语义来管理 HBase 中的数据&#xff0c;并且可以与现有的大数据生态系统无缝集成。Phoenix 通…

IOS开发 铃声制作(库乐队)

IOS开发&#xff0c;实现铃声制作功能。 在IOS端&#xff0c;要设置铃声都是通过库乐队来制作的。 先看一下库乐队中铃声的文件结构。下面是弄的一个示例的文件&#xff0c;文件信息如下&#xff1a; 我们右击文件&#xff0c;点击显示包内容如下&#xff1a; 能看到一个aiff格…

解决ssl certificates updated-生成环境中的实例

应原来小伙伴的要求&#xff0c;生产环境出错了&#xff0c;是harbor的ssl cert过期了&#xff0c;也因为使用的是免费的ssl证书&#xff0c;现在无法正常使用harbor&#xff0c;所以贴来了2023年1月曾经搭建的文档&#xff0c;希望能解决问题。^v^. -------------------------…