mysql在没事务,没备份的情况下,过段时间后会自己恢复到大约一小时前的状态,请问什么情况?

如题所述

您好:首先这个情况一定是不正常的。
您最好监测一下,是某些表回档还是整库回档,大概多长时间出现,这有助于排查问题。

然后,从服务器方面看,有没有做Raid镜像,热备份,云盘快照等。

再然后,查看数据库日志,是否有异常连接和异常请求,排除SQL注入等因素。

再再然后,检测一下程序代码,是否有程序包含定时作业。
是否有对数据库操作的小程序或服务器组件,系统服务等。

最后,逐步停止会操作数据库的因素,逐一排查。追问

我发现回档和异常关闭有关,假如直接关闭了tomcat或者mysql的进程,就有概率出现这个情况,5次关闭就会出现2次回档的情况,类似的也包括直接关机,也有可能导致发生.请问是怎么回事呢

追答

不好意思,今天硬盘挂了,才处理好。

刚才查了一下资料
https://segmentfault.com/q/1010000006202863?_ea=1071166
这里的情况您可以参考一下。
主要内容是《自动 ROLLBACK 没有处理的事务》
而且您也说是特定几个表,请查看这几个表有哪些存储过程在控制。
主要看开启了事务的,个人觉得这个比较接近您的情况。

温馨提示:内容为网友见解,仅供参考
无其他回答

mysql在没事务,没备份的情况下,过段时间后会自己恢复到大约一小时前的...
您好:首先这个情况一定是不正常的。您最好监测一下,是某些表回档还是整库回档,大概多长时间出现,这有助于排查问题。然后,从服务器方面看,有没有做Raid镜像,热备份,云盘快照等。再然后,查看数据库日志,是否有异常连接和异常请求,排除SQL注入等因素。再再然后,检测一下程序代码,是否有程序包含...

mysql 执行了 update,数据库没做备份,能还原吗
2 在进行删除操作之前有备份,比如mysqldump,物理备份数据文件之类的操作,那么可以恢复到删除前的数据 3 如果你的删除操作是直接对data下的文件进行删除,注意,不是粉碎文件操作,那么你可以尝试用磁盘恢复软件来找回被误删的数据文件;除以上情况,其他真的是没法恢复了,不过貌似很多公司号称能够恢复,要...

如何找回丢失的MySQL三天前数据mysql三天前数据
1. 使用备份恢复数据 备份是防止数据丢失的最佳选择。如果你使用了备份,可以在数据丢失后,使用备份文件还原数据。如果没有备份,确保今后备份是必要的。在备份恢复数据的过程中,需要记住一些重要的问题。确定备份文件是正确的,尝试在备份文件上重现问题,以确保备份文件没有问题。2. 恢复二进制日志(Bin ...

深度指南:如何在重装MySQL后恢复你的数据
在开始任何操作之前,先确保安装与之前相同版本的MySQL。保持版本一致很重要,因为不同版本的MySQL可能存在数据格式的差异,这可能导致恢复失败。在替换Data文件夹之前,记得先停止MySQL服务。在Windows系统中,通过"服务"管理工具找到MySQL服务并停止;在Linux系统中,使用systemctl stop mysql命令(需要管理员权...

mysql线上数据库数据被误删除,没有开启日志记录,请问数据
如果已执行了delete或truncate命令,且未开启事务,应立即终止MySQL进程,并尝试从备份文件或binlog中恢复数据。对于未使用共享表空间模式的表或文件的误删,则需依赖备份恢复和binlog恢复。总的来说,预防误删数据库的关键在于良好的备份策略、谨慎的删除操作、及时的恢复机制。在执行关键操作前,务必进行充分...

代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)
前几天开发中遇到了一个问题,在进行调试的过程中发现配置在service层的事务不起作用,抛出异常后数据库的更新还是成功了,事务并没有回滚,然后就开始各种检查,查看spring的事务是否配置正确,进入更新方法时是否开启了事务,经过检查之后发现一切都正常, 前几天开发中遇到了一个问题,在进行调试的过程...

如何在不停止Mysql服务的情况下,定时备份mysql数据库
Scheduler服务,请到操作系统“服务”管理界面打开指定服务即可。计划设置完毕后,可以点击“Start”按钮,以测试Schedule的运行结果是否正确。也可以使用BAT批处理来进行自动备份,但是批处理的原理是首先停止MYSQL,然后进行数据库文件复制。但这违反了不停止MYSQL服务的前提。所以这里不细表。

数据库中的数据误删,又没有进行备份,怎样恢
加完后重起mysql即可。某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:1、新建一个表 CREATE TABLE `lynn`.`sn_test`...

如何管理 MySQL 的 binlog
3 - 恢复(Recovery)这个机制是如何保证MySQL的CrashSafe的呢,我们来分析一下。这里我们假设用户设置了以下参数来保证可靠性:- 恢复前事务的状态 在恢复开始前事务有以下几种状态:- InnoDB中已经提交 根据前面2PC的过程,可知Binlog中也一定记录了该事务的的Events。所以这种事务是一致的不需要处理。- ...

如何在mysql 的存储过程中使用事务
所有事务安全表将被恢复,但是非事务安全表将不会改变。 如果你使用 START TRANSACTION 或 SET AUTOCOMMIT=0,你应该使用 MySQL 二进制日志做备份以代替老的更新日志。事务处理被以一个大块形式存储在二进制日志中,在 COMMIT 上面,为了保护回滚的事务,而不是被存储的。查看章节 4.9.4 二进制日志。 如果您使用起动...

相似回答