Как сделать мои базы данных MySQL доступными в любое время?Нужен совет эксперта по БД! - PullRequest
2 голосов
/ 15 сентября 2010

Я проводил много исследований, читал о репликации и т. Д., Но просто не уверен, какое решение MySQL будет работать.

Это то, на что я смотрю:

  • когда по какой-то причине мой mysql завершается неудачно или существуют определенные запросы, которые требуют очень много времени для выполнения и блокировки некоторых таблиц, я хочу, чтобы другие запросы вставки / обновления / выбора работали с нормальной скоростью бездождитесь снятия блокировок или резервного копирования основной базы данных.Я думаю, что для этого должен быть второй сервер mysql, но возможно ли то, что я упомянул, даже если это произойдет и повлечет ли это много изменений в моей существующей логике программирования?

  • когда выполняется резервное копирование базы данных, я все же хотел бы, чтобы мой сайт функционировал нормально, все операции вставки / выбора / обновления должны работать как обычно.

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

Итак, что мне нужно сделать, чтобы все это сделать, а также потребуется ли изменение большого количества существующего кодирования в соответствии с новыми настройками?[Мой сайт много читает и пишет]

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Легкого пути нет. Вы запрашиваете высоконадежную установку на основе MySQL, а для этого требуется много работы на сервере и клиенте.

Некоторые проблемы, например:

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

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

Выполните поиск по запросу «MySQL высокой доступности». В основном это решаемая проблема, но решение в значительной степени зависит от ваших конкретных требований. Вы не можете просто спросить: «Я хочу, чтобы мой SQL-сервер всегда работал на полной скорости всегда, независимо от того, что я на него бросаю».

0 голосов
/ 15 сентября 2010

Не специфичный для MySQL ответ, а общий.Подготовьте копию базы данных только для чтения для отображения на сайте, которая будет регулярно синхронизироваться с основной базой данных.Таким образом, вы можете поддерживать работу своего сайта, даже если главная БД находится под нагрузкой / блокировкой из-за вставки / удаления.Для эффективности сохраняйте эту копию как можно денормализованной.

...