Как я могу синхронизировать базу данных Cloud SQL prod с другой промежуточной базой данных Cloud SQL? - PullRequest
0 голосов
/ 28 января 2019

В настоящее время у меня есть один экземпляр Cloud SQL (PostgreSQL) в моей учетной записи Google, но я хочу создать промежуточную базу данных, чтобы я мог выполнить некоторые тесты, прежде чем вносить изменения в схему базы данных prod Cloud SQL.

База данных prod автоматически получает данные из разных источников данных некоторыми простыми процессами ETL, и я не хочу дублировать эти загрузки данных в промежуточной базе данных.Эти автоматизированные процессы не должны запускаться поэтапно, поскольку в большинстве случаев они не нужны для целей тестирования.Я также не хочу создавать промежуточную базу данных, такую ​​же большую, как prod.

Учитывая то, о чем я говорил выше, и что я не использую разные проекты для настройки среды staging / prod, у меня естьВот несколько вопросов:

  1. Я понял, что в GCP есть функция клонирования баз данных.Я никогда не использовал его, но мне интересно, будет ли хорошей практикой время от времени клонировать мою базу данных prod для создания моей промежуточной базы данных, поскольку создание резервных копий и восстановление может быть проблемой.

  2. Можно ли использовать функцию клонирования в логической форме (выбрать только некоторые таблицы для клонирования и т. Д.)?Или это полностью зависит от физических резервных копий?

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

  4. Если я использую отдельные проекты для dev / test / prod.Каковы доступные подходы для синхронизации различных сред баз данных?

1 Ответ

0 голосов
/ 29 января 2019

1 - функция клонирования предназначена для экземпляров клонирования .Таким образом, вы клонируете всю базу данных.

2 - Вы не можете клонировать только некоторые таблицы, но вы можете экспортировать эти нужные таблицы, используя:

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz --database=[DATABASE_NAME] --table=[TABLE_NAME]

3-Прямо сейчас вы можете сделать это , используя SQL , затем сохранить запрос как таблицу и экспортировать эту таблицу.

4 - Существуют различные способы подключения для экземпляра SQL, такого как psql клиент, сторонние инструменты, использующие стандартный протокол клиент-сервер PostgreSQL, Cloud App Engine и т. Д.

...