欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 宝塔 binlog mysql 数据恢复

宝塔 binlog mysql 数据恢复

2025/2/9 8:08:30 来源:https://blog.csdn.net/qq_35653974/article/details/145107133  浏览:    关键词:宝塔 binlog mysql 数据恢复

如果 MySQL开启了事务日志,并且你想回滚到两个小时前的状态,可以尝试以下步骤

1.确认二进制日志是否启用

首先,需要确认 MySQL是否启用了二进制日志(binarylog)。可以通过以下命令查看:
sql
SHOW VARIABLES LIKE ‘log bin’;
如果 log_bin 的值为 ON,则表示二进制日志已启用。3

2.查找二进制日志文件

使用以下命令查找二进制日志文件:
sql
复制
SHOW BINARY LOGS;
这将列出所有可用的二进制日志文件及其大小。”

3.使用 nysqlbinlog 工具

mysqlbinlog是一个实用工具,可以将二进制日志文件转换为可读的 SQL 语句。你可以使用它来查看特走时间范围内的日志内容,并生成回滚脚本。

1.生成特定时间范围内的日志内容

sh
mysqlbinlog–start-datetime="2025-01-10 10:00:00–stop-datetime="2025-01-10 12:00:00"binlog.000001>binlog output.sq1
其中 binlog.000001 是二进制日志文件名,2025-01-10 10:00:00和2025-01-10 12:00:00 是你希望回滚的时间范围。3

2.生成回滚脚本:

sh
mysqlbinlog–start-datetime=“2025-01-10 10:00:00”–stop-datetime=“2025-01-10 12:00:00”–reverse binlog.000001>rollback.sq1
这将生成一个包含回滚操作的 SQL 脚本。

4.应用回滚脚本

将生成的 rollback.sql 脚本应用到数据库中:
sh
mysql-u your username -p your database<rollback.sql
输入密码后,回滚操作将开始执行。”

5.验证回滚结果

执行回滚操作后,建议验证数据库状态,确保数据已正确回滚到两个小时前的状态。
注意事顶
备份当前数据库:在执行回滚操作之前,建议备份当前数据库状态,以防操作失败导致数据丢失,。测试环境:在生产环境中进行回滚操作之前,建议先在测试环境中进行测试,确保操作的可行性和安全性。
希望这些步骤能帮助你成功回滚数据库到两个小时前的状态

案例:

//  mysql -u tiku -p tiku < full_backup.sql// mysqlbinlog --stop - date = "2025 - 01 - 10 12:00:00" /www/server/data/mysql - bin.000015 | mysql -u your_username -p your_database// mysqlbinlog --stop - index = mysql - bin.000016 --stop - position = 77339 /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p// mysqlbinlog --stop - date = "2025 - 01 - 10 13:30:00" /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p// /www/server/mysql/bin/mysqlbinlog --stop-datetime="2025-01-10 13:30:00" /var/log/mysql/mysql - bin.000014 /var/log/mysql/mysql - bin.000015 /var/log/mysql/mysql - bin.000016 | mysql -u root -p// /www/server/mysql/bin/mysqlbinlog --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p// /www/server/mysql/bin/mysqlbinlog --force --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p// /www/server/mysql/bin/mysqlbinlog --force -if-open --stop-datetime="2025-01-10 15:30:00" /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 | mysql -u root -p// /www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000014 /www/server/data/mysql-bin.000015 /www/server/data/mysql-bin.000016 > binlog_content.sql// grep -B 1000 -E '2025- 01 - 10 [0 - 9]{2}:[0 - 9]{2}:[0 - 9]{2}' binlog_content.sql | awk 'BEGIN {flag = 0} /2025 - 01 - 10 15:30:00/ {flag = 1} flag == 0' > filtered_binlog_content.sql// grep -B 1000 -E '2025-01-10[[:space:]]15:[0-9]{2}:[0-9]{2}' binlog_content.sql | awk 'BEGIN {flag = 0} /2025-01-10 15:30:00/ {flag = 1} flag == 0' > filtered_binlog_content.sql

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com