2017-01-12 5 views
0

私は大量のデータベースをWin10マシンに持っていますが、mysqld.exeはディスクI/Oの100%を何時間も何度もやっています。どのように実際に何が起こっているのかを知り、それを止めることができますか?私はデータベースが現時点では使用されていないことを知っています。このI/Oがどこから来ているのか把握し、停止したいと思います。私がインターネット上で見つけた唯一の解決策は、一般的な設定のアドバイスでした。私はそれを必要としません。私は今、この問題を解決する必要があります!MySQLは何をしていますか?ブートからの100%ディスク使用

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 

データの完全性についての考えはありませんが、問題はありません。

Milneyに感謝します。

+0

を引き起こしているかを確認するためにSELECT * FROM information_schema.innodb_trx\Gのようなものを使用することができます

[Windowsプロセスエクスプローラ](https://technet.microsoft.com/en-us/ sysinternals/bb896653)は、デバッグに役立つかもしれません。 – DanFromGermany

答えて

2

リソースモニタの[ディスク]タブをタスクマネージャから表示すると、どのファイルが書き込まれているかを見ることができます。これは、どのデータベースであるかについてのヒントです。あなたはその後、オープントランザクションを表示し、文はこの

Resource Monitor

+0

ありがとうございます、 "trx_state:ROLLING BACK"と言います。どうすればキャンセルできますか? – Daniel

+0

私はこれを発見しました:「mysqldプロセスをkillして、innodb_force_recoveryを3に設定すると、ロールバックなしでデータベースを稼働させた後、暴走ロールバックを引き起こしているテーブルを削除することができます。テーブルを削除せずにロールバックを防止できますか?それは重要なテーブルのようなもので、エクスポートするには大きすぎます。 – Daniel

+0

バックアップがありませんか?これは、サーバーではなくWindows 10クライアント上で動作する本番データベースではないことを教えてください。理想的にはロールバックを終了して終了します。 – Milney

0

私はあなたがこれを見ておくべきだと思います。

http://windowsreport.com/windows-10-anniversary-update-100-disk-usage/

また、あなたがインターネットをオフにした場合、ディスクIO使用率がまだそこにあるかどうかをチェックしてみてください。

+0

ディスク使用率の問題はmysqld.exeに固有であり、OSにはまったく関係しません。 Linux特有の解決策を避けるために私はそれを言いました。また、システムはAnniversaryアップデートに更新されていません。 – Daniel

+0

このリンクには、この問題をデバッグするのに役立つツールも含まれています。見てください。 – cyberrspiritt

+0

私は一見しましたが、これはかなりのI/Oを引き起こしているプロセス/サーバー/ファイルを特定し、それを強制終了または無効化する方法に関するかなり一般的なトラブルシューティングの記事です。それは私がやろうとしていることではありません。私はすでに問題を引き起こしていることを知っています - 私のMySQLサーバーには何か不自然なことがあります - そして私はMySQL関連の解決策が必要です。私はまだデータベースを使いたいので、MySQL全体を削除することはできません。それにもかかわらず、あなたの貢献に感謝します。 – Daniel

関連する問題