是否可以对Google Cloud Spanner数据库/表格进行快照?出于合规性原因,我们必须拥有当前数据库的每日快照,以便在发生灾难时回滚到当前数据库:这在Spanner中是否可行?如果没有意图支持它吗?
对于那些可能会问为什么我们需要它的人,因为扳手是复制/冗余等 - 它不能防止人为错误(意外丢桌)或破坏/间谍因此问题和要求。
谢谢,M
答案 0 :(得分:12)
今天,您可以使用您喜欢的工具(mapreduce,spark,dataflow)读取所有数据并在特定时间戳(使用时间戳边界)读取所有数据,从而流出一致的快照。
https://cloud.google.com/spanner/docs/timestamp-bounds
在数据被垃圾收集之前,您有大约一个小时的时间进行导出。
将来,我们将提供Apache Beam / Dataflow连接器,以更加可扩展的方式实现这一目标。这将是我们将数据导入/导出到Cloud Spanner的首选方法。
从长远来看,我们将支持备份和恢复备份的功能,但目前无法使用该功能。
答案 1 :(得分: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完成的,您需要为数据流操作付费。
答案 2 :(得分:2)
Google Cloud Spanner现在有两种可用于进行备份的方法。
https://cloud.google.com/spanner/docs/backup
您可以使用内置备份,也可以使用数据流作业进行导出/导入。
答案 3 :(得分:0)
通过下面的线程(也由eb80回答),通过构建模板并从cron作业中运行gcloud命令,我已经能够使用Spanner的Import / Export DataFlow作业成功编写脚本。问题是,当您计划作业时,您需要解析输出并获取作业ID,以便随后可以检查其状态(同样,我编写了脚本),当您获得JOB_STATE_DONE或JOB_STATE_FAILED时,它就完成了。如果您需要运行导入,则需要该作业ID,因为特定的备份文件夹结构为:
gs:// bucketName / yourFolder / instanceId-databaseId-jobId
How to batch load custom Avro data generated from another source?