2012-04-23 1 views
1

Может ли кто-нибудь объяснить мне зеркалирование базы данных, особенно с mysql.Зеркалирование базы данных с помощью приложений Mysql для Java

У меня есть несколько вопросов

  1. Должен ли я создать соединение по применению Java к этим базам данных (мастер дб и ведомых DBS)? И есть ли для этого строка подключения или это просто программируемая часть?

  2. Должен ли я также дублировать все мои транзакции sql, чтобы задействовать все движения базы данных как для ведущего, так и для ведомого?

  3. Что делать, если мастер db не работает, и единственным подключением является подчиненное устройство, как я могу установить исправление мастера db для обновления записей, измененных во время работы мастера?

  4. Это нормально, что ведомый db находится на локальном хосте, а мастер находится на серверной машине, или есть 2 серверных компьютера, на которых один является ведущим, а один - ведомым?

  5. И как я собираюсь подключиться к этим двум базам данных (подчиненный и главный), используя мое приложение java, тип подключения которого, если мастер автоматически отключается, будет использоваться ведомое соединение.

ответ

2

1) Должен ли я создать соединение по применению Java к этим базам данных (мастер дб и ведомых DBS)? И есть ли для этого строка подключения или это просто программируемая часть?

Да. Как правило, вы создадите соединение с мастером, только если вам нужно записать в базу данных. Для чтения заданий вы должны использовать подключения к одному или нескольким ведомым устройствам, поэтому мастер не должен иметь дело с этой нагрузкой. Это делается программно, для этого нет строки подключения. Вы также можете посмотреть this link, который использует прокси-сервер MySQL для разделения чтения и записи прозрачно для вашего приложения. Следует отметить, что это только доказательство концепции

2) Должен ли я также дублировать все мои транзакции sql, чтобы вносить в силу все перемещения базы данных как для ведущего, так и для ведомого?

Нет, репликация mysql сделает это за вас.

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

Короткий ответ: вы не можете. Если вам нужны высокодоступные чтения, вы должны посмотреть на MySQL Cluster. Может также работать несколько основных конфигураций.

4) Хорошо ли, что ведомый db находится на локальном хосте, а ведущий находится на сервере, или есть 2 серверных компьютера, на которых один является ведущим, а один - ведомым?

Ведущие и подчиненные машины могут и должны находиться на разных серверах. Маловероятно, что вы захотите разместить подчиненные на компьютерах конечных пользователей, если это то, что вы подразумеваете под «localhost».

5) И как я собираюсь подключиться к этим двум базам данных (подчиненный и главный), используя мое приложение java, тип подключения которого, если мастер автоматически отключается, будет использоваться подчиненное соединение.

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

+0

gud описание. – Prathap

Смежные вопросы