MySQL Replication

0 序言

MySQL Replication 是 MySQL 中的一个功能,允许从一个 MySQL 数据库服务器(称为主服务器或 master)复制数据和数据库结构到另一个服务器(称为从服务器或 slave)。这种复制是异步的,意味着从服务器不需要一直连接到主服务器。主服务器上的数据更改(如 INSERT、UPDATE、DELETE 语句)会被记录在一个叫做二进制日志(binary log)的特殊日志文件中。然后,从服务器可以连接到主服务器并读取这些更改,并在自己的数据库上应用这些更改。

MySQL数据库复制操作大致可以分成3个步骤:

步骤01 主服务器将数据的改变记录到二进制日志(binary log)中。

步骤02 从服务器将主服务器的binary log events复制到它的中继日志(relay log)中。

步骤03 从服务器重做中继日志中的事件,将数据的改变与从服务器保持同步。

1 实现主从复制

1.1  配置主服务器(Master)

设置唯一的服务器 ID:在 my.cnf 或 my.ini 配置文件中,为每个服务器设置一个唯一的 server-id。
启用二进制日志:确保 log-bin 选项已启用,以记录所有更改。
创建复制用户:在主服务器上创建一个专门的复制用户,并为其分配复制权限。

1.2 配置从服务器(Slave)

 设置唯一的服务器 ID:同样,在 my.cnf 或 my.ini 配置文件中,为每个从服务器设置一个唯一的 server-id。
指定主服务器信息:在从服务器上,配置 master_host、master_user、master_password、master_log_file 和 master_log_pos 等参数,以指定主服务器的位置和复制起始点。
启动从服务器复制线程:在从服务器上执行命令,启动 SQL 线程和 IO 线程,开始复制过程。

2  日常管理和维护

2.1 了解服务器的状态

SHOW SLAVE STATUS\G

在SHOW SLAVE STATUS的输出中,关注以下几个字段来了解复制进度:

Slave_IO_Running: 显示IO线程的状态。它应该是Yes,表示IO线程正在运行并读取主服务器的二进制日志。
Slave_SQL_Running: 显示SQL线程的状态。它也应该是Yes,表示SQL线程正在运行并执行从IO线程读取的中继日志中的事件。
Seconds_Behind_Master: 显示从服务器复制延迟的秒数。如果这个数字很大,表示从服务器落后于主服务器很多。
Relay_Log_File 和 Relay_Log_Pos: 显示当前正在读取的中继日志文件和位置。
Master_Log_File 和 Master_Log_Pos: 显示主服务器上二进制日志的当前位置和文件名,从服务器将从这个位置开始读取。

2.2 服务器复制出错的原因

问题一:出现“log event entry exceeded max_allowed_pack”错误。

如果在应用中使用大的BLOG列或者长字符串,那么在从服务器上回复时可能会出现“log event entry exceeded max_allowed_pack”错误,这是因为含有大文本的记录无法通过网络进行传输,解决方法是在主从服务器上添加max_allowed_packet参数(默认设置是1MB),具体如下:

同时,在my.cnf里设置max_allowed_packet=16MB,数据库重新启动之后该参数将有效。

问题二:多主复制时的自增长变量冲突问题。

大多数情况下使用一台主服务器对一台或者多台从服务器,但是在某些情况下可能会将多个服务器配置为复制主服务器,所以使用auto_increment时应采取特殊步骤以防止键值冲突,否则插入行时多个主服务器会试图使用相同的auto_increment值。

在多主服务器复制到从服务器过程中,迟早会发生主键冲突,为了解决这种情况,可以重新设置不同主服务器的这两个参数,比如在A数据库服务器上设置auto_increment_increment=1、auto_increment_offset=1,在B数据库服务器上设置auto_increment_increment=1、auto_increment_offset=0。

3 切换主从服务器

A、B、C三个数据库,A主,B、C从数据库,当A宕机后,

B数据库先停止slave服务,重置为主数据库,my.cnf中设置二进制日志,重启,数据库B上添加具有复制权限的用户;

C数据库重新配置复制参数,slaveB数据库。

A数据库恢复后,考虑A数据库配置为B的从数据库。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

cRIO9040中NI9381模块的测试

硬件准备 CompactRIO9040NI9381直流电源(可调)网线 软件安装 下载地址 LabVIEW Real-Time 模块 NI CompactRIO 设备驱动程序 LabVIEW FPGA 模块(可选) 仅以下情况需要LabVIEW FPGA模块: 想为CompactRIO终端设计FP…

数据结构之线性表插入与删除运算

线性表 线性表的定义 线性表,或称表,是一种非常灵便的结构,可以根据需要改变表的长度,也可以在表中任何位置对元素进行访问、插入或删除等操作。另外,还可以将多个表连接成一个表,或把一个表拆分成多个表…

【git 使用】超级好用的 git reset 和 git revert 功能对比和使用方法

首先你要知道 git 区分暂存区和工作区,如果你用过 sourcetree 你就会知道 git reset 超级好用 git reset 命令用于将当前分支的 HEAD 指针移动到指定的提交,并且可以选择性地修改工作区和暂存区的状态。git reset 命令有几种常用的用法,主要…

【conda环境 安装 tensorflow2.2】 解决方案

1.检查anaconda安装:在cmd输入 conda --version 2.检测已经安装的环境:conda info --envs 3.新建一个python3.5的环境,tensorflow: ###conda create -n xxx python3.5 xxx为虚拟环境名 ###conda create -n xxx python3.6 xxx为虚拟…

VO、DTO、DO、BO、PO

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 VO、DTO、DO、BO1.概念阿里Java开发手册分层领域模型: 2. VO 和 DTO 使用场景以下是一个使用VO和DTO的典型案例: 3.BO和DTO的区别 案例 VO、…

【SpringBoot3】Spring Security 常用注解

注:本文基于Spring Boot 3.2.1 以及 Spring Security 6.2.1 Spring Security 6 的常用注解包括以下几种,通过这些注解可以更加方便的控制资源权限。 Secured :方法执行前检查,直接判断有没有对应的角色PreAuthorize:方…

Qt C++春晚刘谦魔术约瑟夫环问题的模拟程序

什么是约瑟夫环问题? 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N6,M5,被杀掉的顺序是:5&#xff…

tkinter做一个秒表

文章目录 需求和框架布局和主流程计时函数 需求和框架 本文试图实现一个简单的秒表,内容如下 这个软件非常简单,其UI元素只有一个文字标签外加三个按钮,这三个按钮的功能如下 点击Start按钮,开始进行计时,同时Start变…

已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法

今天在使用 IDEA 使用 MyBatis 的时候遇到了这种情况: 可以看到 userMapper 下有个红色的波浪警告,虽然代码没有任何问题,能正常运行,但是这个红色警告在这里杵着确实让人很窝心。 于是我在网上找了找,最终明白了原因…

【鸿蒙系统学习笔记】状态管理

一、介绍 资料来自官网:文档中心 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状…

电脑提醒待办事项:高效、快捷、更科学的方法

在这个快节奏的社会里,我常常感到时间不够用,仿佛一天24小时根本不够我分配。每天都有一大堆待办事项等着我,但总是有这样那样的事情让我分心,导致我经常忘记一些重要的任务。 每次当我想起那些被遗忘的待办事项时,都…

本地创建Git仓库

在 Windows 下,可以通过以下步骤在本地创建一个 并模拟远程Git 仓库。 1、在命令行中打开模拟远程Git 仓库目标文件夹: 打开命令提示符或 PowerShell。例如: 创建裸仓库(模拟远程仓库):创建一个裸仓库&am…

亚马逊、沃尔玛、eBay等跨境平台自养号测评的风险和技术解析

亚马逊等平台延伸至世界各地,竞争激烈。许多卖家使用自养号测评来提高产品排名和销量。但自养号测评技术存在一定的技术局限性,很多卖家的账号因对自养号原理和底层环境搭建缺乏了解很多卖家的账号被关联封禁。本文将为您揭示自养号测评的风险&#xff0…

【小呆的力学笔记】弹塑性力学的初步认知四:简单应力状态下的应力应变关系

文章目录 2. 简单应力状态下的应力应变关系2.1 简单拉伸的应力应变关系2.2 真实应力应变关系2.3 应力-应变关系简化模型 2. 简单应力状态下的应力应变关系 我们在高中就学过,弹簧拉伸力和变形量成比例,对于一般的金属材料,在一定载荷以内这种…

Cadence Allegro PCB设计88问解析(三十三) 之 Allegro 中 Quick Reports的使用

一个学习信号完整性仿真的layout工程师 在进行PCB设计时,经常会查看一下整个PCB的基本信息,比如器件个数,网络数量、pin的数量。尤其在投板的时候还要查看下Dangling Lines、Dangling Vias等。还有其他的关于shape、via、走线、钻孔等等相关信…

顶顶通实时质检系统如何添加词库

文章目录 前言联系我们步骤1. 导入系统预置词库2. 手动添加词库 在实时质检时如何质检到词库 前言 本篇文章主要讲解顶顶通实时质检系统如何添加词库。 词库添加的方式: 导入系统预置词库手动添加词库 联系我们 有意向了解实时质检系统的用户,可以点击…

Photoshop 2023(Ps)下载安装及详细安装教程

Photoshop(Ps)的介绍 Adobe Photoshop,简称“PS”,是由AdobeSystems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑和创造工作。PS有很多功能,在图像、…

grafana配置钉钉告警模版(一)

1、配置钉钉告警模版 创建钉钉告警模版,然后在创建钉钉告警时调用模版。 定义发送内容具体代码 my_text_alert_list 是模版名称后面再配置钉钉告警时需要调用。 {{/* 定义消息体片段 */}} {{ define "my_text_alert_list" }}{{ range . }}告警名称&…

术业有专攻!三防加固平板助力工业起飞

在日常使用中的商业电脑比较追求时效性,以市场定位做标准,内部元件只需满足一般要求就行,使用寿命比较短。而三防平板电脑是主要运用在复杂、恶劣的环境下所以在需求方面较高,需要保证产品在恶劣条件下正常使用,满足行业领域的需求…

springboot746旧物置换网站

springboot746旧物置换网站 获取源码——》公主号:计算机专业毕设大全