Скажем, клиентский браузер обращается к моему веб-сайту, и между ним и моим внутренним сервером MySQL передаются данные. В этот конкретный момент суперпользователь на стороне сервера выдает незапланированное завершение работы системы или запланированное задание cron, которое приводит к перезапуску стека LAMP (т. Е. Серверов Apache, PHP-FQM и MySQL). Это может повредить базу данных MySQL?

Что было бы хорошей практикой в этом сценарии?

1 ответ1

0

Это ** не должно ** не вызывать никаких проблем по 2 причинам -

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

  2. Современные базы данных (и файловые системы) - включая современные версии MySQL, имеют систему журналирования, которая обеспечивает согласованность в случае внезапной потери питания / выключения.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .