MySQL Administrator - рулить СУБД легко
Автор: Александр Лозовюк
Сервер баз данных MySQL уже давно пользуется заслуженной популярностью у разработчиков веб-приложений. Потом, когда вышли последние версии сред разработки фирмы Borland - Delphi 6/7, Kylix 2/3 и другие, где появились компоненты для работы с MySQL, ее начали применять и в традиционных, desktop или клиент-серверных разработках.
MySQL ориентирована в первую очередь на управление с помощью командной стороки или файлов конфигурации, и все настройки и операции приходилось исполнять через консоль или telnet, если сервер был установлен на удаленном компьютере. Потом в поставку начали входить две графические утилиты: MySqlManager и WinMySQLAdmin.
MySqlManager - это простейшая графическая утилита для работы с таблицами БД. Все базы, таблицы и поля отображаются в виде древовидного списка, но нет никаких средств удобного просмотра содержимого таблиц или изменения свойств полей. Для всех операций предусмотрено только интерактивное окно работы с SQL запросами (причем оно, видимо, "живет" своей жизнью: в контекстном меню для каждой БД есть команда "SQL query", которая вызывает окно запроса, но всегда в теле SQL надо прописывать базу и таблицу, к которой обращаемся). Для сколь либо серьезной работы эта утилита совершенно непригодна.
WinMySQLAdmin относится к другому классу утилит – это средство для администрирования сервера. Программа отображает сведения о работе сервера, время работы, переменные среды, список доступных баз данных и таблиц (без возможности редактирования или просмотра), а также позволяет перезапускать сервер. На отдельную вкладку вынесены настройки производительнсти и редактирования конфигурационного файла my.ini: в дистрибутив входит несколько сборок сервера и можно выбрать наиболее быстродействующую (mysqld-opt, mysqld-nt, mysqld-max, mysqld -max-nt). Программа при закрытии главного окна скрывается в systray, а наиболее частые операции с сервером (перезагрузка/запуск/остановка) можно выполнить через контекстное меню. Иконка в виде светофора показывает текущее состояние сервера – красный (остановлен),зеленый (работает) или желтый (процесс загрузки/остановки).
Еще есть утилита MySQL Control Center (текущая версия 0.9.4 beta), которая не входит в поставку СУБД. Она предназначена как раз для администрирования – управления пользователями и правами доступа, а также позволяет сделать ряд глобальных операций над сервером, вроде просмотра переменных, текущих подключений и статистики по каждой базе. Но следует отметить, что MDI-интерфейс не удобен для повседневной работы, да и функциональности недостаточно.
Этих утилит не хватало для полноценной работы с сервером, поэтому пользователи чаще всего использовали средства других разработчиков. Так, для администрирования и работы с БД через Web наиболее популярным инструментом стал набор PHP скриптов PHPMyAdmin. Но это довольно узкое решение, так как для работы необходм веб-сервер с поддержкой PHP и не все операции по администрированию именно сервера, а не отдельных баз данных, можно делать через веб-интерфейс.
Вряд ли я ошибусь, когда скажу, что пользователи MySQL с нетерпением ждали, когда же компания выпустит собственную утилиту для полноценного администрирования СУБД. Недавно такая программа была анонсирована, а сейчас вышел первый релиз. Итак, встречайте - MySQL Administrator!
Утилита предназначена для администрирования сервера, а также может выполнять операции резервного копирования и востановления информации (как над отдельными, так и над всеми базами, причем есть встроеный планировщик заданий). Кроме СУБД MySQL поддерживается Oracle или другие БД через ODBC (не проверялось, но понятно, что в таком случае будут отключены все возможности, специфические именно для MySQL, да и программа разрабатывалась главным образом для MySQL, а все остальное – как бесплатный довесок).
Основные функции утилиты сгруппированы в 11 пунктов графического меню в стиле MS Windows 2003. К слову, утилита распространяется на правах OpenSorce GPL и доступна для платформы Win32 и Linux как в бинарном виде, так и в исходных кодах. Текущая версия 1.0.1 alpha работает довольно стабильно, хотя есть некоторые недочеты в интерфейсной части и часть функций не реализована (только интерфейсная часть).
Далее мы остановимся на каждом разделе меню и опишем главные функции программы.
Информация о сервере
Первый пункт стандартен – Server Information. Здесь можно посмотреть на какой платформе запущен сервер, хост/порт, текущий аккаунт пользователя, IP, операционную систему, процессор и размер доступной памяти. Тут же показывается текущий статус сервера – работает или остановлен.
Сервисный контроль
Позволяет запустить или перезапустить сервер, просмотреть лог загрузки. Вторая вкладка позволяет настроить основные параметры – пути к файлу конфигурации, директории с бинарными файлами и настроить сервер для поддержки специфических расширений (например, таблиц формата InnoDB с поддержкой транзакций или использования для работы именованных каналов). Оказалось, что в разных версиях сервера (mysqld-opt, mysqld-nt, mysqld-max, mysqld-max-nt), кроме различий в производительности, еще и по-разному реализована поддержка расширений (таблицы InnoDB поддерживаются в mysqld-opt, но не поддерживаются в стандартном mysqld).
Переменные запуска
Этот раздел позволяет настроить множество тонких опций, влияющих на производительность сервера. Кроме базовых настроек (поддержка сетевых соединений, настройка портов, пути к служебным каталогам, настройка работы с памятью), отдельно можно настроить опции для различных типов таблиц (MyISAM, InnoDB). Для увеличения производительности есть настройки кеширования, для работы с несколькими серверами есть настройки репликации. Вкладка Advancedпозволяет очень тонко настроить работу сервера, а некоторые опции я даже не нашел как настроить традиционным путем при помощи командной строки. На отдельных вкладках сгруппированы настройки безопасности и сетевые возможности. Как некоторый недочет - очень небольшое количество настроек безопасности, а ведь при серьезной работе в коммерческих приложениях безопасности уделяется повышенное внимание.
Соединения с сервером
В этом меню можно просмотреть все текущие подключения клиентов к серверу и при необходимости завершить любое из них.
Администрирование пользователей
Позволяет настроить привилегии для каждого пользователя и оперативно управлять ими (раньше для этого надо было вручную править служебные таблицы MySQL с помощью SQL запросов).
Автор разрабатывал однажды корпоративную систему, где в качестве основного сервера была задействована СУБД MySQL. Тогда приходилось писать свои утилиты для управления пользователями, и для администратора это выливалось в дополнительные проблемы. При использовании MySQL Administrator все операции над пользователями проходят в графическом режиме и в любое время за считанные секунды можно настроить привелегии для любого пользователя или базы данных. Я считаю, что эта функция одна из самых полезных и придется по вкусу администраторам и разработчикам.
Здоровье
Меню Health чисто информационное и позволяет отслеживать производительность сервера в реальном времени, расход памяти и сетевой траффик, а также показывает статистику по типам запросов и эффективность задействования ключей. Эти возможности можно использовать, чтобы наблюдать изменения в работе сервера при изменении настроек, тестировать их влияние на производительность и таким образом постепенно настроить сервер на максимум для конкретного круга задач.
Журналы сервера
Показывает стандартные логи сервера – общий лог и записи об ошибках.
Вот самое интересное и полезное - это реализованные функции резервирования и востановления БД. Реализован удобный планировщик, и теперь можно делать раздельное резервирование отдельных БД и таблиц – одни БД один раз в сутки, другие в конце недели и т.д. Опции резервирования также гибко настраиваются – для этого есть вкладка Advanced Options. Пока для резервирования доступен лишь один формат - простой текстовый файл с SQL запросами, без сжатия и т.д. Но будем надеяться, что в следующих версиях будет хоть какой-то алгоритм сжатия.
К сожалению, вся вкладка Schedule пока неактивна – видимо, разработчики еще не до конца протестировали эту возможность. Все-таки, этот релиз обозначен как альфа. В любом случае, путь, по которому пошли разработчики не может не радовать – наконец СУБД MySQL обзаводится мощными средствами конфигурирования и настройки и теперь ее можно применять и в корпоративных приложениях, а не только в Web-проектах.
При востановлении из резервной копии также можно выбрать отдельные таблицы и базы данных, которые подлежат восстановлению.
Состояние репликации
Функция Replication Status скорее всего еще до конца не реализована, присутствует только вкладка Server Information. Для реализации и настройки репликации надо перейти на вкладку Replication раздела Startup variables, где можно детально настроить параметры репликации.
Каталоги
Последний раздел дает доступ к отдельным базам и таблицам, позволяет осуществлять операции оптимизации, проверки и востановления таблиц, а также показывает сведения об индексах и их параметрах, а также пользователей, которые имеют доступ к конкретной базе или таблице.
В целом, MySQL Administrator способна обеспечить все потребности администратора или разработчика, как по управлению пользователями, так и по тонкой настройке производительности, анализе работы сервера, и может служить инструментом для резервирования и репликации баз данных. Для полноценного использования, думаю, еще надо подождать следующего релиза, где будут исправлены все недочеты и увеличена функциональность (в основном это касается функций резервирования).
Распространение такого мощного средства на условиях OpenSource будет способствовать продвижению СУБД и теперь можно ожидать, что появятся вполне серьезные разработки корпоративного масшатаба, основанные на MySQL. Тем более, что уже появилась новая версия сервера – 5.0 alpha где, помимо всего прочего, обещают поддержку хранимых процедур. Остается ждать первого официального стабильного релиза (пока есть только alpha версия для разработчиков).