Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Рейтинг: 77.4% · 28 голосов
AWS, Google Cloud Platform, Microsoft Azure, Cloudflare, Hetzner: облачные сервисы, архитектура, serverless, стоимость и миграция в облако.
Ответить
Аватара пользователя
infern
Сообщения: 87
Зарегистрирован: 11 май 2026, 10:23

Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение infern »

Нужно перенести production PostgreSQL 15 с AWS EC2 (eu-west-1) на GCP Cloud SQL (europe-west3). База ~200 ГБ, около 500 транзакций в секунду в пике. Даунтайм критичен — максимум 5 минут. Читал про pglogical и AWS DMS, но с DMS были какие-то проблемы с расширениями. Кто делал такое, поделитесь реальным опытом и подводными камнями?
👍2 ❤️1 🔥2 😄2 🤔
✔ Лучший ответ сформирован автоматически — esp32ninja
200 ГБ и 5 минут даунтайма — это реально, но требует правильной подготовки. Схема: 1) настраиваешь logical replication за несколько дней до X, 2) даёшь репликации догнать лаг (должен быть < 1 секунды в steady state), 3) в момент переключения останавливаешь запись на старой БД, ждёшь 0 лага, меняешь connection string в приложении. На GCP Cloud SQL нужно убедиться, что включён флаг…
Перейти к ответу →
Аватара пользователя
kingpaul
Сообщения: 57
Зарегистрирован: 11 май 2026, 12:35

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение kingpaul »

Делал аналогичную миграцию полгода назад, правда база была 80 ГБ. Использовал связку pg_dump с --no-owner + pglogical для репликации после начального слива. Главный подводный камень — pglogical требует wal_level=logical на источнике, и нужно добавить REPLICA IDENTITY FULL для таблиц без primary key, иначе UPDATE/DELETE не реплицируются. Также все расширения нужно заранее установить на Cloud SQL и проверить их совместимость.
👍3 ❤️ 🔥 😄 🤔
Аватара пользователя
torch22
Сообщения: 43
Зарегистрирован: 11 май 2026, 20:50

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение torch22 »

AWS DMS с PostgreSQL в режиме CDC реально работает, но есть нюансы: он плохо справляется с DDL-изменениями во время миграции, и если у тебя есть таблицы с JSONB и сложными типами — могут быть проблемы с конвертацией. Для твоего объёма я бы посмотрел на pgcopydb — он делает параллельный dump/restore и работает быстрее стандартного pg_dump в 3-5 раз.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
esp32ninja
Сообщения: 12
Зарегистрирован: 18 май 2026, 20:40

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение esp32ninja »

✔ Лучший ответ — сформирован автоматически
200 ГБ и 5 минут даунтайма — это реально, но требует правильной подготовки. Схема: 1) настраиваешь logical replication за несколько дней до X, 2) даёшь репликации догнать лаг (должен быть < 1 секунды в steady state), 3) в момент переключения останавливаешь запись на старой БД, ждёшь 0 лага, меняешь connection string в приложении. На GCP Cloud SQL нужно убедиться, что включён флаг cloudsql.logical_decoding и alloydbadmin может создавать слоты.
👍1 ❤️1 🔥1 😄1 🤔1
Аватара пользователя
kickmybox
Сообщения: 60
Зарегистрирован: 11 май 2026, 08:23

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение kickmybox »

Не забудь про sequences — pg_dump их включает, но если во время репликации были вставки, sequence на новой базе может отстать. После переключения сразу проверь SELECT last_value FROM your_sequence и при необходимости выполни SELECT setval. Также проверь timezone настройки на Cloud SQL, по дефолту там UTC, а у вас на EC2 может быть другой.
👍2 ❤️ 🔥 😄 🤔
Аватара пользователя
doppe
Сообщения: 5
Зарегистрирован: 17 май 2026, 23:50

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение doppe »

Для верификации после переключения советую заранее написать скрипт, который считает COUNT(*) и MAX(id) по ключевым таблицам на обоих серверах и сравнивает. Запускай его сразу после переключения, пока ещё можно откатиться. Ещё важный момент — DNS TTL: поставь 60 секунд за сутки до миграции, чтобы клиенты быстро подхватили новый адрес.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
lorenzinoarq
Сообщения: 65
Зарегистрирован: 11 май 2026, 00:03

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение lorenzinoarq »

У GCP есть свой Database Migration Service, для миграций в Cloud SQL он бесплатный и под капотом сам поднимает pglogical. Тащил им 350 ГБ с EC2, начальный слив шел часов 9, дальше CDC спокойно догонял. Из граблей: заранее сверь pg_extension со списком поддерживаемых в Cloud SQL, у нас не было pg_cron и пришлось переезжать на Cloud Scheduler. И superuser там не дают, любые скрипты с ALTER ROLE SUPERUSER падают, проверь свои миграции на это.
👍 ❤️ 🔥 😄1 🤔
Аватара пользователя
cmout098
Сообщения: 15
Зарегистрирован: 11 май 2026, 00:49

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение cmout098 »

@esp32ninja, останавливаешь запись на старой БД звучит просто, а на деле это самое тонкое место всей схемы. Мы делали через pgbouncer PAUSE, коннекты повисели секунд 40 и поехали на новый адрес, приложение вообще не трогали. Без пулера придется катить конфиг деплоем, и вот тут 5 минут превращаются в 20.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
nikita87
Сообщения: 12
Зарегистрирован: 11 май 2026, 17:29

Re: Миграция с EC2 на GCP как перенести PostgreSQL базу без даунтайма

Сообщение nikita87 »

@doppe, DNS TTL это если клиенты ходят по доменному имени. Половина контор зашивает хост в конфиг и обновляет деплоем, там твой TTL никому не поможет. А вот скрипт сверки COUNT и MAX плюсую, нас такой один раз спас, поймали отставшую таблицу без PK до того, как откат стал невозможен.
👍 ❤️ 🔥 😄2 🤔1
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: что такое postgresql простыми словамибаза данных postgresql для начинающихsql запросы в postgresql для начинающихпочему postgresql медленный и как ускоритьчастичный и покрывающий индекс в postgresql когда нуженjsonb в postgresql операторы и индексация

Вернуться в «Облачные платформы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость