将已有的MySQL8.0单机架构变成主从复制架构

过程: 把数据库做一个完全备份, 恢复到从节点上, 恢复后从备份的那个点开始往后复制,从而保证后续数据的一致性。

步骤:

  1. 修改 master 主节点 的配置( server-id log-bin )
  2. master 主节点 完全备份( mysqldump )
  3. master 主节点 创建复制用户并授权
  4. master 主节点 将完全备份文件拷贝至从节点
  5. 修改 slave 从节点 的配置( server-id read-only )
  6. 修改 完全备份数据文件( 添加主节点的相关信息 )
  7. slave 从节点 还原备份( souce /data/all.sql )
  8. slave 从节点 开启复制( start slave; )
  9. 验证 主从复制架构

主节点

#修改master主节点的配置

#修改master主节点的配置
[root@centos8 ~]#vim /etc/my.cnf[mysqld]
server-id=8#MySQL老版本开启二进制日志
log-bin=/data/mysql/logbin/mysql-bin   #MySQL8.0二进制日志默认开启

新建目录并改所有者

mkdir -p /mysql/logbin/  #新建文件夹
chown -R mysql.mysql /mysql/logbin/  #赋权

重新启动数据库

systemctl restart mysqld

当前目录的二进制日志就生成了

#完全备份

生成备份文件

mysqldump -uroot -A -F --single-transaction --master-data=1 > /data/full_bak.sql
#-A :全部
#-F :刷新 

#创建复制用户并授权
 

#创建用户
mysql>create user repluser@"10.0.0.%" identified by "123456";
#授权
mysql>grant replication slave on *.* to repluser@"10.0.0.%";

#将备份文件复制到从节点
 

[root@centos8 ~]#scp /data/full_bak.sql 从节点:/data

从节点

#配置从节点

[root@centos8 ~]#vim /etc/my.cnf[mysqld]
server-id=18
read-only

重启数据库

systemctl restart mysqld

#从节点修改备份文件
 

vim /data/full_bak.sql
CHANGE MASTER TO
MASTER_HOST='主节点',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,

#从节点还原备份

数据库的还原过程没必要记录二进制, 所以把二进制记录临时关闭

mysql> set sql_log_bin=0;

 恢复数据库文件

mysql> source /data/full_bak.sql;

重新打开二进制日志 

mysql>set sql_log_bin=1;

#从节点开始复制

线程开启

mysql> start slave;

验证是否开启

mysql> show slave status\G

 

增加新从

当性能耗尽之后再添加一个从节点,需重新在主节点备份

生成新的备份文件

mysqldump -uroot -A -F --single-transaction --master-data=1 > /data/full_bak2.sql
#-A :全部
#-F :刷新 

 #将备份复制到第二个从节点

[root@centos8 ~]#scp /data/full_bak2.sql 从节点:/data

打开备份文件

less full_bak2.sql

#从节点还原备份

关闭二进制

mysql> set sql_log_bin=0;

 备份文件还原执行

mysql> source /data/full_bak2.sql;

重新打开二进制

mysql>set sql_log_bin=1;

手动执行还原命令(根据之前记录的命令)

CHANGE MASTER TO MASTER_HOST='10.0.0.8',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=156;

#从节点开始复制

mysql> start slave;

 这样就可以完成同步啦!!!! 

随着从节点数量的增加,就会消耗主节点的dump线程, 就会增加主节点的性能压力

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

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

相关文章

一文3000字从0到1带你进行Mock测试(建议收藏)

​什么是mock? ​mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock? 之所以使用mock测试,是因…

小程序如何完成订阅

小程序如何完成订阅 参考相关文档实践问题处理授权弹窗不再触发引导用户重新授权 参考相关文档 微信小程序实现订阅消息推送的实现步骤 发送订阅消息 小程序订阅消息(用户通过弹窗订阅)开发指南 实践 我们需要先选这一个模板,具体流程参考…

SOHO场景开局(小型,多子网):AP+管理型交换机+路由器+光猫

业务需求 1. 实现除光猫外,整网设备通过APP进行开局,开局部署完成后,能够通过APP远程运维。 2. 需要单独划分访客、办公、视频监控3个子网,其中访客子网供顾客无线上网使用,办公子网用于接入无线和有线办公终端&#x…

C++map和set(二)

1.map的opeator[] 功能: 如果访问对象存在就返回指定键的值的引用,如果指定的键不存在会插入新的键值对,键是传递给operator[]的参数,值是使用该值类型的默认构造函数构造的(对于简单类型通常是0或者空字符)。 代码示例&#xf…

[Linux]多线程详解

多线程 1.线程的概念和理解1.1线程的优点1.2线程的缺点1.3线程的设计1.4线程 VS 进程 2.线程控制2.1线程等待2.2 线程终止2.3 线程分离 3.线程互斥3.1背景3.2抢票代码演示3.3保护公共资源(加锁)3.3.1创建锁/销毁锁3.3.2申请锁/尝试申请锁/解锁 3.4解决抢…

大学语文教材电子版(第十一版)教学用书PDF及课件

大学语文课件:https://caiyun.139.com/m/i?005CiDusEVWnR 《大学语文》(第十一版)主编:徐中玉 齐森华 谭帆。 大学语文教材电子版教师用书PDF第一课《齐桓晋文之事》艺术赏析: 孟子四处游说,养成善辩的…

MySQL【七】

字符串函数 数学函数 日期函数 条件控制函数 类型转换函数 系统信息函数 自定义函数 DELIMITER  CREATE FUNCTION 函数名([参数名 参数数据类型[,…]])RETURNS 函数返回值的数据类型BEGIN函数体;RETURN 语句;ENDDELIMITER ;sql ########## 定义一个函数maxofthree()&#x…

第三百二十三节 Java线程教程 - Java同步器

Java线程教程 - Java同步器 同步器对象与一组线程一起使用。 它维护一个状态,根据它的状态,它让一个线程通过或强迫它等待。 本节将讨论四种类型的同步器: SemaphoresBarriersLatchesExchangers 信号量 信号量用于控制可以访问资源的线程…

《Java核心技术 卷I》用户界面AWT事件继承层次

AWT事件继承层次 EventObject类有一个子类AWTEvent,它是所有AWT事件类的父类。 Swing组件会生成更多其他事件对象,都直接拓展自EventObject而不是AWTEvent。 AWT将事件分为底层(low-level)事件和语义事件。 语义事件:表示用户的动作事件&…

Ubuntu从入门到精通(一)系统安装

Ubuntu从入门到精通(一) 1 Ubuntu镜像选择 下载Ubuntu 20.04系统ISO镜像 安装 Ubuntu 20.04系统,就必须有 Ubuntu 20.04系统软件安装程序可以通过浏览器访问Ubuntu20.04的官方站点, 然后在导舰栏找划 Dowwnloads->Mirrors链接&#xff…

用户自定义IP核——ZYNQ学习笔记6

一、试验任务 通过自定义一个 LED IP 核,通过 PS 端的程序来控制底板上 PL 端 LED1 呈现呼吸 灯的效果,并且 PS 可以通过 AXI 接口来控制呼吸灯的开关和呼吸的频率。 二、创建IP核 三、创建工程,调用IP #include "stdio.h" #includ…

Elasticsearch 8.16.0:革新大数据搜索的新利器

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…

【大数据学习 | HBASE高级】hive操作hbase

一般在查询hbase的数据的时候我们可以直接使用hbase的命令行或者是api进行查询就行了,但是在日常的计算过程中我们一般都不是为了查询,都是在查询的基础上进行二次计算,所以使用hbase的命令是没有办法进行数据计算的,并且对于hbas…

贴代码框架PasteForm特性介绍之markdown和richtext

简介 PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管…

ServletConfig、ServletContext、HttpServletRequest与HttpServletResponse常见API

目录 一、ServletConfig 二、ServletContext 三、ServletContext其他重要API (一)获取文件路径和上下文 (二)域对象的相关API 四、HttpServletRequest常见API (一)获取请求行/头信息相关 (二)获得请求参数相关 五、HttpServletResponse常见API 一、ServletConfig Se…

MySQL缓存使用率超过80%的解决方法

MySQL缓存使用率超过80%的解决方法 一、识别缓存使用率过高的问题1.1 使用SHOW GLOBAL STATUS命令监控1.2 监控其他相关指标二、分析缓存使用率过高的原因2.1 数据量增长2.2 查询模式变化2.3 配置不当三、解决缓存使用率过高的方法3.1 调整Buffer Pool大小3.1.1 计算合理的Buff…

新手教学系列——善用 VSCode 工作区,让开发更高效

引言 作为一名开发者,你是否曾经在项目中频繁地切换不同文件夹,打开无数个 VSCode 窗口?特别是当你同时参与多个项目或者处理多个模块时,这种情况更是家常便饭。很快,你的任务栏上挤满了 VSCode 的小图标,切换起来手忙脚乱,工作效率直线下降。这时候,你可能会问:“有…

springboot004基于springboot004网页时装购物系统(源码+包运行+LW+技术指导)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解

前言 🌟🌟本期讲解关于HTMLCSSJavaScript的基础知识,小编带领大家简单过一遍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 …