MySQL 主从复制

MySQL主从复制是一种数据复制技术,用于将一个MySQL数据库的数据实时复制到其他MySQL数据库,通常一个作为主数据库(master),其他作为从数据库(slave)

基本工作原理:

  1. 主数据库记录所有的数据变更操作,并将这些变更以binlog(二进制日志)的形式保存.
  2. 从数据库连接到主数据库,并开始读取主数据库的binlog,实时复制其中的数据变更操作。
  3. 从数据库将接收到的数据变更操作应用到自己的数据集上,保持与主数据库的数据一致性。
  4. 主数据库在每次的数据变更操作后会将binlog信息发送给从数据库,从数据库记录并维护一个执行位置,以确保下次读取binlog时能够从正确的位置开始。
  5. 如果主数据库出现故障,从数据库可以提升为新的主数据库,从而保证系统的高可用性。

 详细步骤:

 

 

1 MySQL 将数据变化记录到二进制日志中;
2 Slave MySQL 的二进制日志拷贝到 Slave 的中继日志中;
3 Slave 将中继日志中的事件在做一次,将数据变化,反应到自身( Slave )的数据库
详细步骤:
1 、从库通过手工执行 change master to 语句连接主库,提供了连接的用户一切条件( user 
password port ip ),并且让从库知道,二进制日志的起点位置( file position 号); start slave
2 、从库的 IO 线程和主库的 dump 线程建立连接。
3 、从库根据 change master to 语句提供的 file 名和 position 号, IO 线程向主库发起 binlog 的请求。
4 、主库 dump 线程根据从库的请求,将本地 binlog events 的方式发给从库 IO 线程。
5 、从库 IO 线程接收 binlog events ,并存放到本地 relay-log 中,传送过来的信息,会记录到
master.info
6 、从库 SQL 线程应用 relay-log ,并且把应用过的记录到 relay-log.info 中,默认情况下,已经应用过的 relay 会自动被清理 purge

主从复制的优势:

 

  1. 数据备份与恢复:通过主从复制,可以将主数据库的数据实时复制到从数据库,从而提供数据备份和灾难恢复的能力。
  2. 负载均衡:通过将读操作分发到多个从数据库,主从复制可以减轻主数据库的负载,并提高系统整体的读写性能。
  3. 提高数据可用性:当主数据库发生故障时,从数据库可以顶替主数据库的角色,从而确保系统仍然可用。

 注意:

主从复制在数据同步过程中具有一定的延迟,从数据库的数据可能不是实时更新的,因此对于一些要求实时数据一致性的场景,可能需要考虑其他的数据复制技术。

基本配置:

环境准备
两台机器一主一从。 主库( MySQL Master ):
[ ip 192 .168.100.146  port 3306 ]
从库( MySQL Slave ):
[ ip 192 .168.100.145   port 3306 ]

 

#主库设置[root@RHCE ~]# vim /etc/my.cnf[mysqld]
log_bin = mysql-bin
server_id = 120mysql> grant replication slave on *.* to 'rep'@'192.168.100.%' identified by
'123456';
mysql> show grants for 'rep'@'192.168.100.%';   # 给定从库权限查看主库状态,即当前日志文件名和二进制日志偏移量
mysql> show master status;mysqldump -uroot -p -A -B |gzip > /server/backup/mysql_bak.$(date +%F).sql.gz  #备份数据库scp /server/backup/mysql_bak.2015-11-18.sql.gz 192.168.95.130:/server/backup/  #将主库的备份传到从库上 使两个数据库的数一致#从库的配置
[root@RHCE ~]# vim /etc/my.cnf  #设置从库参数
[mysqld] 
server_id = 130   #从库和主库的server id  不能相同且唯一cd /server/backup/                  #还原数据库
gzip -d mysql_bak.2015-11-18.sql.gz
mysql -uroot -p < mysql_bak.2015-11-18.sql[root@RHCE ~]# mysql -uroot -p -e 'show databases;'   #查看数据库mysql> change master to
MASTER_HOST='192.168.100.146',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.0000022',    #此选项一定要和主上的一致
MASTER_LOG_POS=194;     #此选项一定要和主上的一致mysql> start slave;   #启动从库
mysql> show slave status;   #查看从库状态Slave_IO_Running: Yes    #以下两个选项都为yes时 表示配置成功
Slave_SQL_Running: Yes

 

 注意:

从主机上不能开启bin_log日志 否者无法创建

 

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

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

相关文章

RabbitMQ 教程 | 第10章 网络分区

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

【云原生】K8S二进制搭建三:高可用配置

目录 一、部署CoreDNS二、配置高可用三、配置负载均衡四、部署 Dashboard 一、部署CoreDNS 在所有 node 节点上操作 #上传 coredns.tar 到 /opt 目录中 cd /opt docker load -i coredns.tar在 master01 节点上操作 #上传 coredns.yaml 文件到 /opt/k8s 目录中&#xff0c;部…

三、JVM-如何判断对象已死问题

内存模型以及如何判定对象已死问题 体验与验证 2.4.5.1 使用visualvm visualgc插件下载链接 &#xff1a;https://visualvm.github.io/pluginscenters.html 选择对应JDK版本链接—>Tools—>Visual GC 若上述链接找不到合适的&#xff0c;大家也可以自己在网上下载对应…

面试热题(最长回文子串)

给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 最长回文子串以前的博客已经讲过KMP算法以及比较不常见的Manacher算法…

C# 使用堆栈实现队列

232 使用堆栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;、、、&#xff09;&#xff1a;pushpoppeekempty 实现 类&#xff1a;MyQueue void push(int x)将元素 x 推到队列的末尾 int pop()从队列的开头移除并返回元素 in…

Devops系统中jira平台迁移

需求:把aws中的devops系统迁移到华为云中,其中主要是jira系统中的数据迁移,主要方法为在华为云中建立一套 与aws相同的devops平台,再把数据库和文件系统中的数据迁移,最后进行测试。 主要涉及到的服务集群CCE、数据库mysql、弹性文件服务SFS、数据复制DRS、弹性负载均衡ELB。 迁…

【C++】容器篇(五)—— map和set的基本介绍

序言&#xff1a; 在之前&#xff0c;我们已经对STL中的 序列式容器 进行了相关的学习。本期&#xff0c;我将给大家介绍的则是另外一类容器 —— 关联式容器 &#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;容器回顾 &#x1f4a8;【顺序容器】 &a…

数据结构——红黑树

文章目录 一.红黑树的定义二.红黑树的插入1.红黑树节点的定义2.红黑树的插入操作3.总结&#xff1a; 三.红黑树与AVL树的比较四.检验手写的红黑树五.源码 一.红黑树的定义 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff…

C++设计模式之访问者模式

C访问者设计模式 文章目录 C访问者设计模式什么是设计模式什么是访问者设计模式该模式有什么优缺点优点缺点 如何使用 什么是设计模式 设计模式是一种通用的解决方案&#xff0c;用于解决特定的一类问题。它是一种经过验证的代码组织方式&#xff0c;可以帮助开发人员更快地实…

STM32 DHT11

DHT11 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 使用单总线通信 该传感器包括一个电容式感湿元件和一个NTC测温元件&#xff0c;并于一个高性能8位单片机相连&#xff08;模数转换&#xff09;。 DHT11引脚说明 开漏模式下没有输出高电平的能…

Cilium系列-14-Cilium NetworkPolicy 简介

系列文章 Cilium 系列文章 前言 今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容。 网络策略(NetworkPolicy)的类型 默认情况下&#xff0c;Kubernetes 集群中的所有 pod 都可被其他 pod 和网络端点访问。 网络策…

【并发专题】单例模式的线程安全(进阶理解篇)

目录 背景前置知识类加载运行全过程 单例模式的实现方式一、饿汉式基本介绍源码分析 二、懒汉式基本介绍源码分析改进 三、懒汉式单例终极解决方案&#xff08;静态内部类&#xff09;&#xff08;推荐使用方案&#xff09;基本介绍源码分析 感谢 背景 最近学习了JVM之后&…

解决SVN或GIT忽略提交文件的问题

背景 使用IDEA 的SVN插件提交文件是总是会提交一些不需要提交的文件; 我们可以通过一些简单设置忽略这些文件。 git 在项目根目录新建文本文件&#xff0c;修改后缀为.gitignore 文件中添加内容 *.iml .project .gradle/ .idea/ target/ build/ .vscode/ .settings/ .facto…

Python 开发工具 Pycharm —— 使用技巧Lv.2

pydoc是python自带的一个文档生成工具&#xff0c;使用pydoc可以很方便的查看类和方法结构 本文主要介绍&#xff1a;1.查看文档的方法、2.html文档说明、3.注释方法、 一、查看文档的方法 **方法1&#xff1a;**启动本地服务&#xff0c;在web上查看文档 命令【python3 -m…

Mac系统下使用远程桌面连接Windows系统

一、远程桌面工具 Microsoft Remote Desktop 二、下载地址 https://go.microsoft.com/fwlink/?linkid868963 三、下载并安装 四、添加远程PC PC name:云服务器IP。 User account: 添加系统用户 PC name&#xff1a;远程桌面 IP 地址User account&#xff1a;可以选择是…

【iOS】多线程 锁问题总结

文章目录 前言1. 你理解的多线程优点缺点 2. atomic 和 nonatomic 的区别及其作用3. GCD的队列类型 - 三种队列类型4. GCD的死锁问题线程死锁的四个必要条件 5. 多线程之间的区别和联系6. 进程和线程&#xff1f;进程间的通信方式线程间的通信方式 6. iOS的线程安全手段如何保证…

Matlab修改文本编码格式为UTF-8

一、修改文本编码格式 Matlab默认使用GBK编码格式&#xff0c;当代码中有中文注释时&#xff0c;注释显示乱码。 修改配置文件(安装目录下的bin目录有个lcdata.xml)&#xff0c;如下&#xff1a; 1. 删除 2. 修改 < encoding name”UTF-8”> < encoding_alias nam…

postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里

存储架构 ​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 postgresql 数据库服务运行时&#xff0c;数据在磁…

kafka-保证数据不重复-生产者开启幂等性和事务的作用?

1. 生产者开启幂等性为什么能去重&#xff1f; 1.1 场景 适用于消息在写入到服务器日志后&#xff0c;由于网络故障&#xff0c;生产者没有及时收到服务端的ACK消息&#xff0c;生产者误以为消息没有持久化到服务端&#xff0c;导致生产者重复发送该消息&#xff0c;造成了消…

常见监控网络链路和网络设备的方法

网络监控主要包括网络链路监控和网络设备监控&#xff0c;通常系统运维人员会比较关注。 一、网络链路监控 网络链路监控主要包含三个部分&#xff0c;网络连通性、网络质量、网络流量。 连通性和质量的监控手段非常简单&#xff0c;就是在链路一侧部署探针&#xff0c;去探…