我在谷歌云SQL中有多个数据库的PostgresSQL实例,想将单个数据库备份到谷歌云存储中。实现这一目标的最佳方法是什么?
您可以将转储文件从包含数据库的实例导出到 Cloud Storage 存储桶:
使用云 SQL 导出数据
创建存储桶:
gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
描述要从中导出的实例:
gcloud sql instances describe [INSTANCE_NAME]
复制服务帐户电子邮件地址字段
将服务账户作为写入器添加到存储桶 ACL
:gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
导出数据库:
gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz --database=[DATABASE_NAME]
如果不需要保留之前设置的 ACL 提供的权限,请删除 ACL:
gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
我最终创建了一个可以将SQL数据导出到云存储中的云函数。此功能可以通过云发布/订阅使用云调度程序触发