13

是否可以对 Google Cloud Spanner 数据库/表进行快照?出于合规性原因,我们必须拥有当前数据库的每日快照,以便在发生灾难时回滚:这在 Spanner 中是否可行?如果没有,是否有意支持它?

对于那些可能会问为什么我们需要它的人,因为 Spanner 被复制/冗余等 - 它不能防止人为错误(意外丢弃表)或破坏/间谍活动,因此是问题和要求。

谢谢,米

4

4 回答 4

12

今天,您可以通过使用您最喜欢的工具(mapreduce、spark、dataflow)读取所有数据并在特定时间戳(使用 Timestamp Bounds)读取来输出一致的快照。

https://cloud.google.com/spanner/docs/timestamp-bounds

在数据被垃圾收集之前,您有大约一个小时的时间进行导出。

将来,我们将提供一个 Apache Beam/Dataflow 连接器,以一种更具可扩展性的方式来实现这一点。这将是我们将数据导入/导出到 Cloud Spanner 的首选方法。

从长远来看,我们将支持备份和恢复到备份的能力,但该功能目前不可用。

于 2017-02-28T22:41:54.857 回答
5

截至 2018 年 7 月,Cloud Spanner 现在提供导入和导出功能,允许您将数据库导出为 Avro 格式。如果您通过 Google Cloud Console 网站访问特定的 Cloud Spanner 数据库,您会在顶部看到导入和导出按钮。只需单击导出,填充请求的信息,例如目标 Google Cloud Storage 存储桶,数据库将以 Avro 格式备份到 Google Cloud Storage。如果您需要恢复数据库,请使用 Google Cloud Console 网站的 Cloud Spanner 部分中的相应导入功能。

注意:实际的备份和恢复(即导出和导入)是使用 Google Cloud Dataflow 完成的,您需要为数据流操作付费。

请参阅导入导出功能的文档。

于 2018-07-16T14:31:55.550 回答
2

Google Cloud Spanner 现在有两种可用于备份的方法。

https://cloud.google.com/spanner/docs/backup

您可以使用内置备份或使用数据流作业进行导出/导入。

于 2020-04-21T02:46:34.037 回答
0

根据下面的线程(也由 eb80 回答),我已经能够通过构建模板并从 cron 作业中运行 gcloud 命令,使用他们的 Import/Export DataFlow 作业从 Spanner 成功编写备份脚本。问题是,当您安排作业时,您需要解析输出并获取作业 ID,以便您可以检查它的状态(再次,我编写了脚本),当您获得 JOB_STATE_DONE 或 JOB_STATE_FAILED 时,它就完成了。如果您需要运行导入,您将需要该作业 ID,因为特定的备份文件夹结构是:

gs://bucketName/yourFolder/instanceId-databaseId-jobId

如何批量加载从另一个来源生成的自定义 Avro 数据?

于 2018-10-25T15:21:03.680 回答