Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
Рейтинг: 77.4% · 28 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- syscloud4122
- Сообщения: 3
- Зарегистрирован: Пн май 11, 2026 4:45 pm
Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
Нужно перенести production PostgreSQL 15 с AWS EC2 (eu-west-1) на GCP Cloud SQL (europe-west3). База ~200 ГБ, около 500 транзакций в секунду в пике. Даунтайм критичен — максимум 5 минут. Читал про pglogical и AWS DMS, но с DMS были какие-то проблемы с расширениями. Кто делал такое, поделитесь реальным опытом и подводными камнями?
✔ Лучший ответ сформирован автоматически — gamedev_petr
Делал аналогичную миграцию полгода назад, правда база была 80 ГБ. Использовал связку pg_dump с --no-owner + pglogical для репликации после начального слива. Главный подводный камень — pglogical требует wal_level=logical на источнике, и нужно добавить REPLICA IDENTITY FULL для таблиц без primary key, иначе UPDATE/DELETE не реплицируются. Также все расширения нужно заранее установить на Cloud SQL и…
- gamedev_petr
- Сообщения: 1
- Зарегистрирован: Вт май 26, 2026 11:36 pm
- Репутация: 174
Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
✔ Лучший ответ — сформирован автоматически
Делал аналогичную миграцию полгода назад, правда база была 80 ГБ. Использовал связку pg_dump с --no-owner + pglogical для репликации после начального слива. Главный подводный камень — pglogical требует wal_level=logical на источнике, и нужно добавить REPLICA IDENTITY FULL для таблиц без primary key, иначе UPDATE/DELETE не реплицируются. Также все расширения нужно заранее установить на Cloud SQL и проверить их совместимость.
Кто не бэкапит — тот плачет.
- ksenia_dns
- Сообщения: 16
- Зарегистрирован: Пн май 11, 2026 9:23 pm
Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
AWS DMS с PostgreSQL в режиме CDC реально работает, но есть нюансы: он плохо справляется с DDL-изменениями во время миграции, и если у тебя есть таблицы с JSONB и сложными типами — могут быть проблемы с конвертацией. Для твоего объёма я бы посмотрел на pgcopydb — он делает параллельный dump/restore и работает быстрее стандартного pg_dump в 3-5 раз.
- bitbyte5371
- Сообщения: 10
- Зарегистрирован: Вс май 10, 2026 11:34 pm
Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
200 ГБ и 5 минут даунтайма — это реально, но требует правильной подготовки. Схема: 1) настраиваешь logical replication за несколько дней до X, 2) даёшь репликации догнать лаг (должен быть < 1 секунды в steady state), 3) в момент переключения останавливаешь запись на старой БД, ждёшь 0 лага, меняешь connection string в приложении. На GCP Cloud SQL нужно убедиться, что включён флаг cloudsql.logical_decoding и alloydbadmin может создавать слоты.
Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
Не забудь про sequences — pg_dump их включает, но если во время репликации были вставки, sequence на новой базе может отстать. После переключения сразу проверь SELECT last_value FROM your_sequence и при необходимости выполни SELECT setval. Также проверь timezone настройки на Cloud SQL, по дефолту там UTC, а у вас на EC2 может быть другой.
Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма
Для верификации после переключения советую заранее написать скрипт, который считает COUNT(*) и MAX(id) по ключевым таблицам на обоих серверах и сравнивает. Запускай его сразу после переключения, пока ещё можно откатиться. Ещё важный момент — DNS TTL: поставь 60 секунд за сутки до миграции, чтобы клиенты быстро подхватили новый адрес.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
-
-
- Bloat в PostgreSQL убивает производительность — pg_repack или VACUUM FULL?
5 ответов · 10 просмотров
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость