Просмотров: 4016

Программное окружение MySQL: Maatkit. Часть 3


Очередное продолжение сериала, смотрите оглавление этого цикла статей на этой странице. Это третья часть из цикла статей «Программное окружение MySQL», которая полностью посвящена теме Системные утилиты MySQL из состава Maatkit.

Maatkit MySQL утилита скрипт

mk-show-grants

Среди множества повседневных задач администратора MySQL, особенно выделяется контроль за правами и привилегиями пользователей и системных процессов. Эта обязанность не только ответственна, но может быть и достаточно обременительной, особенно, если в ведении находится множество таких серверов.

Отчасти автоматизировать эту задачу позволяет утилита mk-show-grants . Её назначение: коррекция и анализ всех ограничений и прав пользователей/процессов для указанного ей во входных данных MySQL-сервера. Но на самом деле, эта утилита имеет гораздо более широкое применение: это способность «переселить» всех пользователей (с их настройками прав) с одного сервера на другой, как в режиме добавления, так и замены.

Другая интересная её особенность — это возможность ведения внешнего централизированного репозитория контроля версий, в качестве содержимого которого можно использовать всех пользователей и группы на серверах MySQL, с информацией обо всех правах их доступа и полномочиях. Упомянутая утилита позволяет автоматизировать двухстороннюю синхронизацию такого репозитория с указанными серверами баз данных.

Кроме этого, она может выполнять быстрые сортировки, поиск и выделение групп пользователей по указанным признакам, а также выполнение анализа отличий прав одних и тех же пользователей на различных серверах, через генерацию информации в формате diff. Стоит отметить, что утилита достаточно безопасна: по-умолчанию она работает в режиме read-only , поэтому, случайно нельзя повредить права или логику доступа анализируемых пользователей.

Deadlocks

Вторая распространенная задача DBA — это восстановление баз данных и контроль их целостности. Давайте в качестве примера рассмотрим проблему взаимоблокировок транзакций (deadlock), которые относительно часто встречаются в среде MySQL.

Информация о возникающих «смертельных блокировках» доступна в самых разных источниках и логах MySQL, что ещё более запутывает ситуацию. При этом блокировки могут быть внутренними и внешними, также как они могут возникать на следующих уровнях: уровне таблицы для MERGE, MEMORY, MyISAM или в InnoDb . Общим симптомом её появления знаменует достаточно абстрактная запись в центральном логе MySQL: «Deadlock found when trying to get lock; try restarting transaction» и соответственно происходит заморозка выполнения транзакции.

Как легко убедиться, воспользовавшись Google, Интернет буквально кишит этим стандартным сообщением об ошибке, почти всегда завершаемый философским воззванием "Unde malum"

Как раз для этого случая в Maatkit включена утилита mk-deadlock-logger , которая извлекает и протоколирует подробную информацию о ситуациях возникновения взаимоблокировок транзакций в хранилищах MySQL из всех доступных источников, удобно выводя всё это в виде единой суммирующей таблицы. Отдельно стоит подчеркнуть, что текущая реализация этой утилиты пока поддерживает диагностику только самой проблематичной разновидности из всех блокировок — на уровне хранилища InnoDB.

Maatkit MySQL утилита скрипт

Я не зря употребил здесь наречие «пока» — разработчики Maatkit обещают со временем придать ей свойства универсальности в столь сложной и востребованной для MySQL задаче, как помощь в расследовании причин возникновения блокировок транзакций.

В заключение этого пункта, кратко опишем другие системные утилиты Maatkit:

  1. mk-find находит по заданным критериям таблицы на MySQL-сервере(-рах) и запускает над ними некие действия (например, внешние скрипты), подобно утилите GNU find ;
  2. Утилита mk-table-sync синхронизирует дату заданных (или всех) таблиц MySQL;
  3. mk-purge-logs — утилита идеальна для очистки переполненных лог-файлов строго по заданным правилам;
  4. mk-fifo-split применяется для вывода содержимого любого файла поочередными блоками (тип очереди fifo ) для его внешней обработки, по мере вывода этот «виртуальный» целевой файл будет соответственно «ужиматься» в размерах.

Эта вспомогательная утилита очень удобна для циклической обработки больших текстовых лог-файлов, «выгружая» на вывод при каждой итерации, строго фиксированные по размеру порции текста.


~

Начало этой серии статей здесь. Следующую часть (продолжение) — читайте вот тут.

Игорь Савчук // Системный Администратор, 2011
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , ,
Эта запись опубликована: Понедельник, 20 февраля 2012 в рубрике Unix'овое.

1 комментарий

Следите за комментариями по RSS
  1. Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз