gh-ost
это беспристрастное решение для миграции схемы для MySQL. Он тестируется и обеспечивает паузуость, динамическое управление/реконфигурацию, аудит и многие эксплуатационные льготы.
gh-ost
производит легкую рабочую нагрузку на мастер на протяжении всей миграции, отделенную от существующей рабочей нагрузки на мигрированной таблице.
Он был разработан на основе многолетнего опыта работы с существующими решениями и изменяет парадигму миграций таблицы.
Все существующие инструменты онлайн-схема-изменений работают аналогичным образом: они создают таблицу призраков с подобием вашей исходной таблицы, переносят эту таблицу, в то время как пустая, медленно и постепенно копируют данные из вашей исходной таблицы в таблицу призраков , тем временем пропагандируя текущие изменения (Любая INSERT
, DELETE
, UPDATE
, применяемое к вашей таблице) к таблице призраков . Наконец, в нужное время они заменяют ваш оригинальный таблицу на призрачный стол.
gh-ost
использует тот же шаблон. Однако он отличается от всех существующих инструментов, не используя триггеры. Мы признали, что триггеры являются источником многих ограничений и рисков.
Вместо этого gh-ost
использует бинарный поток журнала для захвата изменений таблицы, и асинхронно применяет их к таблице призраков . gh-ost
принимает на себя некоторые задачи, которые другие инструменты оставляют для выполнения базы данных. В результате gh-ost
имеет больший контроль над процессом миграции; может действительно приостановить это; может действительно отделить нагрузку на запись миграции от рабочей нагрузки мастера.
Кроме того, он предлагает много операционных льгот, которые делают его более безопасным, заслуживающим доверия и интересным в использовании.
gh-ost
, проверив его на репликах. gh-ost
выпустит тот же поток, что и на мастере, чтобы перенести таблицу на реплике, не заменив исходную таблицу, оставляя реплику двумя таблицами, которые вы можете сравнить и удовлетворить себя, что инструмент работает правильно. Вот как мы постоянно тестируем gh-ost
в производстве.gh-ost
дроссели он действительно прекращает пишет на Master: без строк копий и не текущих событий. Тузной, вы возвращаете своего мастера на его оригинальную рабочую нагрузкуgh-ost
, даже когда миграция все еще работает. Вы можете насильственно инициировать дроссель.gh-ost
для статуса. gh-ost
слушает в сокете UNIX или TCP.gh-ost
может быть проинструктирован отложить, что, вероятно, является наиболее важным шагом: обмен таблиц, пока вы не получите комфорта. Нет необходимости беспокоиться о том, что ETA будет за пределами рабочего времени.gh-ost
с вашей конкретной средой.Пожалуйста, обратитесь к документам для получения дополнительной информации. Нет, действительно, прочитайте документы.
У листа чит есть все. Вы можете быть заинтересованы в вызове gh-ost
в различных режимах:
gh-ost
использованием реплики (миграция работает на мастер-магистрале;gh-ost
предпочитает первое)gh-ost
.Наши советы:
--test-on-replica
Первые несколько раз. А еще лучше, сделайте это непрерывным. У нас есть несколько копий, где мы перечитываем весь наш парк производственных таблиц, мигрируя их один за другим, проверяя результаты, проверка миграции - это хорошая.--execute
.Больше советов:
--exact-rowcount
для точного индикации прогресса--postpone-cut-over-flag-file
, чтобы получить контроль над сроком сокращенияТакже см.:
gh-ost
на AWS RDSgh-ost
в базе данных Azure для MySQL Первоначально это было названо gh-osc
: GitHub Online Schema Mange, в таких, как Facebook онлайн-схема схемы и PT-Online-Schema.
Но затем произошла редкая генетическая мутация, и c
трансформировался в t
. И это отправило нас по пути попыток выяснить новую аббревиатуру. gh-ost
(произносится: призрак ), обозначает онлайн-схему GitHub.
gh-ost
лицензируется по лицензии MIT
gh-ost
использует сторонние библиотеки, каждая из которых имеет свою лицензию. Они найдены здесь.
gh-ost
выпускается в стабильном состоянии, но с пробежком. Мы открыты для получения запросов. Сначала обсудите свои намерения по вопросам.
Мы разрабатываем gh-ost
в GitHub и для сообщества. У нас могут быть разные приоритеты, чем другие. Время от времени мы можем предложить вклад, который не находится на нашей непосредственной дорожной карте, а может понравиться другим.
Пожалуйста, смотрите кодирование GH-OST для начала работы с GH-OST.
gh-ost
теперь GA и стабилен.
gh-ost
доступен в двоичном формате для Linux и Mac OS/X
Скачать последний релиз здесь
gh-ost
-это проект GO; Он построен с GO 1.15
и выше. Чтобы построить самостоятельно, используйте либо:
./bin/gh-ost
Binary.tar.gz
в /tmp/gh-ost-release
Вообще говоря, master
ветвь стабильная, но в производстве следует использовать только выпуски.
gh-ost
разработана, создана, просмотрена и протестирована командой инфраструктуры базы данных в GitHub: