«Никакая не выбрана база данных» или «Таблица».
-
26-09-2020 - |
Вопрос
Я собирал запросы на нашем мастере, используя следующую команду tcpdump:
tcpdump -i any -s 65535 -x -n -nn -q -tttt 'port 3306' > tcpdump.tcp
.
Запросы выполняются среди нескольких баз данных.
Я затем запустил этот файл через PT-Query-digest, используя следующую команду:
pt-query-digest --output=slowlog --no-report --sample 100 --type tcpdump tcpdump.tcp > slow.log
.
Тогда я запустил PT-Upgrade против двух рабских работ:
pt-upgrade --user user --ask-pass --run-time=1h --upgrade-table percona.pt_upgrade h=10.1.1.1 h=10.1.1.2 slow.log
.
Но у меня есть куча сбоев, поскольку не отображается, какая база данных запроса должна быть выполнена.
Как можно использовать PT-Upgrade, когда запросы собираются среди нескольких DBS? AFAICT Это не указано в документации в любом месте.
Вы должны использовать --filter с PT-Query-digest, чтобы просто выводить запросы для конкретной базы данных, а затем указать --database с PT-UPGRADE? Промыть и повторить в базу данных.
Требуется несколько часов для анализа моего гигантского захвата TCPDUMP, поэтому любое руководство здесь ценится.
Спасибо!
p.s.
Я использовал это Статья в качестве отправной точки, но она устарела. например PT-Query-digest не имеет опции --печатаю.
Решение
- .
-
Это все еще не работает, если вы опустите - обратный?
-
(из руководства)
Также обратите внимание, что PT-Query-digest может не сообщить об базе данных для Запросы при разборке выхода TCPDUMP.База данных обнаружена только в исходных событиях Connect для нового клиента или когда есть выполнено.Если выход TCPDUMP не содержит ни один из них, то PT-Query-digest не может обнаружить базу данных.
- .
- Подумайте, используя общий журнал вместо TCPDUMP?
Другие советы
У меня есть подобная проблема. Я имею пропущенные таблицы и отсутствующие statments. Иногда оператор использования присутствует, но с неправильной базой данных. Я использую довольно простой обходной путь.
(prelude) Мой первый вопрос: мой slow.log длиной 60го, так что
-
Я разбиваю его с разделением с опцией.
head neumberObleflines ab >> AA Например
-
Найти оператор, который является корнем вашей проблемы (открытый с меньшим количеством, не хочу иметь 1Ого в оперативной памяти с vi)
-
sed это с
sed -e '/nameofscriptinyourfilewhichisInthefirstline.php/ ,+nd'
-
Сообщите проблему разработчику и снова запустите отредактированный SlowLog.
-
Повторите шаги 2 по 4, пока не найдете больше ошибок тезисов. Вы можете запустить ваш список SED через эту команду
Sed -e '...' | Sed-E '...' | SED - '...'> revent_aa
с числом строк, которые вам нужно редактировать. (С моей точки зрения разработчик должен поставить эту дискуссию для целей отладки и в любом случае является частью нашей исторической структуры).
Проблема Fianl: я обнаружил, что запросы с подобными и «%» являются болью, потому что парсер не может их понять. (Все еще ищет решение).
Если это может помочь, я рад. Это не чисто, это давно, но он позволяет мне найти все запросы, которые не соответствуют нашим каркасам, хотя они каким-то образом сделали его. И поскольку мы очень опаздываем в наших версиях MySQL, мое удовольствие заставить их работать на меня в конце концов. ;)
P.S. : Это мой первый пост.
Что мы в итоге делаем, - это запрашивает запросы от slow.log на основе имени таблицы в файлах журнала для конкретной базы данных (RAW).Затем мы указываем --type RawLog и --датабаза с PT-UPGRADE.