0

[更新] seamless_database_pool gemの私の使用 (または誤用) かもしれません。

seamless_database_poolを使用して、Rails3 でマスター/スレーブのセットアップをセットアップしました。これは、読み取りが確実にスレーブにリダイレクトされていないことを意味しますか?

これを MySQL レベルで確認するにはどうすればよいですか? これを行うことを望んshow processlistでいましたが、プロセスが見られません。

[アップデート]

マスターで実行show processlistすると、実行中のクエリが表示されるので、READ がスレーブに渡されていないと思います。

bin_log ファイルには、次の内容が含まれています (9 と x が追加されています)。

/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; \# at 4 \#xxxxxxx 99:99:99 server id 2 end_log_pos 106 Start: binlog v 4, server v 5.1.52-log created xxxx 99:99:99 at startup ROLLBACK/*!*/; BINLOG ' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx '/*!*/; \# at 106 \#xxxx 99:99:99 server id 2 end_log_pos 125 Stop DELIMITER ; \# End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

ありがとう

4

1 に答える 1

0

プロセスが速すぎて「show processlist」でキャッチできない可能性があります。その場合は、my.cnf でログ記録をオンにできる場合があります。

それ以外の場合は、スレーブ MySQL でバイナリ ログを有効にすることをお勧めします。「mysqlbinlog」ユーティリティを使用して調べることができます。

MySQL binlog が保存されているディレクトリ (Linux では、通常は /var/lib/mysql または /var/lib/mysql/data) に移動し、さまざまな bin ファイルをチェックして最新のものを取得します - これは yourbinfile.001723 のようなものです - そしてその上で mysqlbinlog を実行するだけです。出力はかなり乱雑ですが、sed で簡単に解析したり、grep で検索したりできます。

ネットワーク レベルで MySQL パケットをインターセプトし、それらを標準出力に表示するユーティリティもあります。ほとんどは tcpdump に基づいており、実際には tcpdump 自体以外はほとんど必要ありません: http://www.megalinux.net/using-tcpdump-for-mysql-query-logging/

于 2012-06-26T21:21:01.873 に答える