lio*_*lio 2 mysql google-cloud-sql gcloud
我有点卡住了,我最近切换到 Google Cloud MySQL,我想克隆我的一个数据库(不是实例),用于自由职业者的外部开发环境。
这个想法是克隆/复制现有的实时数据库,然后废弃敏感数据(电子邮件等)。我知道我需要使用“gcloud”命令行功能,但我真的不知道该怎么做。
有人能帮我吗 ?
最简单的方法是将第一个实例上的备份恢复到新实例。我建议您查看有关备份的 Cloud SQL文档
示例步骤:
gcloud sql backups create --async --instance [SOURCE_INSTANCE_NAME]
Run Code Online (Sandbox Code Playgroud)
gcloud sql backups list --instance [SOURCE_INSTANCE_NAME]
Run Code Online (Sandbox Code Playgroud)
gcloud sql backups restore [BACKUP_ID] --restore-instance=[TARGET_INSTANCE_NAME] \
--backup-instance=[SOURCE_INSTANCE_NAME]
Run Code Online (Sandbox Code Playgroud)
您还可以通过控制台执行上述所有操作。
当然,没有 gcloud 命令可以执行您描述的数据清理,您需要根据自己的数据和匿名化要求自己执行此操作。除非您的敏感数据数量非常有限,否则做好匿名化可能会很棘手。
如果您只想导出单个数据库,则可以使用导出和导入功能。这受到一些限制,例如,触发器、存储过程和可能的视图等需要手动重新创建。
export 的完整说明,但这里有一个快速摘要。
您将需要一个云存储存储桶来保存输出,并且数据库的服务帐户需要是该存储桶上的写入者。一旦到位:
gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[DUMP_FILE_NAME] \
--database=[DATABASE_NAME]
Run Code Online (Sandbox Code Playgroud)
然后,您可以下载文件并在本地数据库上使用它,或者将其导入新实例,如下所示:
gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[DUMP_FILE_NAME] \
--database=[DATABASE_NAME]
Run Code Online (Sandbox Code Playgroud)
显然,清理数据仍然取决于您。