我在 Win10 机器上有一个大型数据库,mysqld.exe 执行大量磁盘 I/O,100%,持续数小时和数小时 100MB/秒 - 主要是写入 - 在多次重新启动后仍然存在。我怎样才能找出它到底在做什么,并阻止它?我知道数据库目前没有被使用,我想找出这个 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
尚不清楚数据完整性,但看起来不错。
感谢米尔尼。
最佳答案
如果您从任务管理器查看资源监视器的“磁盘”选项卡,您可以看到正在写入哪些文件,这将提示您它是哪个数据库;
然后您可以使用类似 SELECT * FROM information_schema.innodb_trx\G
的东西来查看打开的事务并查看哪些语句导致了此
关于mysql - MySQL 在做什么??启动时磁盘利用率为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612590/