Назад | Перейти на главную страницу

обновление сервера mysql без перерыва

Хи, я хочу обновить свои базы данных на моем сервере mysql, но сейчас я обычно отключаю свой сервер перед обновлением.

Интересно, есть ли решение сделать обновление без нарушения работоспособности сайта?

Спасибо за вашу помощь.

Что вы хотите сделать, обновить программное обеспечение сервера или обновить / изменить таблицы в БД? Давайте рассмотрим оба случая:

  1. Обновите программное обеспечение: вам потребуется настройка репликации Master-Master и плавающий IP. Этот плавающий IP-адрес остается на первом мастере во время обычных операций, после чего вы можете:

    1. Убейте вторичного мастера.
    2. Обновите программное обеспечение.
    3. Поднимите его снова и дождитесь, пока репликация догонит.
    4. Измените плавающий IP-адрес на вторичный (и теперь обновленный) мастер.
    5. Обновите первичный мастер так же, как и вторичный.
  2. Обновление / изменение таблиц: большинство из этих действий можно выполнять во время работы сервера, если только это не очень большая таблица. ALTER TABLE обычно блокирует таблицу, поэтому во время выполнения команды приложение не сможет получить к ней доступ (не могу вспомнить, является ли `ALTER TABLE 'полной блокировкой или просто блокировкой записи, проверьте документы). Если миграция займет слишком много времени, вам нужно будет сделать что-то вроде обновления, описанного выше, сначала сделав это на главном сервере, а затем на другом, но это более деликатно, и инструкции слишком сложны для выполнения здесь.