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

Как безопасно обновить серверное ПО (без риска потерять данные в базе)?

Я собираюсь использовать для своих проектов сервер под управлением Ubuntu Linux или CentOS. Сервер не будет находиться под управлением хостинговой компании, я буду управлять им самостоятельно. Я работаю с Ubuntu и CentOS уже несколько лет, поэтому мне удобно выполнять административные задачи на таких серверах.

Но насчет обновлений ПО сомневаюсь. Обновить его с помощью диспетчера пакетов (например, apt-get в Ubuntu) не проблема, но я не уверен, как сохранить данные в безопасности.

Небольшой пример. Предположим, что в то время, когда я запускаю обновление программного обеспечения, есть много запросов пользователей к серверу. Диспетчер пакетов обновляет серверы Apache и MySQL. Эти серверы будут остановлены, обновлены и перезапущены. Что происходит с данными в базе данных MySQL? Может ли эта процедура быть повреждена (например, из-за неполных запросов)? И как мне обновить программное обеспечение сервера и избежать повреждения данных?

Спасибо

  1. Резервные копии. Делайте резервные копии по расписанию.
  2. Проверьте свои восстановления.
  3. Выключите сайт, когда будете делать обновления.
  4. Если вы не можете этого сделать, перепроектируйте его так, чтобы один сервер, выходящий из строя, не повлиял на ваш сайт, а затем просто выкатывайте обновления по одному серверу за раз.

Шаг 4 будет непростым.

Не беспокойтесь слишком сильно. В CentOS (вероятно, и в Ubunto), когда вы делаете обновления / обновления с помощью yum, в основном никакие службы не перезапускаются. Apache не перезапускается при обновлении / обновлении.

Единственная служба, которую я помню, которая перезапускается во время обновления, - это ssh, но вы не теряете соединение с сервером.

Решение о перезапуске службы после обновления. Если вы сделаете это аккуратно, данные не будут потеряны. Если вы планируете перезапустить mysql, будет лучше, если вы остановите веб-сайт на несколько секунд. Большинство людей не заметят столь короткого простоя. Точно не помню значение, но думаю, что в течение 4-5 секунд тайм-аут не будет замечен стеком tcp и приложением (браузером)