利用binlog来恢复数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: http://bbs.kaspersky.com.cn/thread-287149-1-1.html开发库和线上表结构有很多不一样,分表个数也不同,我需要重新整理保持开发库和线上一致,之前已经告知开发数据是否允许丢失,开发说数据可以不要了,直接丢掉,等我搞好之后开发告诉我部分数据(ring)是不能删除的,我晕,只好想办法来恢复数据了,没有备份,不过还好有全部的binlog。

http://bbs.kaspersky.com.cn/thread-287149-1-1.html

开发库和线上表结构有很多不一样,分表个数也不同,我需要重新整理保持开发库和线上一致,之前已经告知开发数据是否允许丢失,开发说数据可以不要了,直接丢掉,等我搞好之后开发告诉我部分数据(ring)是不能删除的,我晕,只好想办法来恢复数据了,没有备份,不过还好有全部的binlog。

1.根据binlog解析出所有ring数据库的所有sql
[mysql@DEV_SNS1 log]$mysqlbinlog --no-defaults --database=ring --start-datetime="2005-04-20 9:55:00" --stop-datetim="2009-04-08 08:05:00" /u01/mysql/log/mysql-bin.000005 > /u01/mysql/log/mysql_restore5.sql

[mysql@DEV_SNS1 log]$ ls -l /u01/mysql/log/mysql_restore5.sql
-rw-r--r--    1 mysql    dba           407 Apr  8 15:33 /u01/mysql/log/mysql_restore5.sql
--start-datetime=datetime 从哪个点开始解析
--stop-datetim=datetime   从哪个点停止解析
--database=ring               指定需要解析哪个数据库,只提取某个数据库的sql语句
--如果有多个binlog的话需要解析多次,需要解析所有的binlog
2.重新在数据库中执行
[mysql@DEV_SNS1 log]$mysql -u root <mysql_restore5.sql
ERROR 1062 (23000) at line 2559580: Duplicate entry '175754263-140' for key 1 --恢复过程中出现主键冲突,导入失败
3.删除已经恢复的数据,重新恢复一遍
[mysql@DEV_SNS1 log]$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 7647
Server version: 5.0.67-log Source distribution
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
root@(none) 02:55:41>drop database ring;
Query OK, 8 rows affected (0.04 sec)
[mysql@DEV_SNS1 log]$ mysql -u root -f <mysql_restore5.sql    ---f:忽略错误并继续                    
ERROR 1062 (23000) at line 2559580: Duplicate entry '175754263-140' for key 1
ERROR 1062 (23000) at line 2564671: Duplicate entry '138' for key 1
ERROR 1062 (23000) at line 2566216: Duplicate entry '139' for key 1
ERROR 1062 (23000) at line 2566224: Duplicate entry '140' for key 1
ERROR 1062 (23000) at line 2566232: Duplicate entry '141' for key 1
ERROR 1062 (23000) at line 2566240: Duplicate entry '142' for key 1
ERROR 1062 (23000) at line 2648410: Duplicate entry '143' for key 1
ERROR 1062 (23000) at line 2648418: Duplicate entry '144' for key 1
ERROR 1062 (23000) at line 2648581: Duplicate entry '145' for key 1
ERROR 1062 (23000) at line 2648589: Duplicate entry '146' for key 1
ERROR 1062 (23000) at line 2648597: Duplicate entry '147' for key 1
ERROR 1062 (23000) at line 2648605: Duplicate entry '148' for key 1
ERROR 1062 (23000) at line 2649279: Duplicate entry '149' for key 1
ERROR 1062 (23000) at line 2649287: Duplicate entry '150' for key 1
ERROR 1062 (23000) at line 2649295: Duplicate entry '151' for key 1
ERROR 1062 (23000) at line 2649303: Duplicate entry '152' for key 1
ERROR 1062 (23000) at line 2649311: Duplicate entry '153' for key 1
ERROR 1062 (23000) at line 2649319: Duplicate entry '154' for key 1
ERROR 1062 (23000) at line 2649327: Duplicate entry '155' for key 1
ERROR 1062 (23000) at line 2649335: Duplicate entry '156' for key 1
 
恢复成功,有部分数据冲突需要开发自己去处理了。
总的来说,不管是否重要,因为重要性很多时候我们自己是无法评定的,大操作之前一定先做好备份,备份才是王道。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
mysql的binlog恢复数据
mysql的binlog恢复数据
31 0
|
4月前
|
关系型数据库 MySQL 数据库
Mysql数据库redo log及binlog的写入
Mysql数据库redo log及binlog的写入
|
2月前
|
消息中间件 Java Kafka
启动多个jar包来监听同一个数据库的binlog
【2月更文挑战第27天】启动多个jar包来监听同一个数据库的binlog
23 8
|
3月前
|
监控 安全 数据库
Binlog vs. Redo Log:数据库日志的较劲【高级】
Binlog vs. Redo Log:数据库日志的较劲【高级】
82 0
|
3月前
|
存储 缓存 关系型数据库
Binlog vs. Redo Log:数据库日志的较劲【基础】
Binlog vs. Redo Log:数据库日志的较劲【基础】
196 0
|
4月前
|
关系型数据库 MySQL 流计算
Flink CDC全库订阅binlog你们怎么配置的,我们这好像有漏数据的情况?
Flink CDC全库订阅binlog你们怎么配置的,我们这好像有漏数据的情况?
70 3
|
7月前
|
数据库 流计算
Flink CDC的工作原理是通过监听数据库的binlog来实现实时数据同步的
Flink CDC的工作原理是通过监听数据库的binlog来实现实时数据同步的
179 1
|
9月前
|
数据库 流计算
Flink CDC 通过订阅数据库的 binlog
Flink CDC 通过订阅数据库的 binlog
186 1
|
9月前
|
SQL 存储 关系型数据库
mysqldump+binlog+gtid 实现数据库的增量备份(下)
mysqldump+binlog+gtid 实现数据库的增量备份(下)
121 0
|
9月前
|
SQL 存储 关系型数据库
mysqldump+binlog+gtid 实现数据库的增量备份(上)
mysqldump+binlog+gtid 实现数据库的增量备份
205 0