我尝试使用docker设置OrientDB分布式配置。但是我在启动第二个节点时遇到错误 -
2015-10-09 17:14:14:066 WARNI [node1444321499719] - > [[node1444321392311]]请求部署 数据库' testDB'在本地服务器上... [OHazelcastPlugin] 2015-10-09 17:14:14:117 INFO [node1444321499719]< - [node1444321392311]收到了 更新状态node1444321499719.testDB = SYNCHRONIZING [OHazelcastPlugin] 2015-10-09 17:14:14:119 INFO [node1444321499719]< - [node1444321392311]收到更新后的状态 node1444321392311.testDB = SYNCHRONIZING [OHazelcastPlugin] 2015-10-09 17:14:15:935 WARNI [node1444321499719]移动现有数据库 ' TESTDB'位于' / orientdb / databases / testDB'至 ' / orientdb /数据库/../备份/数据库/ TESTDB'并获得一份新的副本 来自远程节点... [OHazelcastPlugin] 2015-10-09 17:14:15:936 SEVER [node1444321499719]错误移动现有数据库' testDB'位于 in' / orientdb / databases / testDB'至 ' / orientdb /数据库/../备份/数据库/ TESTDB&#39 ;.试着移动 手动数据库目录并重试 [OHazelcastPlugin] [node1444321499719]启动分布式错误 插入 com.orientechnologies.orient.server.distributed.ODistributedException: 移动现有数据库' testDB'位于 ' / orientdb /数据库/ TESTDB'至 ' / orientdb /数据库/../备份/数据库/ TESTDB&#39 ;.试着移动 手动数据库目录并重试 在com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.backupCurrentDatabase(OHazelcastPlugin.java:1007) 在com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.requestDatabase(OHazelcastPlugin.java:954) 在com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installDatabase(OHazelcastPlugin.java:893) at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installNewDatabases(OHazelcastPlugin.java:1426) 在com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:184) 在com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:979) 在com.orientechnologies.orient.server.OServer.activate(OServer.java:346) 在com.orientechnologies.orient.server.OServerMain.main(OServerMain.java:41)
如果我没有使用docker启动orientdb群集,我就不会遇到此错误。 我也可以在容器中移动它
[root @ 64f6cc1eba61 orientdb] #mv -v / orientdb / databases / testDB /orientdb/databases/../backup/databases/testDB ' / orientdb /数据库/ TESTDB' - > ' / orientdb /数据库/../备份/数据库/ TESTDB' ' /orientdb/databases/testDB/distributed-config.json' - > ' / orientdb /数据库/../备份/数据库/ TESTDB /分布式config.json' 删除' /orientdb/databases/testDB/distributed-config.json'去除 目录:' / orientdb / databases / testDB' [root @ 64f6cc1eba61 orientdb]# ls -l /orientdb/databases/../backup/databases/testDB总计4 -rw-R - R--。 1 root root 455 Oct 9 11:32 distributed-config.json [root @ 64f6cc1eba61 orientdb]#
我正在使用OrientDB版本2.1.3
答案 0 :(得分:0)
报告并修复了这个问题:
https://github.com/orientechnologies/orientdb/issues/4891
设置" distributed.backupDirectory'变量到特定目录,问题应该消失。
顺便说一句,在docker中分布的运行东方是我们目前的经验: - Docker还不支持多播,你可以解决它,但很痛苦。但主要问题是: - Docker在重启时不会重复使用ip地址,因此容器重启会给它一个新的ip地址,这会让你的群集耗费大量时间。
我们放弃使用与docker一起分发的东方,直到docker在两个问题上得到修复(我相信它都在路线图上)。
如果您遇到其他情况,我很高兴听到您的想法。