如何判断读取是否正在Rails3上重定向到MySQL slave

时间:2012-06-26 21:06:04

标签: mysql ruby-on-rails-3 master-slave

[更新] 可能是seamless_database_pool宝石的使用(或滥用)。

我只是使用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*/;

由于

1 个答案:

答案 0 :(得分:0)

这些过程可能太快,无法吸引“show processlist”。如果是这种情况,您可以打开my.cnf中的登录。

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

你会去存储MySQL binlogs的目录(在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/