MySQL利用binlog来恢复数据库
2023-09-11 14:19:24 时间
1.根据binlog解析出所有ring数据库的所有sql
[mysql@localhost ]$ 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@localhost ]$ 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@localhost ]$ mysql -u root < /u01/mysql/log/mysql_restore5.sql
ERROR 1062 (23000) at line 2559580: Duplicate entry 175754263-140 for key 1 --恢复过程中出现主键冲突,导入失败
3.删除已经恢复的数据,重新恢复一遍
[mysql@localhost ]$ 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@localhost ]$ mysql -u root -f < /u01/mysql/log/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
恢复成功,有部分数据冲突需要开发自己去处理了。
相关文章
- MySQL 操作数据库、数据表
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
- 【MySQL】数据库复习——SQL
- Docker最全教程之MySQL容器化 (二十四)
- Linux集群和自动化维1.5.2 利用tuning-primer脚本来调优MySQL数据库
- MySQL使用初步—mysql数据库的基本命令
- [转]MySQL中timestamp数据类型的特点
- Specified key was too long; max key length is 767 bytes导入mysql数据库表报错
- MySQL mysqldump备份数据库及恢复数据库(mysql命令)
- qt连接MySql数据库及增删改查示例
- 【MySQL】如何向mysql数据库插入当前时间
- MySQL 数据库设计 笔记与总结(1)需求分析
- .NET/Mysql-petatoco连接mysql数据库
- 基于C#+MySQL开发(WinForm)音乐播放器系统【100010302】
- Linux下安装MySQL数据库
- 转 mysql spool_用MySQL实现类似Oracle SPOOL的功能
- python操作mysql数据库系列-操作MySql数据库(五)
- python操作mysql数据库系列-安装MySql
- Robot Framework - 操作 MySql 数据库
- mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理
- MySQL数据库:参数优化
- Python 生成MySQL数据库的表结构到word文档
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- Mysql数据库存储过程
- MySQL 安装mysql数据库