如何使用Azure功能应用程序备份Azure Cosmos数据库

问题描述 投票:2回答:1

问题:

我尝试为Azure Cosmos DB构建备份解决方案,以便在我们以编程方式破坏数据库中的数据时定期向我们提供数据库转储。问题是Azure Germany尚未存在Data Factory,我们不能依赖Azure的自动备份(仅8小时可用)。我不想在云之外使用任何额外的应用程序。

到目前为止我发现了什么:

https://www.npmjs.com/package/mongo-dump-stream

Mongo Dump Stream应该能够连接到我们的数据库并从中读取。

我的想法是在Azure Functions中使用此npm,并将转储结果发送到blob存储。

我的问题:

如何将结果发送到blob存储?

你能举一个具体实施的例子吗?

azure azure-functions azure-cosmosdb
1个回答
2
投票

这是一个想法:

不要为整个集合创建备份,而是为更改(delta)创建备份,并保存随时间发生的更改。稍后您可以实现将遍历增量文件的还原机制。

以下是实现看起来像一个概念,但仅适用于您请求的备份机制:

enter image description here

Here是专门的回购。我还添加了Azure CLI脚本,以帮助您在Azure租户中快速重现我的想法。

一般说明:

  1. 依赖关系:azure-storage, unix-timestamp, documentdb
  2. 我有时间触发功能。频率创建由日期时间戳命名的blob。
  3. 我将最后的导入时间存储在存储表中。
  4. 要获得delta,我使用CosmosDb中任何文档的_ts字段。

这种方法的好处:

  1. delta-s更轻,导入/备份速度更快
  2. 您可以设置增量生成的频率
  3. 恢复时,您可以看到处于不同状态的数据库

缺点:

  1. 你没有一个文件可以恢复,但很多
© www.soinside.com 2019 - 2024. All rights reserved.