【问题标题】:ArangoDB Synchronizing System CollectionsArangoDB 同步系统集合
【发布时间】:2014-12-03 16:22:48
【问题描述】:

我最近重新格式化了我的 comp,现在我正在重新设置我的开发环境,其中包括 ArangoDB。我正在将生产数据库中的数据同步到我的开发数据库中进行测试。这工作正常,除了它不同步系统集合,特别是 _users 集合。是否可以这样做,还是我必须在我的开发环境中手动重新创建用户?

我尝试使用restrictType 和restrictCollections 参数,但我一定做错了,因为它返回:

{
    "error": true,
    "errorMessage": "invalid value for <restrictCollections> or <restrictType>",
    "code": 400,
    "errorNum": 400
}

我要提交这个:(出于明显的安全原因,我的实际数据已被替换)

{
    "endpoint": "tcp://myserver.com:8529",
    "database": "mydb",
    "username": "myusername",
    "password": "mypassword",
    "restrictType":"include",
    "restrictCollections":"_users"
}

它可以在没有 restrictType 和 restrictCollections 键的情况下工作。我认为我的语法错误。有任何想法吗?谢谢!

更新:我的语法错误,我在下面更正了它,但不幸的是它仍然不会同步系统数据库。有没有办法做到这一点,或者更好的选择?谢谢!

{
    "endpoint": "tcp://myserver.com:8529",
    "database": "mydb",
    "username": "myusername",
    "password": "mypassword",
    "restrictType":"include",
    "restrictCollections":["_users"] //takes an array, not a list of strings
}

【问题讨论】:

  • _users 集合目前总是从复制中排除,无论复制是如何配置的。这是为了确保主从可以拥有不同的用户或凭据。
  • 我认为如果_users 也可以选择性地复制会更好。是否应该取决于某些配置变量。我会检查我是否可以解决这个问题。
  • 那太好了!同时,我在 _users 集合上使用了“下载 JSON”选项并上传到我的开发盒上的 _users 集合,它工作正常。但是,我认为选择在复制中包含任何系统集合会很酷。这对于执行完整的异地备份非常方便。
  • 我已经为 devel: github.com/triAGENS/ArangoDB/commit/… 实现了包含或排除集合的复制
  • 太棒了!如果我在笔记本电脑上运行这个开发版本,但在我们的服务器上保持稳定版本,我可以复制系统集合吗?或者我需要在这两个地方进行开发吗?另外,您预计此功能何时会出现在稳定版本中? 2.3.2 版?

标签: database replication arangodb


【解决方案1】:

正如@stj 已经提到的,在我们的devel 分支中实现了inclusionexclusion 的系统集合用于复制:https://github.com/triAGENS/ArangoDB/commit/909b1300bd119af808ad3d6696617d824abc7c4f

这也应该在计划于今年年底发布的 2.4 版本中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2010-11-18
    相关资源
    最近更新 更多