2013-08-23 5 views
4

У нас есть приложение Rails на AWS, которое использует mysql в базе данных amazon-rds. У нас есть гигантская таблица в базе данных, которую мы хотим перенести, но для миграции требуется несколько дней, из-за миллионов строк. В частности, мы перемещаем VARCHAR на столбец TEXTПеренос гигантской базы данных производства без времени простоя

Как перенести эту крупную производственную базу данных, без каких-либо простоя пользователей?

Одна из идей, которые я слышал, заключается в том, чтобы установить копию базы данных и выполнить миграцию там и переключить ее на основную базу данных, когда это будет сделано. Однако я не уверен, как это учитывает данные пользователя, введенные во время миграции.

Update: Это может иметь отношение: amazon-rds offers read replicas и Multi-AZ deployments, которые, кажется, что они могут быть сделаны для такого рода вещи. Однако в первый раз, сделав это, мы будем приветствовать руководство по любому методу, будь то тот или иной.

ответ

1

Я не знаю, если это возможно с помощью хостинга вариантов, которые вы используете, но я хотел бы решить эту проблему следующим образом:

  1. Копирование данных на новый сервер (и записать двоичную позицию журнала на старом сервере базы данных)
  2. Включите репликацию со старого сервера на новый сервер (и ждать его, чтобы догнать)
  3. перенастроить Rails приложения, чтобы указать на новый сервер

Режим только для чтения - это еще один потенциальный вариант, если «время простоя записи» более приемлемо, чем «полное время простоя» (в зависимости от приложения).

Смежные вопросы