У меня есть конвейер, который экспортирует автоматические резервные копии RDS в AWS S3. Экспортированная база данных — Postgres из стандартного кластера Aurora.
Я также подготовил задание на передачу со стороны GCP, которое копирует экспорт БД из S3 в Cloud Storage.
Мой вопрос: можно ли использовать эти резервные копии из облачного хранилища GCP и использовать их для развертывания базы данных Postgres на GCP? Если да, то какими услугами мне следует пользоваться? Должен ли я просто создать CloudSQL и восстановить БД из имеющихся у меня файлов? Возможно ли это использовать тот же формат, который был экспортирован из AWS, или мне нужно выполнить некоторые преобразования данных? Я думаю, есть еще вариант использования миграции базы данных? СплавДБ? Какому плану лучше всего следовать в этом случае?
Из Экспорт данных снимка БД в Amazon S3 — Amazon Relational Database Service:
При экспорте снимка БД Amazon RDS извлекает данные из снимка и сохраняет их в корзине Amazon S3. Данные хранятся в формате Apache Parquet, который является сжатым и согласованным.
Поэтому вам понадобится процесс, который сможет считывать файлы Parquet в базу данных GCP. Вам также потребуется создать таблицы, индексы и т. д. Это большая работа.
Поскольку вы используете PostgreSQL, самым простым способом будет использование pg_dump
для извлечения данных. Формат экспорта — это настоящие команды SQL, которые можно запускать в другой базе данных PostgreSQL. При правильных параметрах файл дампа будет содержать команды для воссоздания исходных схем и таблиц, а также данные. Его можно загрузить, просто отправив файл дампа команде psql
в принимающей базе данных.