【mysql】数据库存量数据双主实现

数据库存量数据双主实现

概述

在现代数据库管理中,主从复制是一种常见的数据同步技术,用于实现数据的高可用性和灾难恢复。本文将详细介绍如何配置MySQL的双主(仅对一个库进行写入),并展示一个实际的迁移过程。

步骤1:数据库配置

首先,我们需要在主数据库上停止程序以确保没有新数据写入 可以在运行中,并修改MySQL配置以启用二进制日志。

  1. 主库添加binlog配置,并设置不需要同步的数据库
[mysqld]
log-bin=db11
server_id=1
expire-logs-days = 7
# 设置不需要同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
  1. 备库添加binlog配置,并设置不需要同步的数据库
[mysqld]
log-bin=db12
server_id=2
expire-logs-days = 7
# 设置不需要同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

步骤2:创建复制用户

两台数据库上分别新建一个用于复制的用户,并授权。

-- 在主库上执行
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.17.2.12' IDENTIFIED BY 'Test@320';-- 在备库上执行
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.17.2.11' IDENTIFIED BY 'Test@320';

步骤4:数据备份与恢复

在主库上,使用innobackupex工具在主库上进行数据备份,并在从库上恢复数据。

# 主库上备份数据(实际数据55G数据耗时:5分钟)
innobackupex --use-memory=1G --user=root --password=Root@320 /tmp/backup_test
# 执行校验命令,返回ok即可。
innobackupex --apply-log /tmp/backup_test/2023-12-25_02-52-07
# 将备份数据传输到备库(实际数据55G数据耗时:15分钟)
scp -r /tmp/backup_test/* root@172.17.2.12:/tmp/

在备库上,停止MySQL服务,移动原有数据目录,并从备份中恢复数据。

systemctl stop mysqld
cd /var/lib/
mv mysql mysql.bak
mkdir mysql
mv /tmp/2023-12-25_02-52-07/* mysql/
chown -R mysql.mysql mysql
systemctl start mysqld

步骤5:查看主从库上的binlog偏移并配置

  1. 查看主库上备份时的binlog偏移量。
cat /var/lib/mysql/xtrabackup_binlog_info 

比如为db11.000001 154

  1. 查看备库当前binlog偏移量
show master status;

比如为db12.000001 154

  1. 在备库上,配置主从复制信息
CHANGE MASTER TO MASTER_HOST="172.17.2.11", MASTER_USER="repl", MASTER_PASSWORD="Test@320", MASTER_LOG_FILE="db11.000001", MASTER_LOG_POS=154;
  1. 在主库上,重新创建复制用户并配置主从复制信息。
# 上面备份文件直接覆盖了repl用户需要重新创建。
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.17.2.12' IDENTIFIED BY 'Test@320';
CHANGE MASTER TO MASTER_HOST="172.17.2.12", MASTER_USER="repl", MASTER_PASSWORD="Test@320", MASTER_LOG_FILE="db12.000001", MASTER_LOG_POS=154;

步骤6:启动复制并检查状态

主备两台数据库上启动复制,并检查复制状态。

START SLAVE;
SHOW SLAVE STATUS\G;

一旦复制状态正常Slave_IO_RunningSlave_SQL_Running两个状态为yes。启动后再次检查主从状态是否正常,并持续观察。

检查

简单的sql查看表行数

SELECT table_name AS ‘表名’, TABLE_ROWS AS ‘行数’
FROM information_schema.TABLES
WHERE table_schema = ‘你的数据库名’;

不准。

可以使用直接select count(*) from '表名’或者安装percona-toolkit,使用pt-table-checksum命令校验。

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

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

相关文章

enable_shared_from_this

用途 struct S {shared_ptr<S> dangerous(){return shared_ptr<S>(this); // dont do this!} };int main() {shared_ptr<S> sp1(new S);shared_ptr<S> sp2 sp1->dangerous();return 0; }考虑以上代码&#xff0c;从一个被shared_ptr管理的struc…

SkyWalking Helm Chart 4.7.0 安装、配置

https://skywalking.apache.org/events/release-apache-skywalking-kubernetes-helm-chart-4.7.0/https://github.com/apache/skywalking-helm/tree/v4.7.0https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/简介 skywalking 是分布式系统的 APM(Applicat…

HTA8998 实时音频跟踪的高效内置升压2x10W免电感立体声ABID类音频功放

1、特征 输出功率(fIN1kHz,RL4Ω&#xff0c;BTL) VBAT 4V, 2x10.6W(VOUT9V,THDN10%) VBAT 4V, 2x8.6W (VOUT9V,THDN1%) 内置升压电路模式可选择:自适应实时音频跟踪 升压(可提升播放时间50%以上)、强制升压 最大升压值可选择&#xff0c;升压限流值可设置 ACF防破音功能 D类…

时间敏感网络与工业通信的融合:光路科技电力专用交换机和TSN工业交换机亮相EP电力展

12月7日&#xff0c;第三十一届中国国际电力设备及技术展览会&#xff08;EP Shanghai 2024&#xff09;暨上海国际储能技术应用展览会在上海新国际博览中心圆满落幕。本届展会以“数字能源赋能新质生产力”为主题&#xff0c;系统地呈现了电力设备行业在技术融合、转型升级及上…

Scala的单例对象

在Scala中&#xff0c;单例对象是一种特殊的类&#xff0c;它只能有一个实例&#xff0c;并且这个实例在需要时会自动创建。单例对象在Scala中通过object关键字来定义&#xff0c;它类似于Java中的静态成员和方法&#xff0c;但更加灵活和强大。 定义单例对象 以下是定义一个…

16、嵌套路由、query参数、params参数

嵌套路由 子路由,配置路由规则&#xff0c;使用children配置项&#xff1a; index.ts import {createRouter,createWebHashHistory, createWebHistory} from vue-routerimport Home from /pages/Home.vue import News from /pages/News.vue import Yule from /pages/Yule.vu…

前端请求后端接口报错(blockedmixed-content),以及解决办法

报错原因&#xff1a;被浏览器拦截了&#xff0c;因为接口地址不是https的。 什么是混合内容&#xff08;Mixed Content&#xff09; 混合内容是指在同一页面中同时包含安全&#xff08;HTTPS&#xff09;和非安全&#xff08;HTTP&#xff09;资源的情况。当浏览器试图加载非…

【Golang】Go语言编程思想(六):Channel,第四节,Select

使用 Select 如果此时我们有多个 channel&#xff0c;我们想从多个 channel 接收数据&#xff0c;谁来的快先输出谁&#xff0c;此时应该怎么做呢&#xff1f;答案是使用 select&#xff1a; package mainimport "fmt"func main() {var c1, c2 chan int // c1 and …

SpringBoot【八】mybatis-plus条件构造器使用手册!

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 经过上一期的mybatis-plus 入门教学&#xff0c;想必大家对它不是非常陌生了吧&#xff0c;这期呢&#xff0c;我主要是围绕以下几点展开&#xff0c;重点给大家介绍 里…

算法-字符串-32.最长有效括号

一、题目 二、思路解析 1.思路&#xff1a; 滑动窗口&#xff01;&#xff01;&#xff01; 2.常用方法&#xff1a; 无 3.核心逻辑&#xff1a; 1.特殊情况&#xff1a;当字符串为空或不存在 if(snull||s.length()0)return 0; 2.一般情况 a.记录最长有效括符res&#xff1b;初…

CRMEB Pro版v3.2源码全开源+PC端+Uniapp前端+搭建教程

一.介绍 crmeb pro版 v3.2正式发布&#xff0c;全新UI重磅上线&#xff0c;焕然一新&#xff0c;不负期待&#xff01;页面DIY设计功能全面升级&#xff0c;组件更丰富&#xff0c;样式设计更全面&#xff1b;移动端商家管理&#xff0c;让商城管理更便捷&#xff0c;还从页面…

Java各种排序

快速排序 我们会以最左边的元素作为标准&#xff0c; 从高位取值和他比较&#xff0c;找到高位比他小的元素和low互换&#xff0c;如果比他大则坐标减一继续找 从低位取值找到比他大的元素&#xff0c;和high互换填补到high的位置&#xff0c;如果比他小则继续找 直到low …

MMN模型:服务率,到达率计算公式

MMN模型:服务率,到达率计算公式 即多服务窗排队模型M/M/N,是一种用于分析多个服务窗口(服务员)排队系统的数学模型。在这个模型中,“M”代表顾客到达时间间隔和服务时间均服从指数分布,这是排队论中常用的两种分布类型,用于描述随机事件发生的概率。具体来说,第一个“…

9. Win11上原生运行Ubuntu

本文介绍如何在win11原生系统上运行ubuntu&#xff0c;不需要额外安装虚拟机&#xff0c;以及如何配置网络等。 1.安装正版Win11 由于正版Win11需要钱&#xff0c;网上能破解的win11可能有问题&#xff0c;但是它们的破解工具&#xff0c;却是能正常用的&#xff0c;所以&…

【菜笔cf刷题日常-1800】D. Fun with Integers(数学)

链接&#xff1a;https://codeforces.com/problemset/problem/1062/D 题意&#xff1a;给你一个大于或等于 2 的正整数 n 。对于每一对整数 a 和 b ( 2≤|a|,|b|≤n )&#xff0c;当且仅当存在一个整数 x 使得 1<|x| 和 ( a⋅xb 或 b⋅xa )&#xff0c;其中 |x| 表示 x 的绝…

【CSS in Depth 2 精译_075】12.2 Web 字体简介 + 12.3 谷歌字体的用法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 12.1.1 使用 em 还是 px12.1.2 对行高的深入思考12.1.3 行内元素的间距设置 12.2 Web 字体 ✔️12.3 谷歌字体 ✔️12.…

【学习笔记】目前市面中手持激光雷达设备及参数汇总

手持激光雷达设备介绍 手持激光雷达设备是一种利用激光时间飞行原理来测量物体距离并构建三维模型的便携式高科技产品。它通过发射激光束并分析反射回来的激光信号&#xff0c;能够精确地获取物体的三维结构信息。这种设备以其高精度、适应各种光照环境的能力和便携性&#xf…

Python+OpenCV系列:图像的运算

文章目录 PythonOpenCV系列&#xff1a;图像的加权和、覆盖1. 图像加权和&#xff08;加权融合&#xff09;2. 图像覆盖&#xff08;区域叠加&#xff09;3. 应用场景4. 总结 PythonOpenCV系列&#xff1a;图像的加权和、覆盖 在图像处理中&#xff0c;图像的加权和与覆盖是两…

SQL汇总数据:聚集函数

我们经常需要汇总数据而无需实际检索出这些数据&#xff0c;为此SQL提供了专门的函数。使用这些函数&#xff0c;SQL查询能够高效地检索数据&#xff0c;以便进行分析和报表生成。这类检索的例子包括&#xff1a; 确定表中行数&#xff08;或者满足某个条件或包含某个特定值的…

Midjourney基础教程-功能界面详解

基础入门教程&#xff1a; 一.Midjourney快速入门(3步画出你的第一张图&#xff09; 注&#xff1a; 1.平台为大家设置了自动翻译&#xff0c;可以直接写中文提示词&#xff0c;自动翻译成英文。当然要求更准确&#xff0c;大家可以先翻译成英 文在输入进来。 2.提示词如何去…