【发布时间】: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