mysql 主从备份 全量数据_当主库存在历史数据时如何完成全量Mysql主从复制
当主库存在历史数据时如何完成全量Mysql主从复制
上一篇文章介绍了[docker+mysql的主从复制的搭建][1],使用docker有许多优点:可以轻松实现跨平台的移植、docker容器之间不会互相影响、容器内部不会污染宿主机的环境等等。如果大家还没有接触docker,建议先去了解一下docker的使用教程,当然了,不会docker也不影响学习解决该问题的大体步骤。
前提:
当决定使用Mysql主从复制的数据库架构时,可能你的工程已经运行了一段时间,这是很常见的场景,比如目前我负责的一个项目,我想改变生产环境的单节点数据库的现状,通过主从复制为读写分离作铺垫。那么就需要两台及以上的节点作为数据库节点,这里所谓的节点不仅仅指服务器,也可能是同一台服务器,不同端口,使用docker进行隔离。
可是我在配置完主从复制后发现,主节点已经存在的数据并没有同步到从节点,当主节点向数据库写数据时,从节点重复这些操作,可从节点本身根本没有创建那些主节点的库,导致运行出错、IO线程坏死,最终从节点挂掉
教程开始
查看主库的已有数据库
show databases;
假设其中test数据库是我们想要主从同步的数据库,模拟生产环境,该数据库中已经有了很多数据
use test;
select * from user;
锁定主数据库
锁定主数据库,只允许读取不允许写入,这样做的目的是防止备份过程中或备份完成之后有新数据插入,导致备份数据和主数据数据不一致,同样,这样做也有弊端,可能在锁库期间会影响正常的业务流程,所以我们应使锁库的粒度尽可能小。
flush tables with read lock;
查询主数据库状态,并记下FILE及Position的值
show master status;
开始备份主数据库
退出mysql终端,执行docker mysql备份命令
docker exec [CONTAINER] /usr/bin/mysqldump -u username --password=xxx [DATABASE] > back.sql
[CONTAINER] 是你自己容器的名字, [DATABASE]是你自己数据库的名字,back.sql是临时产生的备份文件,里面是sql语句, username是你自己的用户名,一般是root,xxx则是你自己的用户密码。该命令的意思是执行docker容器内mysql相关命令:mysqldump,将指定的数据库导出到宿主机当中
我们这里只需要备份test数据库,若要备份全部数据库,[DATABASE]处使用--all-databases
在宿主机上执行下列语句
图中的warnming是因为我们在命令行输入了密码,所以会有安全警告信息。可以看到,已经在宿主机上生成了back.sql,
开始导入从数据库
在导入备份文件之前,需要在从库中手动建立相应的同名库CREATE DATABASE test;,否则会出现如下报错
找不到相关数据库
在手动创建完数据库后执行下列语句
cat back.sql | docker exec -i [CONTAINER] /usr/bin/mysql -u username --password=xxx [DATABASE]
备份成功
之后就可以开始进行主从模式的配置了,具体可以参考我这篇文章[docker+mysql的主从复制的搭建][1]
记住配置完要解锁主库
unlock tables;
大功告成!
原文:https://www.cnblogs.com/tian874540961/p/12144251.html
mysql 主从备份 全量数据_当主库存在历史数据时如何完成全量Mysql主从复制相关推荐
- mysql主从备份及原理分析
为什么80%的码农都做不了架构师?>>> 以下教程结合网上资料和自己的总结,综合而成,实际做的过程中发现网上部分网友的教程不是很详细,有些地方的坑也没有点到,从而产生了如下教程 ...
- linux下 mysql主从备份
一.准备 用两台服务器做测试: Master Server: 192.0.0.1/Linux/MYSQL 4.1.12 Slave Server: 192.0.0.2/Linux/MYSQL 4 ...
- MySql主从备份Slave
Mysql主从备份可以在除主服务器外的其他服务器是部署从库,用于实时备份生产环境数据,核心是mysql的log-bin日志(二进制日志),主库开启bin日志后,从库通过日志同步(Slave I/O)和 ...
- mysql 主从备份 主服务器配置_同一服务器配置Mysql主从备份
因为是在同一服务器上配置并且没有使用虚拟机,所以在网上找资料是找到的写的不全,写的好的又没百度到,你说配置难么其实也跟学自行车一样! 准备环境 Windows10 主库 Mysql 5.6.21 从库 ...
- mysql主从备份导入数据库_[导入]MySQL数据库的主从及双机备份
花了半天时间研究了下下MYSQL的备份实现,发现其是在MY.CNF(MY.INI)配置文件中作的设置,直接设置服务器唯一性ID号加上其它的附加设 置,则可作为一台MASTER,而在 SLAVE机上,也 ...
- mysql 主从备份问题_我遇到的mysql主从同步的问题
测试mysql主从同步的问题,主从同步test库. 主库: root@ttt 11:00>use test; Database changed root@test 11:00>show t ...
- mysql物理备份迁移注意细节_物理拷贝备份mysql到其他机器上恢复
经常会遇到mysql数据要迁徙的情况 ,逻辑导出是可以的 但是就是太慢 第三方工具也同样可以用 也是操作麻烦,最简单粗暴的方式就是直接拷贝物理文件来的最快 也很简单 当然 前提是远程服务器和目标服务器 ...
- mysql数据库恢复数据_【技术分享】使用Innodb存储引擎的mysql数据库恢复
作者:维一零 预估稿费:400RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 前言 某天,在测试一张新数据表的字段时,由于在phpmyadmin不断 ...
- centos mysql 主从_CentOS 搭建 MySql 主从备份
约定: 192.168.21.128 Master 192.168.21.129 Slave 以下配置拷贝与网络 配置篇 一.配置MySQL主服务器(192.168.21.128) mysql -u ...
最新文章
- B-树的一点既不形象又不恰当的比喻
- 点击别的地方隐藏下拉列表
- Java 读取 .properties 配置文件的几种方式
- 计算机应用能力power,全国专业技术人员计算机应用能力考试专用教材——PowerPoint 2003中文演示文稿5日通题库版(双色)(附光盘) - 中国考研网...
- 利用Flash读取SQL Server数据库的值
- python使用UUID生成唯一标识
- python创建和删除文件有什么区别_python创建和删除文件
- Rosalind工具库:使用EMBOSS处理生物数据
- 华为手机投屏电脑_手机投屏干货分享:华为如何投屏到电视机?
- Windows 安全杂记(一)
- 《机械原理》上 学后感
- [UPF]Synopsys推荐的UPF流程及Power Domain简介
- 工业相机与工业镜头相关参数详解
- 基于Transformer的时空融合网络地铁客流预测模型
- matlab 遥感图像分类,彩色遥感图像分类算法及Matlab实现
- c语言字符串atoi函数,C++_C语言中一些将字符串转换为数字的函数小结,C语言atoi()函数:将字符串转换 - phpStudy...
- (初学笔记1)python读多波段遥感影像并存到三维数组中
- 数据合并中pd.merge()和pd.concat()区别
- 解决报错:org/springframework/util/backoff/BackOff
- 初识:神经网络(Neural Networks)
热门文章
- 【Python】jieba库的使用
- 【Python】pyinstaller安装失败的解决办法
- 关于Dev-C++的安装以及基本使用方法
- C#LeetCode刷题之#622-设计循环队列​​​​​​​(Design Circular Queue)
- C#LeetCode刷题之#441-排列硬币(Arranging Coins)
- C#LeetCode刷题之#67-二进制求和(Add Binary)
- css3 下边框缓缓划过_CSS3 框大小
- 一文搞定Python正则表达式
- 有缘网分布式爬虫案例2
- Python3.6字符串新特性