Тег ‘mysql’

Петр Зайцев и mail.ru

Интересное видео со встречи Петра Зайцева из Percona в компании mail.ru, есть некоторая интересная информация по теме оптимизации работы mysql. Рекомендую для просмотра всем системным администраторам.

Проверка идентичности MySQL Slave сервера, часть 2

В продолжение прошлой заметки – в этой напишу как автоматизировать проверку идентичности slave сервера в рамках компании.

Основной момент, это определиться с периодом проверки СУБД на идентичность, судя по моему опыту – это раз в неделю, либо после проблем с репликацией. Во всех остальных случаях, если разработчики знакомы с ограничениями MySQL при репликации данных, СУБД ведет себя достаточно стабильно.

Для автоматизации проверки я использую скрипт – mysql_consistency.sh. Скрипт достаточно простой, позволяет автоматизировать проверку СУБД на идентичность, с последующей нотификацией через систему Nagios о имеющихся проблемах.

Для его использования достаточно скачать его и скопировать в нужную вам директорию, в обязательном порядке нужно установить набор утилит Maatkit, иначе скрипт не будет работать, так как не будет необходимых программ для реализации проверки идентичности MySQL серверов.

Перед запуском скрипта необходимо указать в нем логин и пароль, при помощи которых он будет подключаться к СУБД, также, если требуется поддержка Nagios, нужно настроить следующие параметры:

nagios_support – включает/выключает поддержку Nagios.

NSCA_HOST  – определяет имя сервера, на котором установлен NSCA сервер.

После запуска скрипт запустит mk-table-checksum, который проверит master MySQL сервер, далее при помощи mk-table-sync проверит консистентность slave MySQL серверов. Если включена поддержка Nagios – скрипт отправит сообщение со статусом проверки, как положительным так и отрицательным, NSCA серверу при помощи утилиты send_nsca.

В следующей заметке напишу как настраивать систему мониторинга Nagios для работы с NSCA сервером, в этой настройке есть несколько моментов.

Проверка идентичности MySQL Slave сервера

СУБД MySQL, самая популярная СУБД для WEB проектов. Эту БД используют миллионы проектов по всей сети Интернет, от крупных компаний, до отдельных разработчиков, и как следствие, перед любым администратором СУБД MySQL рано или поздно встает вопрос об обеспечении отказоустойчивого режима работы данной подсистемы БД в рамках проекта. СУБД MySQL (далее просто MySQL или СУБД) предлагает 2-а механизма высокодоступного режима работы:

1) MySQL Cluster

2) MySQL Replication

Оба механизма имеют свои плюсы и минусы, но все таки более популярен и доступен – это 2-ой вариант, то есть репликация данных между MySQL серверами. Настройка репликации отлично описана в документации, поэтому рассматривать мы ее не будем. Предмет данной заметки – проверка MySQL slave сервера на идентичность его данных MySQL master серверу.

Читать полностью ‘Проверка идентичности MySQL Slave сервера’ »

SQL Injections

По ссылке доступна достаточно познавательная статья о sql injections и методах защиты от них. Подойдет для прочтения начинающими WEB разработчиками.

Прочитать: MySQL: Secure Web Apps – SQL Injection techniques

Организация резервного копирования БД MySQL

Написал краткую статью на тему: Организация резервного копирования БД MySQL.

Ошибки при MySQL репликации

Недавно наткнулся на статью в databasejournal.com, которая описывает некоторые подводные камни в MySQL репликации. Оказывается, многие не знают, что текущая схема работы репликации (а именно перенос на slave сервер бинарных логов) не позволяет добится хорошей производительности и надежности в переносе данных. Рекомендую статью к прочтению как вводный курс в проблемы MySQL репликации.

http://verytunes.ru/

Еще 1 проект,  поддержкой которого занимаюсь сейчас. Под него выделен достаточно мощный сервер с большим количеством дисков. Попозже напишу что было реализовано в рамках этого проекта. Думаю в течение ближайших 4-6 месяцев появится в рамках этого проекта работа по его оптимизации по высокие нагрузки.

Настройка JDBC MySQL соединения в Crystal Reports Server XI R2

Как оказалось Crystal Reports Server XI не работает с MySQL БД из коробки.
Хотя CRS использует MySQL для хранения своей служебной информации, но для указания подключения к БД в BusinessView можно использовать либо ODBC либо JDBC. У меня заработал только JDBC.

Пошаговая инструкция:
1) Качаем MySQL JDBC connector (http://www.mysql.com/products/connector/j/) версии 3.1, распаковываем jar файл в любую папку сервера.
2)  Ищем и открываем файл CRConfig.xml, в поле CLASSPATH исправляем путь до mysql-connector на правильный.
3) Перезапускаем все сервера CRS, cmm.sh -stop all && sleep 10 && ccm.sh -start all.
4) Через Business View Manager создаем Data Connection к БД. Выбираем JDBC, заполняем поля:

ServerURL jdbc:mysql://db_server_name:3306/db_name
Database Classname com.mysql.jdbc.Driver
Жмем Next и на следующей странице вводим логин и пароль пользователя, у которого есть доступ к БД.
В следующем окне вводим логин и 2-а раза задаем пароль для доступа к БД и выбираем Never prompt for password.

После выполнения вышеуказаных действий вы сможете подключаться к MySQL БД c сервера при помощи JDBC.
Кстати, для CR Developer процедура настройки JDBC аналогична.

Утилиты: mytop

Mytop – один из полезных инструментов для MySQL DBA.

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