Как продублировать базу данных Google Cloud MySQL для разработки? - PullRequest
1 голос
/ 19 октября 2019

Я немного застрял, я недавно переключился на Google Cloud MySQL и хотел бы клонировать одну из своих баз данных (не экземпляра) для внешней среды разработки для фрилансеров.

Идея заключается в клонировании/ дублировать существующую живую базу данных, затем удалять конфиденциальные данные (электронные письма и т. д.). Я знаю, что мне нужно использовать функцию командной строки "gcloud", но я не знаю, как это сделать.

Может ли кто-нибудь мне помочь?

1 Ответ

1 голос
/ 19 октября 2019

Самый простой способ сделать это - восстановить резервную копию, созданную в первом экземпляре, в новый экземпляр. Я рекомендую вам просмотреть документацию Cloud SQL по резервным копиям

Примеры шагов:

gcloud sql backups create --async --instance [SOURCE_INSTANCE_NAME]
  • Список идентификаторов резервных копий для исходного экземпляра можно посмотреть следующим образом:
gcloud sql backups list --instance [SOURCE_INSTANCE_NAME]
gcloud sql backups restore [BACKUP_ID] --restore-instance=[TARGET_INSTANCE_NAME] \
                                       --backup-instance=[SOURCE_INSTANCE_NAME]

Вы также можете выполнить все вышеперечисленное через консоль.

  • После завершения восстановления вы можете удалить резервную копию . Самый простой способ сделать это - через консоль, но при необходимости это может быть сделано через REST API.

Конечно, нет команды gcloud для очистки описанных вами данных,вам нужно будет сделать это самостоятельно, исходя из собственных данных и требований анонимности. Хорошая анонимизация может быть сложной, если у вас очень ограниченный объем конфиденциальных данных.


Если вместо этого вы просто хотите экспортировать одну базу данных, тогда вы можете использовать функциональность экспорта и импорта . Это связано с некоторыми ограничениями, например, триггеры, хранимые процедуры и, возможно, представления и т. Д. Необходимо будет заново создать вручную.

Полные инструкции по экспорту , но вот краткое резюме.

Вам понадобится хранилище облачного хранилища для хранения вывода, а служебная учетная запись для базы данных должна быть записывающей в этом хранилище. Как только это будет сделано:

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[DUMP_FILE_NAME] \
                                      --database=[DATABASE_NAME]

Затем вы можете либо загрузить файл и использовать его в локальной базе данных, либо импортировать его в новый экземпляр , например:

gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[DUMP_FILE_NAME] \
                                      --database=[DATABASE_NAME]

Очевидно, что очистка данных по-прежнему остается за вами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...