Репликация кластера MySQL + Galera, что происходит при ошибке?

Я планирую использовать MySQL с репликацией кластера Galera (кластер Percona XtraDB).

Я новичок в этом виде технологии репликации, и мне нужно некоторое разъяснение.

Что именно произойдет, когда я попытаюсь выполнить какой-либо SQL-запрос на узле, который не синхронизирован с остальной частью кластера (например, сбой сети, кворум решил, что узел неисправен, и удалил его из основного компонента)?

Как обнаружить эту ситуацию на стороне клиентского приложения SQL? т.е. какую ошибку я получу на SQL SELECT * FROM xxx; или ОБНОВИТЬ xxx SET yyy=zzz;?

Когда узел не синхронизирован, я подозреваю, что все операции чтения/записи должны заканчиваться сбоем, чтобы предотвратить раскол мозга и другие проблемы, но какие ошибки я получу и как это проверить?

Что мне нужно, так это определить, что я подключен к неправильному узлу, чтобы я мог повторно подключиться к другому


person Matthias    schedule 13.09.2012    source источник
comment
Все вопросы вы найдете в разделе часто задаваемых вопросов.   -  person eggyal    schedule 13.09.2012
comment
Этот faq не отвечает на мои вопросы Нет информации о точных кодах ошибок   -  person Matthias    schedule 13.09.2012


Ответы (1)


Из-за отсутствия лучшего кода в этом случае mysqld вернет 1047 (ER_UNKNOWN_COM_ERROR). Поэтому, когда этот код возвращается, вы можете проверить переменную состояния wsrep_local_state. Если он равен 0, то узел отделен от основного компонента.

person ayurchen    schedule 22.01.2013