MySQL Replication--修复从库上单个数据库的数据
问题描述
由于运维失误,从库未及时设置read_only,导致从库上某库数据被修改,由于整个实例数据量较大,重做成本较高,而该数据库数据较少,因此考虑如何修复该数据库的数据。
操作前提
1、复制使用位点同步,未使用MASTER_AUTO_POSITION=1选项
2、程序对数据库操作不存在跨库事务,保证过滤该库的复制事件后不会丢失其他库的事件。
处理步骤
1、停止该从库上复制(实际复制已停止)
STOP SLAVE;
2、在主库上备份整表数据(注意记录主库位点)
/export/servers/mysql/bin/mysqldump \
--socket="/export/data/mysql/tmp/mysql.sock" \
--host="127.0.0.1" \
--port= \
--user='mysql_root' \
--password="mysql_root_pws" \
--default-character-set="utf8" \
--single-transaction \
--databases 'demodb' \
--hex-blob --opt --quick \
--events --routines --triggers \
--master-data= \
--set-gtid-purged=OFF \
> /export/data/mysql/dumps/demodb.sql
3、修改从库复制属性,跳过该库相关复制
CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(test,demodb)
4、将主库上mysqldump出来的文件复制到从库,并查看位点信息
head -n /export/data/mysql/dumps/demodb.sql |grep 'CHANGE MASTER' 输出结果为:
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.003001', MASTER_LOG_POS=;
5、使用START SLAVE UNTIL将复制执行到备份位点
START SLAVE UNTIL MASTER_LOG_FILE='mysql-bin.003001', MASTER_LOG_POS=;
6、将备份位点的数据更新到从库中
/export/servers/mysql/bin/mysql \
--host="127.0.0.1" \
--port= \
--user='mysql_root' \
--password="mysql_root_pws" \
--database="mysql" \
--verbose \
--batch \
-vvv \
</export/data/mysql/dumps/demodb.sql \
>/export/data/mysql/dumps/demodb.log \
>/export/data/mysql/dumps/demodb.err
7、修改从库复制属性,去除对该库的过滤复制
CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(test)
8、开启复制,复制恢复正常
START SLAVE;
MySQL Replication--修复从库上单个数据库的数据的更多相关文章
- (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计
转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...
- 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息
概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...
- (笔记)Mysql实例:建库建表并插入数据1
drop database if exists school; // 如果存在school则删除create database school; // 建立库schooluse school; / ...
- MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作(转)
MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的 ...
- SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做
首先要执行 sp_addlinkedserver '服务器ip' 然后开始写语句 insert into ip.库名字.dbo.table select * from iserted
- (笔记)Mysql实例:建库建表并插入数据2
drop database if exists school; // 如果存在SCHOOL则删除create database school; // 建立库SCHOOLuse school; / ...
- MySQL笔记(一)之新建数据库和数据表
创建数据库 CREATE DATABASE database_name 创建数据表 CREATE TABLE table_name ( 列1 数据类型, 列2 数据类型, 列3 数据类型, .... ...
- 浅析 MySQL Replication(本文转自网络,非本人所写)
作者:卢飞 来源:DoDBA(mysqlcode) 0.导读 本文几乎涵盖了MySQL Replication(主从复制)的大部分知识点,包括Replication原理.binlog format.复 ...
- 常见的MySQL Replication Error
现在不少公司都在用MySQL(master)-->MySQL(slave)的框架,当然也有一主多从的架构,这也是MySQL主从的一个延伸架构;当然也有的公司MySQL主主的架构,MySQL主主架 ...
随机推荐
- Eclipse导入工程提示“No projects are found to import”
如果发现导入工程的时候,出现"No projects are found to import" 的提示,首先查看项目目录中是否有隐藏文件.project,还有目录结构也还要有一个隐 ...
- sklearn逻辑回归(Logistic Regression,LR)调参指南
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- android -------- 流式布局,支持单选、多选等
最近开发中有流式标签这个功能,网上学了下,来分享一下 Android 流式布局,支持单选.多选等,适合用于产品标签等. 效果图: 用法: dependencies { compile 'com.hym ...
- Redis慢日志查询
Redis slowlog 是个什么 redis的slow log记录了那些执行时间超过规定时长的请求.执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞 ...
- Oracle系列三 过滤和排序
WHERE子句 使用WHERE 子句,将不满足条件的行过滤掉. 示例: SELECT employee_id, last_name, job_id, department_id FROM employ ...
- (5)Flask项目会员登录页
一.添加登录和登出的路由 修改app/home/views.py内容,增加登录("/login/")和登出("/logout/")的路由: # coding:u ...
- mysql 中 int 等类型如何选择
详见:https://blog.csdn.net/samll_snail/article/details/86534719 .
- Mac下的IDEA快捷键
快捷键 功能 Option + enter 打开提示 Command + / 注释方式是“行注释”:可以注释当前行.取消当前行的注释 注释选中的内容.取消选中行的注释 Option + Command ...
- SDN实验---Ryu的应用开发(一)Hub实现
补充: (一)Ubuntu下安装Notepadqq 背景:为什么安装Notepadqq Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组.但是可惜的是N ...
- 人工智能新编程语言-Gen
MIT 的一个研究小组正努力让初学者更容易入门人工智能,同时也帮助专家进一步推进这个领域的发展. 在 PLDI 大会(Programming Language Design and Implement ...