GCloud Firestore定时备份不生效:无记录、状态及存储桶查询
Firestore定时备份任务已创建但无备份记录排查
我有一个Firestore数据库,按照官方文档创建定时备份,执行命令:
gcloud alpha firestore backups schedules create --project=projectName --database='(default)' --recurrence=daily --retention=2d
通过以下命令确认定时任务已创建:
gcloud alpha firestore backups schedules list --database='(default)'
返回信息:
createTime: '2023-11-13T09:05:18.352661Z' dailyRecurrence: {} name: projects/project-name/databases/(default)/backupSchedules/id retention: 172800s updateTime: '2023-11-13T09:05:18.352661Z'
但执行gcloud alpha firestore backups list返回0条记录,任务已运行超过12小时。请问:
- 问题出在哪里?
- 如何查看备份状态?
- 备份存储在哪个存储桶中?
问题排查与解答
1. 无备份记录的可能原因
- 首次执行时间延迟:Daily recurrence定时任务默认在创建后的下一个UTC午夜触发,而非立即执行。如果任务创建时间是UTC 09:05,首次备份要等到当天UTC 24:00(次日00:00)才会启动,12小时可能还未到执行时间。
- 权限配置缺失:Firestore备份服务依赖的服务账号(
service-[PROJECT_NUMBER]@gcp-sa-firestore.iam.gserviceaccount.com)需要拥有目标存储桶的storage.objectCreator权限,以及Firestore的datastore.backupAdmin权限。权限不足会导致备份静默失败。 - 数据库无数据:若数据库为空,Firestore不会生成备份记录。
- 区域不匹配:执行
gcloud alpha firestore backups list时未指定--location参数,默认仅查询us-central1区域的备份。如果你的数据库不在该区域,需添加--location=你的数据库区域参数。
2. 查看备份状态的方法
- 通过gcloud命令查看任务执行历史:
命令返回结果包含gcloud alpha firestore backups schedules describe projects/project-name/databases/(default)/backupSchedules/id --database='(default)'lastRunTime、lastRunStatus等字段,可直接确认备份是否成功触发。 - 查看Cloud Logging日志:
在Cloud Logging中筛选以下条件的日志:
这里能看到备份任务的启动、执行、完成或失败的详细日志,包括具体错误原因(如权限不足、存储桶不存在等)。resource.type="firestore_database" logName="projects/[PROJECT_ID]/logs/firestore.googleapis.com%2Fbackup"
3. 备份存储桶的位置
- 默认存储桶:若创建备份计划时未指定
--bucket参数,Firestore会自动创建命名格式为[PROJECT_ID]-firestore-backups的Cloud Storage存储桶,存储区域与你的Firestore数据库一致。 - 查看计划指定的存储桶:执行describe命令查看备份计划详情:
输出中的gcloud alpha firestore backups schedules describe projects/project-name/databases/(default)/backupSchedules/id --database='(default)'bucket字段会显示备份存储的目标桶地址。
内容的提问来源于stack exchange,提问作者Tuki2010
相关产品推荐
相关产品推荐

