【问题标题】:DocumentDB Data migration Tool, can't migrate from db to dbDocumentDB数据迁移工具,不能从db迁移到db
【发布时间】:2018-02-06 14:36:22
【问题描述】:

我正在使用 DocumentDB 数据迁移工具将 documentDB 数据库迁移到新创建的 documentDB 数据库。 connectionStrings verify 说没问题。 它不起作用(没有数据传输(=0)但没有失败写入日志文件(失败=0)。

这是完成的:

我尝试了很多方法,例如:

  1. 将集合迁移/传输到 json 文件
  2. 迁移到分区/非分区文档数据库
  3. 对于目标索引策略,我采用了源索引策略(json 来自 azure,documentdb 数据库集合设置)。
  4. ...

实际上没有任何工作,但我没有错误日志,也许是 documentdb 版本的问题?

提前感谢您的帮助。

【问题讨论】:

  • 有关专业服务器或网络相关基础设施管理的问题对于 Stack Overflow 来说是无关紧要的,除非它们直接涉及编程或编程工具。您可能能够获得有关服务器故障的帮助。
  • 嗯,实际上由于没有生成日志,所以很难知道故障是从哪里来的。通常 Azure 问题来自专业服务器 - 或......,所以你可能会偏离主题几乎所有 Azure 问题......,我还没有在不同的论坛上找到这个 pb 的任何解决方案......
  • 我刚刚引用了 SO 的票数接近的原因。所以,是的,这里的很多azure 问题对于编程网站来说都是题外话。这不会成为一个编程问题,不是吗?我实际上已经开始关闭所有 1657 个godaddy 问题一次,所以我几乎不相信“之前有人就同一主题发布过问题,所以这必须是主题”的论点:)。不过,我相信你在别处会比在这里更好;不是我要妨碍你,我只是觉得你在别的地方会得到更好的帮助,而且这个网站只需要编程。
  • 请注意,我们不仅关闭了所有godaddy 问题——我们重新标记了那些有实际编程问题的问题,我们关闭了那些与编程无关的问题。
  • 这绝不是关于基础设施的问题。是关于从不起作用的数据库中提取数据的特定工具。

标签: azure azure-cosmosdb nosql


【解决方案1】:

tool's repo 调试解决方案后,我认为如果您像我一样输入错误的数据库名称,工具会静默失败。

DocumentDBClient 只返回一个空的异步枚举器。

var database = await TryGetDatabase(databaseName, cancellation); if (database == null) return EmptyAsyncEnumerator<IReadOnlyDictionary<string, object>>.Instance;

【讨论】:

  • 很棒的发现 - 数据库和集合名称也是 CaSe SeNsItIvE
【解决方案2】:

我也遇到过同样的问题,经过一番调查发现内部文档结构发生了变化。因此,使用工具文档迁移后存在但无法使用数据资源管理器找到(但使用查询资源管理器选择 * 它们是可见的)

我已经使用 Mongichef 通过 mongo api 迁移了集合

【讨论】:

    【解决方案3】:

    @fguigui:为了帮助解决此问题,您能否使用命令行选项重新运行相同的数据迁移操作?只需从与数据迁移工具相同的文件夹中启动 dt.exe 即可获得所需的语法。然后在您使用所需参数启动它后,请将输出粘贴到此处,我会看看有什么问题。

    【讨论】:

    • thanx alekseys,目前我在 dt.exe 中看到此错误消息:严重错误:文档集合名称是必需的,尽管我输入了这些参数:/s.Collection:Account 和 t.Collection:Account (带或不带双引号),我继续测试...
    【解决方案4】:

    我可以使用 DocumentDB Data Migration tool 从 Azure Cosmos DB DocumentDB API 集合导入。

    此外,根据我的测试,如果我们为 Source DocumentDB 指定的 collection 的名称不存在,则不会传输任何数据,也不会出现错误日志书面。

    导入结果

    请确保您指定的源集合存在。如果可能的话,您可以尝试创建一个新集合并从这个新集合中导入数据,并检查是否可以传输数据。

    【讨论】:

    • 我认为我的大部分输入参数都是正确的,我验证了connectionStrings ==> 回复ok...我注意到一些奇怪的东西,在用例中,我们可以同时导入多个集合,示例给出的是由'|'分隔的集合名称列表,当我尝试这个时,它会尝试导入一个名称是集合名称列表的集合,它不会尝试导入所有集合...
    • 我做了一个测试,发现如果Target DocumentDBpartitioned,从多个集合导入数据可以正常工作,但是如果从多个集合导入数据集合到单分区集合,只导入集合列表的第一个集合的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多