如何停止正在进行的ROLLBACK?

问题描述 投票:0回答:2

如何停止正在进行的回滚。我杀死了一个运行时间很长的 INSERT INTO table1 SELECT * FROM table2 语句。我想提交已经存在的内容,但我不能,因为它正在回滚。一旦我终止了长时间运行的进程,回滚就会自动发生。

这是一个 mySQL 数据库。

mysql rollback
2个回答
6
投票

你可以试试这个。

https://dba.stackexchange.com/questions/5654/internal-reason-for-killing-process-take-up-long-time-in-mysql

您可以终止 mysqld 进程并将 innodb_force_recovery 设置为 3 以在不回滚的情况下启动数据库,然后 DROP 导致失控回滚的表。


0
投票

您必须首先停止 mysql(在使用 mysqldump 进行完整备份之前:))

systemctl stop mysql

如果无法停止,请使用 f4 过滤器关闭 htop 中的所有 MySQL 进程,然后尝试停止 MySQL

停止后在 MySQL 配置文件中设置以下行

innodb_force_recovery = 1

最后启动MySQL

© www.soinside.com 2019 - 2024. All rights reserved.