正しく理解している場合は、FLUSH TABLES WITH READ LOCK
を実行するとグローバル読み取りロックが取得されます。mysql(innodb)のグローバルロックを確認する方法はありますか?
ロックが現在取得されていることを示すmysqlクライアントで実行できるコマンドはありますか?
正しく理解している場合は、FLUSH TABLES WITH READ LOCK
を実行するとグローバル読み取りロックが取得されます。mysql(innodb)のグローバルロックを確認する方法はありますか?
ロックが現在取得されていることを示すmysqlクライアントで実行できるコマンドはありますか?
これを試してみてください:
SHOW ENGINE INNODB STATUS;
それはロックとウェイターの所有者(とはInnoDBに関連する他の多くのもの)が表示されます
http://dev.mysql.com/doc/refman/5.0/en/innodb-monitors.html
http://www.xaprb.com/blog/2006/07/31/how-to-analyze-innodb-mysql-locks/
私はこのコマンドに精通していますが、逃していない限り、 'read lockでフラッシュテーブル'によって獲得されたグローバルロックは表示されません。 – davidbrai
これではありませんグローバルlock.onceあなたは、セッションから出て、それを解放する
http://dev.mysql.com/doc/refman/5.1/en/processlist-table.html – ajreal
私は 'show full processlist'を試しました。ロックが解放されるのを「更新」クエリが待っているが、誰がロックを保持しているかはわかりません。 – davidbrai
これは、 'すべての書き込み(挿入、更新、削除)がロックの所有者になる前にFIRSTコマンドを実行しました。 ' – ajreal