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

Что мне нужно знать, чтобы изменить схему таблицы, которая реплицируется?

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

Сервер базы данных - MySQL 5.1.48, а изменяемые таблицы - InnoDB.

Сервер реплицируется с использованием Master / Slave.

Что мне нужно знать или делать, чтобы правильно изменить схему производственной базы данных?

Надеюсь, это то, что вам нужно, поскольку вы не предоставили достаточно информации:

А) ВСЕГДА (и я действительно имею в виду, ВСЕГДА) сделайте резервную копию, прежде чем пытаться внести такое изменение в продукте

Б) на консоли mysql: ALTER TABLE fsckeduptable DISABLE KEYS; УСТАНОВИТЬ FOREIGN_KEY_CHECKS = 0; .... делайте то, что должны ... SET FOREIGN_KEY_CHECKS = 1; ALTER TABLE yourtablename ENABLE KEYS;

В) if (shit_happened) {восстановить резервную копию; прервать это; найдите другой метод} D) если все в порядке, проверьте таблицу на ведомых устройствах (покажите таблицу создания) и посмотрите, распространились ли ваши изменения, а затем проверьте приложения, использующие их; если (shit_happened) см. #C)

ALTER TABLE операторы реплицируются через двоичный журнал так же, как любые другие изменения в таблице. Что касается репликации, особого внимания не требуется.