OrientDB,初始数据库复制

Fra*_*rbo 6 orientdb orientdb-2.1

我正在尝试在AWS上以分布式模式设置OrientDB,在ELB后面,在ASG中.

到目前为止这么好,但最初的数据库复制只发生在15次尝试中的一次!也就是说,在新节点加入群集后,只会同步一个数据库.那只有一次.

最重要的是,主人没有反应!即,OrientDB不会回答ELB的健康检查,如果我没有从ELB中取出实例(当我测试它时),它就会被破坏.

我做什么和想做什么

我有一个(至少一个)实例,我加载我的数据库.然后我开始将ASG设置为+1实例,然后启动.我希望这个加入第一个(这部分工作正常 - 现在)并从第一个获得数据库.其他实例应该相同 - 加入群集,获取数据库.

所以我的两个问题:

  1. 如何启动/启动复制?如同,让它同步所有的数据库?出于几个原因,我不能使用"scp"(等)来复制数据库!

  2. 如何将OrientDB配置为在同步数据库时拒绝传入的查询?

我已经尝试过2.1.7,2.1.15和2.2.0-beta2,在所有三种情况下,我都必须从Hazelcast.com(v3.6.2)升级hazelcast-all.jar文件,以便自动发现工作第一名.

使用新的jar文件,"它只是工作"!同样,新实例一启动就加入了集群.虽然,它不会得到新的数据库:(.好吧,在某些情况下,它只会得到第一个,有时只是第一个的一部分,但大部分都没有.

我的文件:

默认情况下,分布式DB-config.json

{
  "replication": true,
  "autoDeploy": true,
  "hotAlignment": true,
  "resyncEvery": 15,
  "executionMode": "synchronous",
  "readQuorum": 1,
  "writeQuorum": 2,
  "failureAvailableNodesLessQuorum": false,
  "readYourWrites": true,
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "index": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

hazelcast.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- !!! This file is autogenerated by Saltstack. All changes will be overridden -->

<!-- ~ Copyright (c) 2008-2012, Hazel Bilisim Ltd. All Rights Reserved. ~
        ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may
        not use this file except in compliance with the License. ~ You may obtain
        a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~
        ~ Unless required by applicable law or agreed to in writing, software ~ distributed
        under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES
        OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for
        the specific language governing permissions and ~ limitations under the License. -->

<hazelcast
        xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.0.xsd"
        xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <properties>
                <property name="hazelcast.icmp.enabled">true</property>
        </properties>
        <group>
                <name>orientdb</name>
                <password>sEcrEt</password>
        </group>
        <network>
                <port auto-increment="true">2434</port>
                <join>
                        <multicast enabled="false">
                                <multicast-group>235.1.1.1</multicast-group>
                                <multicast-port>2434</multicast-port>
                        </multicast>
                        <tcp-ip enabled="false">
                                <member>10.129.1.129:2434</member>
                        </tcp-ip>
                        <aws enabled="true">
                                <access-key>acCEss</access-key>
                                <secret-key>seCRet</secret-key>
                                <host-header>ec2.amazonaws.com</host-header>
                                <region>eu-west-1</region>

                                <!--
                                  http://grepcode.com/file/repo1.maven.org/maven2/com.hazelcast/hazelcast-all/3.1.5/com/hazelcast/cluster/TcpIpJoinerOverAWS.java

                                  There are 2 mechanisms for filtering out AWS instances and
                                  these mechanisms can be combined (AND).

                                    1. If a securityGroup is configured only instanced within
                                       that security group are selected.
                                    2. If a tag key/value is set only instances with that tag
                                       key/value will be selected.

                                  Once Hazelcast has figured out which instances are available,
                                  it will use the private ip addresses of these instances to
                                  create a tcp/ip-cluster.

                                <security-group-name>sg-orientdb</security-group-name>
                                <tag-key>aws:autoscaling:groupName</tag-key>
                                <tag-value>orientdb-orientdb</tag-value>
                                -->
                        </aws>
                </join>
                <interfaces enabled="true">
                        <interface>10.129.1.129</interface>
                </interfaces>
        </network>
        <executor-service>
                <pool-size>16</pool-size>
        </executor-service>
</hazelcast>
Run Code Online (Sandbox Code Playgroud)

orientdb-server-config.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<orient-server>
    <handlers>
        <handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler">
            <parameters>
                <parameter value="true" name="enabled"/>
                <parameter value="50" name="graph.pool.max"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin">
            <parameters>
                <parameter value="true" name="enabled"/>
                <parameter value="orientdb-i-8d93ec05" name="nodeName"/>
                <parameter value="${ORIENTDB_HOME}/config/default-distributed-db-config.json" name="configuration.db.default"/>
                <parameter value="${ORIENTDB_HOME}/config/hazelcast.xml" name="configuration.hazelcast"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.handler.OJMXPlugin">
            <parameters>
                <parameter value="false" name="enabled"/>
                <parameter value="true" name="profilerManaged"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.handler.OAutomaticBackup">
            <parameters>
                <parameter value="false" name="enabled"/>
                <parameter value="4h" name="delay"/>
                <parameter value="23:00:00" name="firstTime"/>
                <parameter value="backup" name="target.directory"/>
                <parameter value="${DBNAME}-${DATE:yyyyMMddHHmmss}.zip" name="target.fileName"/>
                <parameter value="9" name="compressionLevel"/>
                <parameter value="1048576" name="bufferSize"/>
                <parameter value="" name="db.include"/>
                <parameter value="GratefulDeadConcerts" name="db.exclude"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.handler.OServerSideScriptInterpreter">
            <parameters>
                <parameter value="true" name="enabled"/>
                <parameter value="SQL" name="allowedLanguages"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.token.OrientTokenHandler">
            <parameters>
                <parameter value="false" name="enabled"/>
                <parameter value="" name="oAuth2Key"/>
                <parameter value="60" name="sessionLength"/>
                <parameter value="HmacSHA256" name="encryptionAlgorithm"/>
            </parameters>
        </handler>
        <handler class="com.orientechnologies.orient.server.plugin.livequery.OLiveQueryPlugin">
            <parameters>
                <parameter value="false" name="enabled"/>
            </parameters>
        </handler>
    </handlers>
    <network>
        <sockets>
            <socket implementation="com.orientechnologies.orient.server.network.OServerSSLSocketFactory" name="ssl">
                <parameters>
                    <parameter value="false" name="network.ssl.clientAuth"/>
                    <parameter value="config/cert/orientdb.ks" name="network.ssl.keyStore"/>
                    <parameter value="password" name="network.ssl.keyStorePassword"/>
                    <parameter value="config/cert/orientdb.ks" name="network.ssl.trustStore"/>
                    <parameter value="password" name="network.ssl.trustStorePassword"/>
                </parameters>
            </socket>
            <socket implementation="com.orientechnologies.orient.server.network.OServerSSLSocketFactory" name="https">
                <parameters>
                    <parameter value="false" name="network.ssl.clientAuth"/>
                    <parameter value="config/cert/orientdb.ks" name="network.ssl.keyStore"/>
                    <parameter value="password" name="network.ssl.keyStorePassword"/>
                    <parameter value="config/cert/orientdb.ks" name="network.ssl.trustStore"/>
                    <parameter value="password" name="network.ssl.trustStorePassword"/>
                </parameters>
            </socket>
        </sockets>
        <protocols>
            <protocol implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" name="binary"/>
            <protocol implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb" name="http"/>
        </protocols>
        <listeners>
            <listener protocol="binary" socket="default" port-range="2424-2430" ip-address="0.0.0.0"/>
            <listener protocol="http" socket="default" port-range="2480-2490" ip-address="0.0.0.0">
                <commands>
                    <command implementation="com.orientechnologies.orient.server.network.protocol.http.command.get.OServerCommandGetStaticContent" pattern="GET|www GET|studio/ GET| GET|*.htm GET|*.html G\
ET|*.xml GET|*.jpeg GET|*.jpg GET|*.png GET|*.gif GET|*.js GET|*.css GET|*.swf GET|*.ico GET|*.txt GET|*.otf GET|*.pjs GET|*.svg GET|*.json GET|*.woff GET|*.woff2 GET|*.ttf GET|*.svgz" stateful="false">
                        <parameters>
                            <entry value="Cache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nPragma: no-cache" name="http.cache:*.htm *.html"/>
                            <entry value="Cache-Control: max-age=120" name="http.cache:default"/>
                        </parameters>
                    </command>
                    <command implementation="com.orientechnologies.orient.graph.server.command.OServerCommandGetGephi" pattern="GET|gephi/*" stateful="false"/>
                </commands>
                <parameters>
                    <parameter value="utf-8" name="network.http.charset"/>
                    <parameter value="true" name="network.http.jsonResponseError"/>
                </parameters>
            </listener>
        </listeners>
    </network>
    <storages/>
    <users>
        <user resources="*" password="secret" name="root"/>
        <user resources="connect,server.listDatabases,server.dblist" password="SecRet" name="guest"/>
        <user resources="database.passthrough" password="SeCrEt" name="replicator"/>
    </users>
    <properties>
        <entry value="1" name="db.pool.min"/>
        <entry value="50" name="db.pool.max"/>
        <entry value="true" name="profiler.enabled"/>
        <entry value="info" name="log.console.level"/>
        <entry value="fine" name="log.file.level"/>
    </properties>
</orient-server>
Run Code Online (Sandbox Code Playgroud)

Once adding a new node, I get this on the "master" (10.129.1.48):

2016-04-12 10:41:38:483 INFO  [10.129.1.48]:2434 [orientdb] [3.6.2] Accepting socket connection from /10.129.1.129:36103 [SocketAcceptorThread]
2016-04-12 10:41:38:485 INFO  [10.129.1.48]:2434 [orientdb] [3.6.2] Established socket connection between /10.129.1.48:2434 and /10.129.1.129:36103 [TcpIpConnectionManager]
2016-04-12 10:41:45:505 INFO  [10.129.1.48]:2434 [orientdb] [3.6.2]

Members [3] {
        Member [10.129.1.219]:2434
        Member [10.129.1.48]:2434 this
        Member [10.129.1.129]:2434
}
 [ClusterService]
2016-04-12 10:41:45:505 SEVER [orientdb-i-346e11bc] Cannot find node with id '3082da3b-c329-49f3-8561-2053ac5bbe21' [OHazelcastPlugin]
2016-04-12 10:41:45:505 WARNI [orientdb-i-346e11bc] added new node id=Member [10.129.1.129]:2434 name=ext:3082da3b-c329-49f3-8561-2053ac5bbe21 [OHazelcastPlugin]
2016-04-12 10:41:47:558 INFO  [orientdb-i-346e11bc]<-[orientdb-i-8d93ec05] added node configuration id=Member [10.129.1.129]:2434 name=orientdb-i-8d93ec05, now 3 nodes are configured [OHazelcastPlugin]
2016-04-12 10:41:47:569 INFO  [orientdb-i-346e11bc] Current node started as MASTER for database 'db_1' [OHazelcastPlugin]
2016-04-12 10:41:47:569 INFO  [orientdb-i-346e11bc] Current node started as MASTER for database 'db_2' [OHazelcastPlugin]
Run Code Online (Sandbox Code Playgroud)

And on the new node:

2016-04-12 10:41:41:267 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Creating AWSJoiner [Node]
2016-04-12 10:41:41:272 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.129]:2434 is STARTING [LifecycleService]
2016-04-12 10:41:41:359 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] TcpIpConnectionManager configured with Non Blocking IO-threading model: 3 input threads and 3 output threads [NonBlockingIOThreadingModel]
2016-04-12 10:41:41:855 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.129:2435, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:857 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.129:2435. Reason: SocketException[Connection refused to address /10.129.1.129:2435] [InitConnectionTask]
2016-04-12 10:41:41:857 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.129]:2435 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:858 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.129:2436, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:866 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.219:2434, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:868 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.129:2436. Reason: SocketException[Connection refused to address /10.129.1.129:2436] [InitConnectionTask]
2016-04-12 10:41:41:880 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.219:2435, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:881 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.0.14:2434, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:881 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Established socket connection between /10.129.1.129:59102 and /10.129.1.219:2434 [TcpIpConnectionManager]
2016-04-12 10:41:41:882 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.219:2436, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:883 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.129]:2436 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:885 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.0.14:2434. Reason: SocketException[Connection refused to address /10.129.0.14:2434] [InitConnectionTask]
2016-04-12 10:41:41:885 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.0.14]:2434 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:887 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.219:2436. Reason: SocketException[Connection refused to address /10.129.1.219:2436] [InitConnectionTask]
2016-04-12 10:41:41:887 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.219]:2436 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:890 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.219:2435. Reason: SocketException[Connection refused to address /10.129.1.219:2435] [InitConnectionTask]
2016-04-12 10:41:41:890 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.219]:2435 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:892 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.48:2434, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:893 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Established socket connection between /10.129.1.129:36103 and /10.129.1.48:2434 [TcpIpConnectionManager]
2016-04-12 10:41:41:896 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.48:2435, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:897 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.48:2435. Reason: SocketException[Connection refused to address /10.129.1.48:2435] [InitConnectionTask]
2016-04-12 10:41:41:897 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.48]:2435 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:899 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.0.14:2436, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:901 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.1.48:2436, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:902 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.1.48:2436. Reason: SocketException[Connection refused to address /10.129.1.48:2436] [InitConnectionTask]
2016-04-12 10:41:41:902 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.48]:2436 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:906 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Connecting to /10.129.0.14:2435, timeout: 0, bind-any: true [InitConnectionTask]
2016-04-12 10:41:41:906 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.0.14:2435. Reason: SocketException[Connection refused to address /10.129.0.14:2435] [InitConnectionTask]
2016-04-12 10:41:41:907 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.0.14]:2435 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:41:910 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Could not connect to: /10.129.0.14:2436. Reason: SocketException[Connection refused to address /10.129.0.14:2436] [InitConnectionTask]
2016-04-12 10:41:41:910 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.0.14]:2436 is added to the blacklist. [TcpIpJoinerOverAWS]
2016-04-12 10:41:48:921 WARNI [10.129.1.129]:2434 [orientdb] [3.6.2] Ignoring received partition table, startup is not completed yet. Sender: Address[10.129.1.219]:2434 [InternalPartitionService]
2016-04-12 10:41:48:924 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2]

Members [3] {
        Member [10.129.1.219]:2434
        Member [10.129.1.48]:2434
        Member [10.129.1.129]:2434 this
}
 [ClusterService]
2016-04-12 10:41:50:942 INFO  [10.129.1.129]:2434 [orientdb] [3.6.2] Address[10.129.1.129]:2434 is STARTED [LifecycleService]
2016-04-12 10:41:50:943 INFO  Starting distributed server 'orientdb-i-8d93ec05' (hzID=3082da3b-c329-49f3-8561-2053ac5bbe21) dbDir='/opt/orientdb-enterprise-2.1.15/databases/'... [OHazelcastPlugin]
2016-04-12 10:41:50:985 INFO  [orientdb-i-8d93ec05] found no previous messages in queue orientdb.node.orientdb-i-8d93ec05.response [OHazelcastDistributedMessageService]
2016-04-12 10:41:50:992 INFO  [orientdb-i-8d93ec05] loaded database configuration from active cluster [OHazelcastPlugin]
2016-04-12 10:41:51:002 WARNI [orientdb-i-8d93ec05] updated distributed configuration for database: db_1:
----------
{
  "version": 1,
  "replication": true,
  "autoDeploy": true,
  "hotAlignment": true,
  "resyncEvery": 15,
  "executionMode": "synchronous",
  "readQuorum": 1,
  "writeQuorum": 2,
  "failureAvailableNodesLessQuorum": false,
  "readYourWrites": true,
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "index": {
    },
    "*": {
      "servers": ["orientdb-i-8d93ec05","<NEW_NODE>"]
    }
  }
}
---------- [OHazelcastPlugin]
2016-04-12 10:41:51:009 INFO  [orientdb-i-8d93ec05] Current node started as MASTER for database 'db_1' [OHazelcastPlugin]
2016-04-12 10:41:51:108 WARNI [orientdb-i-8d93ec05]->[[]] requesting deploy of database 'db_1' on local server... [OHazelcastPlugin]
2016-04-12 10:41:51:112 SEVER [orientdb-i-8d93ec05] No nodes configured for partition 'db_1.null' request: id=-1 from=orientdb-i-8d93ec05 task=deploy_db [OHazelcastPlugin][orientdb-i-8d93ec05] Error on starting distributed plugin
com.orientechnologies.orient.server.distributed.ODistributedException: No nodes configured for partition 'db_1.null' request: id=-1 from=orientdb-i-8d93ec05 task=deploy_db
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.sendRequest(OHazelcastPlugin.java:347)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.requestDatabase(OHazelcastPlugin.java:944)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installDatabase(OHazelcastPlugin.java:906)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installNewDatabases(OHazelcastPlugin.java:1484)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:175)
        at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:993)
        at com.orientechnologies.orient.server.OServer.activate(OServer.java:336)
        at com.orientechnologies.orient.server.OServerMain.main(OServerMain.java:41)
Run Code Online (Sandbox Code Playgroud)

PS: 10.129.1.193 and 10.129.1.213 is the ELBs, 10.129.0.14 is the NAT instance and 10.129.1.129/orientdb-i-8d93ec05 is the new node, 10.129.1.48/orientdb-i-346e11bc is (or is supposed to be) the "master" node.

What "worries" me is the No nodes configured for partition 'db_1'... part!

Even bigger problem: If I then shutdown all other nodes, and restart the master, it won't come up either!

com.orientechnologies.orient.server.distributed.ODistributedException: Error on creating cluster 'hasfieldset_orientdb-i-346e11bc' in class 'HasFieldset'
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installLocalClusterPerClass(OHazelcastPlugin.java:1663)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installDbClustersForLocalNode(OHazelcastPlugin.java:1313)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.loadDistributedDatabases(OHazelcastPlugin.java:1457)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:177)

        at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:993)
        at com.orientechnologies.orient.server.OServer.activate(OServer.java:336)
        at com.orientechnologies.orient.server.OServerMain.main(OServerMain.java:41)
Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum cannot be reached because there are no nodes available
        at com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.calculateQuorum(OHazelcastDistributedDatabase.java:417)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.send2Nodes(OHazelcastDistributedDatabase.java:121)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.sendRequest(OHazelcastPlugin.java:358)
        at com.orientechnologies.orient.server.distributed.ODistributedStorage.command(ODistributedStorage.java:326)
        at com.orientechnologies.orient.server.distributed.ODistributedStorage.addCluster(ODistributedStorage.java:1333)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.addCluster(ODatabaseDocumentTx.java:1291)
        at com.orientechnologies.orient.core.metadata.schema.OClassImpl.createClusterIfNeeded(OClassImpl.java:2172)
        at com.orientechnologies.orient.core.metadata.schema.OClassImpl.addCluster(OClassImpl.java:1081)
        at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.installLocalClusterPerClass(OHazelcastPlugin.java:1656)
        ... 6 more

2016-04-12 11:49:53:989 WARNI Distributed server is not yet ONLINE (status=STARTING), reject incoming connection from /127.0.0.1:36167. If you are trying to shutdown the server, please kill the process [OServerNetworkListener]
2016-04-12 11:49:54:090 WARNI Distributed server is not yet ONLINE (status=STARTING), reject incoming connection from /127.0.0.1:36168. If you are trying to shutdown the server, please kill the process [OServerNetworkListener]
Run Code Online (Sandbox Code Playgroud)

Which leads me to question three:

  1. How do I now recover my setup, without removing the DB and import it from backup?