6

我在 Win10 机器上有一个大型数据库,mysqld.exe 执行大量磁盘 I/O,100%,持续数小时和数小时 100MB/s - 主要是写入 - 在多次重新启动后仍然存在。我怎样才能找出它到底在做什么,并阻止它?我知道数据库目前没有被使用,我想弄清楚这个 I/O 来自哪里并停止它。我在互联网上找到的唯一解决方案是一般配置建议,我不需要,我现在需要关闭这个东西!

show processlist 什么也不显示。

更新:问题是表上的巨大后台回滚操作。解决方案是:

1) kill mysqld.exe
2) add innodb_force_recovery=3 to my.ini
3) start mysqld.exe
4) export the table (96GB table resulted in about 40GB .sql file)
5) drop the table
6) kill mysqld.exe
7) set innodb_force_recovery=0 to my.ini
8) reboot and import the table back

尚不了解数据完整性,但似乎很好。

感谢米尔尼。

4

2 回答 2

6

如果您从任务管理器查看资源监视器的磁盘选项卡,您可以看到正在写入哪些文件,这将提示您它是哪个数据库;

然后,您可以使用类似SELECT * FROM information_schema.innodb_trx\G查看打开的事务并查看导致此问题的语句

资源监视器

于 2017-01-12T12:46:23.843 回答
0

如果默认的 8MB 增加到 512MB,只需增加 InnoDB 缓冲池大小

SET GLOBAL Innodb_buffer_pool_size = 5168709120
于 2021-12-18T06:34:02.063 回答