【问题标题】:External Backups/Snapshots for Google Cloud SpannerGoogle Cloud Spanner 的外部备份/快照
【发布时间】:2017-02-28 21:42:26
【问题描述】:

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

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

谢谢,M

【问题讨论】:

    标签: google-cloud-platform google-cloud-spanner


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 文档中还不清楚集群中保留了多少数据副本,以及谷歌是否在内部保留备份以防发生灾难。
    • @onionjake 区域配置保留 3 个数据副本 (cloud.google.com/spanner/docs/…) 我们在内部保留备份,因此如果您提交支持请求,我们可以帮助您恢复数据。
    • 有没有使用dataflow/spark导出数据的例子?
    • 即将推出。观看这个空间 - github.com/apache/beam/pull/2166
    • 您好,有关于备份支持进展的更新吗?
    【解决方案2】:

    截至 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 完成的,您需要为数据流操作付费。

    请参阅有关 ImportExport 功能的文档。

    【讨论】:

    • 请注意,如果您尝试导出包含 0 行的表,则为执行备份而创建的 Cloud Spanner Export Dataflow 作业将失败。我已向 Google 提交了一张票(案例#16454353),他们承认这是他们正在解决的实际问题。
    • 这个功能很棒!我们真的在等待这个。是否有通过命令行触发导出的选项,以便将其用作自动备份例程?
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      根据下面的线程(也由 eb80 回答),我已经能够通过构建模板并从 cron 作业中运行 gcloud 命令,使用他们的 Import/Export DataFlow 作业从 Spanner 成功编写我的备份脚本。问题是,当您安排作业时,您需要解析输出并获取作业 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?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-25
        • 2020-01-12
        • 1970-01-01
        相关资源
        最近更新 更多