在另一台服务器上还原被误删的 MySQL 数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在另一台服务器上还原被误删的 MySQL 数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2565字,纯文字阅读大概需要4分钟。
内容图文
![在另一台服务器上还原被误删的 MySQL 数据](/upload/InfoBanner/zyjiaocheng/502/dc024c0ddc7746609095380f4f980444.jpg)
mysqldump -S /tmp/mysql3309.sock -u root -pMySQL8.0 --single-transaction --quick --flush-logs --triggers --routines --events --set-gtid-purged=OFF --databases testdb > testdb.dump
备份时表 nw 存在以下数据
mysql> select * from nw;
+---------------------+
| dt |
+---------------------+
| 2018-11-12 10:20:26 |
| 2018-11-12 10:20:27 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:29 |
| 2018-11-12 10:30:53 |
| 2018-11-12 10:30:54 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:56 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:30:57 |
+---------------------+
将最近的备份和备份后的二进制文件拷贝另一台有 MySQL 实例的服务器B
将二进制文件提取为明文文件,查询数据删除的时间点
mysqlbinlog --base64-output=decode-rows -v binlog.000006 > result.sql
#181112 10:34:23 server id 3309 end_log_pos 2846 Delete_rows: table id 694 flags: STMT_END_F
### DELETE FROM `testdb`.`nw`
### WHERE
### @1=1541989226
### DELETE FROM `testdb`.`nw`
在服务器B上还原数据库
mysql -S /tmp/mysql3309.sock -u root -pMySQL8.0 < testdb.dump
将删除数据前的二进制日志重新应用到数据库
mysqlbinlog --stop-datetime="2018-11-12 10:34:00" --skip-gtids binlog.000006 | mysql -S /tmp/mysql3309.sock -u root -pMySQL8.0
将表 nw dump 出来
mysqldump -S /tmp/mysql3309.sock -u root -pMySQL8.0 --single-transaction --quick --flush-logs --triggers --routines --events --set-gtid-purged=OFF testdb nw > nw.dump
提取 nw.dump 中的 insert 语句
grep "INSERT INTO \`nw\` VALUES" nw.dump > insert.sql
将 insert 语句在原数据库执行,查询结果数据已经恢复
mysql> use sbtest;
mysql> source insert.sql
mysql> select * from nw;
+---------------------+
| dt |
+---------------------+
| 2018-11-12 10:20:26 |
| 2018-11-12 10:20:27 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:29 |
| 2018-11-12 10:30:53 |
| 2018-11-12 10:30:54 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:56 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:33:37 |
| 2018-11-12 10:33:38 |
| 2018-11-12 10:33:39 |
| 2018-11-12 10:33:40 |
| 2018-11-12 10:33:40 |
| 2018-11-12 10:33:41 |
| 2018-11-12 10:33:42 |
| 2018-11-12 10:33:42 |
| 2018-11-12 10:33:43 |
+---------------------+
注意:不要在原服务器上执行还原操作
在另一台服务器上还原被误删的 MySQL 数据
标签:single 文件拷贝 服务 binlog -- table int 时间 databases
本文系统来源:http://blog.51cto.com/linux10000/2315677
内容总结
以上是互联网集市为您收集整理的在另一台服务器上还原被误删的 MySQL 数据全部内容,希望文章能够帮你解决在另一台服务器上还原被误删的 MySQL 数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。