Мне нужно обновить схему, так как я случайно упустил некоторые ограничения внешнего ключа.
Сервер базы данных - 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
операторы реплицируются через двоичный журнал так же, как любые другие изменения в таблице. Что касается репликации, особого внимания не требуется.