среда, 14 ноября 2007 г.

Ответы на вопрос о репликации

Сегодня “асилил” 4 вопрос:



4) Вы работаете с СУБД MySQL. У Вас настроена репликация с одного сервера на другой. Мониторинг показывает, что репликация не работает уже несколько часов.
Как Вы будете чинить не работающую репликацию?


Я уже ранее выяснил каким вообще образом организовывается репликация и какие могут быть ее варианты + сегодня помимо всего я изучил довольно хорошую статью из PHP Inside “Продвинутая репликация”, где довольно подробно описана “круговая репликация” и освещеные некоторые теоретически возможные проблемы и методы их решения. Добавляя к вышеописаным источникам еще “Возможности репликации и известные проблемы” и “Поиск неисправностей репликации” получаем некий “концентрированный” ответ:


Как я буду чинить:



1) Найду (сильно постараюсь найти) причину.
2) Проверю сотояние серверов и лог файлы.


Одни из возможных причин прекращения репликации:
– Конфликт ключей AUTO_INREMENT. В MySQL 5.1 решается путем установки не конфликтынх переменных auto_increment_increment и auto_increment_offset.


– Конфлик двух идентичных Primary_key (при круговой репликации). Устраняется путем исключения дубликатов.


– Потеря связи между узлами. Т.к. в MySQL репликация аснхронна, то это гарантирует, что при возобновлении связи данные снова будут синхронизированы.


– Если проблема была в потери связи между нодами, то для восстановления репликации:
LOAD DATA FROM MASTER - синхронизации. Однако, такой подход требует блокировки чтения на главном сервере и работает только MySAM
(http://www.weblibrary.biz/mysql/sintaksis-oper/oper-replikacii/upr-podchin-serevr)


– использование старых версий MySQL


Вообще ответ получился довольно общий и расплывчатый - ведь причин отказа репликации может быть много + все возможные их кобинации… ну что ж расплывчатый вопрос расплывчатый и ответ.


Кстати о вопросах. Наткнулся еще на один список вопросов, но на этот раз для “сис. администратора Коммуникационных сервисов” – там набор вопросов совпадает некоторыми пунктами с моими прдыдущими спиками, но есть и несколько новых:



1) Перед вами встала задача использовать RAID1 на сервере с операционной системой Linux.
Какое решение Вы выберете? Обоснуйте свой выбор.


2)Вы работаете с базой данных MySQL. В какой-то момент Вы получаете ошибку:
ERROR 2008: MySQL client ran out of memory
Ваши действия?


3) Вы выложили из репозитария на сервер XML-файлы.
Как перед запуском приложения проверить соответствуют ли файлы правилам разметки XML?


4) Вы обновляете Debian-пакет.
Как посмотреть, какие файлы конфигурации сохранятся при обновлении?


Я вот еще что подумал – мне было бы круто для себя ответить скопом на те вопросы, на которые я УЖЕ сейчас знаю ответы (а есть и такие) – а то количество вопросов растет быстрее скорости их решения. Так что в следующий раз будет блиц из ответов. Ну а пока все.


КонецЪ Связи

Комментариев нет: