2012-01-07 3 views
11

Мне нужно добавить столбец в текущую таблицу.alter table mysql offline или нет?

Эта таблица используется много в течение дня и ночи. я узнал, что мне нужно изменить с помощью команды alter, найденной здесь

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 

Я протестировал его на сервере разработки.

Мне потребовалось около 2 часов. Теперь я хочу выполнить это на производственном сервере?

это остановит мой сайт?

ответ

14

Почему бы не отобразить сообщение на сайте о том, вы будете выполнять техническое обслуживание времени от полуночи по Гринвичу 7 января 2012

Таким образом, вы не будете нарушать какие-либо данные, вы не получите никаких ошибок MySQL. вы выполняете свой ALTER и снова запускаете сайт после его завершения (не забудьте свой код, чтобы убедиться, что у вас есть правильное поле и т. д.). Простое решение.

Stackoverflow делает это, почему не ваш?

+0

Мне нравится эта идея, но когда? –

+0

есть я не «идеальное время» за отзыв, проверьте свою статистику и посмотрите, когда у вас нет или мало трафика, и сделайте изменения. –

+0

хорошая идея, спасибо за вашу помощь –

0

Это не остановит ваш сайт, но, скорее всего, это вызовет ошибки.

Конечно, нет никакого способа ответить на этот вопрос, не глядя на весь код вашего приложения.

Суть в том, что в сомнительном графике окно обслуживания.

1

Да, во время ALTER TABLE все записи и записи блокируются. Если ваш сайт должен использовать эту таблицу, запросы будут зависать.

Пробег: pt-online-schema-change. Он позволяет читать и записывать, чтобы продолжить, в то время как он фиксирует изменения, которые должны быть воспроизведены против измененной таблицы после завершения реструктуризации.

Тестовый тест на вашем сервере разработки, чтобы вы знали, как это работает и чего ожидать.

+2

кажется сложным –

-3
  1. Сделать производственный сервер на какое-то время указывать на db (или) зеркало dd dddd.
  2. Alter таблицу в производстве
  3. Развертывание кода, который говорит с производственной БД (с новыми атрибутами)

P.S: Я считаю, что это безопаснее и дурак доказательство путь (основано на моем опыте).