Как узнать, перенаправляются ли чтения на ведомое устройство MySQL на Rails3

[update] Возможно, я использую (или неправильно) гем seamless_database_pool.

Я просто настроил настройку master/slave на Rails3, используя seamless_database_pool. Означает ли это, что чтение определенно НЕ перенаправляется на подчиненное устройство?

Как я могу проверить это на уровне 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*/;

Спасибо


person user99168    schedule 26.06.2012    source источник
comment
Что показывает SHOW SLAVE STATUS на подчиненной машине? (см.: dev.mysql.com/doc/refman /5.0/ru/ )   -  person LSerni    schedule 28.06.2012
comment
SHOW SLAVE STATUS обновлен, и связь ведущий-ведомый работает. Немного покопавшись, я понял, что мне нужно внести изменения в мою конфигурацию для seamless_database_pool, и все в порядке. .. Спасибо за помощь, Исеми.   -  person user99168    schedule 29.06.2012


Ответы (1)


Возможно, процессы слишком быстры, чтобы вы могли уловить «показать список процессов». Если это так, вы можете включить ведение журнала в my.cnf.

В противном случае, я понимаю, что подчиненному MySQL рекомендуется включить двоичное ведение журнала, и вы можете проверить это с помощью утилиты «mysqlbinlog».

Вы должны перейти в каталог, где хранятся бинарные журналы MySQL (в Linux это обычно /var/lib/mysql или /var/lib/mysql/data), проверить различные бин-файлы, чтобы получить последнюю версию — что-то вроде thisisyourbinfile.001723 — и просто запустите на нем mysqlbinlog. Вывод довольно беспорядочный, но его можно легко проанализировать с помощью sed или выполнить поиск с помощью grep.

Существуют также утилиты, которые будут перехватывать пакеты MySQL на сетевом уровне и отображать их на стандартном выходе. Большинство из них основаны на tcpdump, и на самом деле вам нужно немного больше, чем сам tcpdump: например. http://www.megalinux.net/using-tcpdump-for-mysql-query-logging/

person LSerni    schedule 26.06.2012
comment
Спасибо, Исеми, я должен упомянуть, что я вижу запросы к мастеру mysql при выдаче show processlist. Я предположил, что они были переданы ведомому, но вы подтвердили, что я должен увидеть их на самом ведомом. Я включил bin-log на подчиненной машине, но все, что я вижу, это 20 строк о начале binlog. Я обновлю свой вопрос с этой информацией. - person user99168; 27.06.2012