问题描述

由于运维失误,从库未及时设置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--修复从库上单个数据库的数据的更多相关文章

  1. (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计

    转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...

  2. 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息

    概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...

  3. (笔记)Mysql实例:建库建表并插入数据1

    drop database if exists school;  // 如果存在school则删除create database school;  // 建立库schooluse school;  / ...

  4. MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作(转)

    MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的 ...

  5. SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做

    首先要执行 sp_addlinkedserver '服务器ip' 然后开始写语句 insert into ip.库名字.dbo.table select * from iserted

  6. (笔记)Mysql实例:建库建表并插入数据2

    drop database if exists school;  // 如果存在SCHOOL则删除create database school;  // 建立库SCHOOLuse school;  / ...

  7. MySQL笔记(一)之新建数据库和数据表

    创建数据库 CREATE DATABASE database_name 创建数据表 CREATE TABLE table_name ( 列1 数据类型, 列2 数据类型, 列3 数据类型, .... ...

  8. 浅析 MySQL Replication(本文转自网络,非本人所写)

    作者:卢飞 来源:DoDBA(mysqlcode) 0.导读 本文几乎涵盖了MySQL Replication(主从复制)的大部分知识点,包括Replication原理.binlog format.复 ...

  9. 常见的MySQL Replication Error

    现在不少公司都在用MySQL(master)-->MySQL(slave)的框架,当然也有一主多从的架构,这也是MySQL主从的一个延伸架构;当然也有的公司MySQL主主的架构,MySQL主主架 ...

随机推荐

  1. Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型

    Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型 OxyPlot组件中支持5种类型的金融图表,它们分别为销量图.高低图.股票K线图.股票走势图和旧式股票图,如图1.20~1. ...

  2. win 10 关闭或打开 测试模式

    一.关闭测试模式 方法: 以管理员身份运行 cmd 运行:bcdedit /set testsigning off 重启电脑 二.开启测试模式 以管理员身份运行 cmd 运行:bcdedit /set ...

  3. openresty开发系列31--openresty执行流程

    openresty开发系列31--openresty执行流程 我们先看个例子 location /test {    set $a 32;    echo $a;    set $a 56;    e ...

  4. 使用sphinx为python注释生成docAPI文档

    sphinx简介 sphinx是一种基于Python的文档工具,它可以令人轻松的撰写出清晰且优美的文档,由Georg Brandl在BSD许可证下开发. 新版的Python3文档就是由sphinx生成 ...

  5. [LeetCode] 129. Sum Root to Leaf Numbers 求根到叶节点数字之和

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  6. [LeetCode] 723. Candy Crush 糖果粉碎

    This question is about implementing a basic elimination algorithm for Candy Crush. Given a 2D intege ...

  7. java通过下划线数字字面量增加可读性:10_00_00表示100000

    用法 int x1 = 2_014; // Underscore in deciaml format int x2 = 2___014; // Multiple consecutive undersc ...

  8. PHPExcel 中文使用手册详解 二

    $objPHPExcel = new \PHPExcel(); //定义配置 $topNumber = 2;//表头有几行占用 $xlsTitle = iconv('utf-8', 'gb2312', ...

  9. C/c++语言开源项目总结

    值得学习的C语言开源项目 -1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性 ...

  10. docker安装+docker-compose

    1.docker安装 yum install -y yum-utils device-mapper-persistent-data yum-config-manager --add-repo http ...