检索自动Google Cloud SQL备份

Tom*_*ron 9 google-cloud-sql

我的团队要求我们能够检索数据库的备份(托管在Google Cloud SQL上)并将该数据库恢复到本地托管的MySQL实例.

我知道Google Cloud SQL能够安排备份,但这些备份似乎无法在任何地方下载.

我也知道我们能够将我们的数据库"导出"到Google云端存储,但我们希望能够安排"导出".

这里的最终目标是在某种管理脚本中执行以下步骤:

  1. 自动备份Google Cloud SQL上托管的数据库.
  2. 将备份下载到本地(非云)服务器.
  3. 将备份还原到MySQL的本地实例.

有任何想法吗?

jmw*_*cks 9

gcloud sdk命令现在提供导入/导出功能:

gcloud sql export sql <DATABASE_INSTANCE> \
    gs://<CLOUD_STORAGE_BUCKET>/cloudsql/export.sql.gz \
    --database <DATABASE_NAME>
Run Code Online (Sandbox Code Playgroud)

可以使用下载此导出gsutil.它也可以使用导入mysqlimport

  • 不推荐使用此命令,并将在205.0.0版本中将其删除。请改用[gcloud sql导出sql](https://cloud.google.com/sdk/gcloud/reference/sql/export/sql) (2认同)

Ald*_*ein 6

这就是我遇到的问题,我的解决方案是:

  1. 转到IAM 服务账户管理
  2. 创建一个新的服务帐户(我称之为sql-backuper),下载 JSON 格式的访问密钥
  3. 在 IAM 主页上授予查看者、存储对象创建者角色(目前 GCloud 没有单独的 SQL 只读角色)
  4. 在将进行备份的计算机上进行设置:( gcloud auth activate-service-account sql-backuper@project-name-123.iam.gserviceaccount.com --key-file /home/backuper/gcloud-service-account.jsongcloud auth 文档
  5. 在GCloud Storage Browser中创建新存储桶
  6. 现在,您可以在备份计算机上运行:(gcloud sql instances export [sql-instance-name] gs://[bucket-name]/[file-name].gz --database [your-db-name]gcloud sql 文档)和 gsutil cp gs://[bucket-name]/[file-name].gz [local-file-name].gzgsutil cp 文档
  7. 您已经获得了本地数据库副本,现在可以根据需要使用它