0

[更新]可能是我对无缝数据库池 gem 的使用(或误用)。

我只是使用Seamless_database_pool在 Rails3 上设置了主/从设置。这是否意味着读取肯定不会被重定向到从站?

如何在 MySQL 级别进行检查?我希望show processlist这样做,但我没有看到任何进程。

[更新]

在 master 上运行show processlist会显示正在运行的查询,所以我猜 READs 没有被传递给 slave。

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

这些过程可能太快了,以至于您无法赶上“显示进程列表”。如果是这种情况,您也许可以打开登录 my.cnf。

否则,我知道建议从 MySQL 开启二进制日志记录,您可以使用“mysqlbinlog”实用程序进行检查。

您将转到存储 MySQL binlog 的目录(在 Linux 上通常为 /var/lib/mysql 或 /var/lib/mysql/data),检查各种 bin 文件以获取最新的 - 类似于 thisisyourbinfile.001723 - 和只需在其上运行 mysqlbinlog 即可。输出非常混乱,但可以使用 sed 轻松解析或使用 grep 搜索。

还有一些实用程序可以在网络级别拦截 MySQL 数据包,并将它们显示在标准输出上。大多数都基于 tcpdump,实际上你只需要 tcpdump 本身:例如 http://www.megalinux.net/using-tcpdump-for-mysql-query-logging/

于 2012-06-26T21:21:01.873 回答