我試圖在3臺服務器上安裝。舉例來說,我是 試圖設置一個類「客戶端」,有3個集羣「client_1」, 「client_2」和「client_3」。我的服務器稱爲node1,node2和 node3。我想簇佈置成使得我有每個 簇的2個拷貝,因此,如果1個節點關閉我仍然可以訪問所有的數據,所以對於 例如:設置分片的orientdb
- 節點1是主對的Client_1和具有client_2的副本。
- node2是client_2的主服務器,並具有client_3的副本。
- node3是client_3的主服務器,並具有client_1的副本。
我試着用下面的步驟設置它: 1.下載OrientDB 2.1.1社區並提取到3臺服務器上。 2.從每個服務器的 的數據庫目錄中刪除GratefulDeadConcerts數據庫。 3.編輯默認分佈式-DB-config.json在node1如下:
{
"autoDeploy": true,
"hotAlignment": false,
"executionMode": "undefined",
"readQuorum": 1,
"writeQuorum": 2,
"failureAvailableNodesLessQuorum": false,
"readYourWrites": true,
"clusters": {
"internal": {
},
"index": {
},
"client_1": {
"servers" : [ "node1","node2" ]
},
"client_2": {
"servers" : [ "node2","node3" ]
},
"client_3": {
"servers" : [ "node3","node1" ]
},
"*": {
"servers" : [ "<NEW_NODE>" ]
}
}
}
與dserver.sh
- 開始節點1。
- 創建使用在node1控制檯一個數據庫: 連接遠程:本地主機根密碼 遠程創建數據庫:本地主機/ TESTDB根密碼plocal圖表
- 創建類和重命名默認羣集: 創建類的客戶端延伸v ALTER集羣客戶端名稱client_1與
- 啓動節點2與dserver.sh,等待數據庫自動部署,然後 啓動節點3,等待部署
- 在節點2中添加的Client_2羣集: ALTER類客戶addcluster client_2的
- 類似地,在節點3: ALTER類客戶addcluster client_3
在這一點上我有3個節點的數據庫,用一個名爲「客戶端」 的類只有一個集羣「client_1」。
如果我重新連接所有控制檯會話並執行「列表羣集」我現在在每個節點上看到所有3個羣集的客戶端類的 。我還會在每個節點上看到3個羣集中的每一個的.cpm和 .pcl文件。然而,它似乎 我的意圖在默認分佈式db-config.json被採取到 帳戶,如果我等了幾分鐘,然後從每個 節點插入一個記錄我看到時間戳和文件大小隻更改文件 與假設存在於每個節點上的羣集 (如果文件不存在於錯誤的 節點上,但它不是世界的盡頭)會更好,更不易混淆。
因此......現在看來我的數據庫設置是按照我的意圖完成的,但是 這樣做的目的是爲了讓我們能夠在服務器停機的情況下生存下來,所以我使用ctrl-c關閉了node3。我仍然可以看到來自節點1和節點2的每個記錄(我插入了 3,每個羣集一個) - 迄今爲止非常好。
如果我看一看distirbuted-db.json對節點1或節點2, 內容我現在看到我的「客戶」類集羣已重新配置 - 沒有 節點3在配置不再:
"client_3": { "servers": [ "node1" ], "@version": 0, "@type": "d" },
"client_2": { "servers": [ "node2" ], "@version": 0, "@type": "d" },
"client_1": { "servers": [ "node1", "node2" ], "@version": 0,
"@type": "d" }
現在我重新啓動node3。這個配置是沒有得到再次更新:
"client_3": { "servers": [ "node1" ], "@version": 0,
"@type": "d" },
"client_2": { "servers": [ "node2" ], "@version": 0, "@type": "d" },
"client_1": { "servers": [ "node1", "node2" ], "@version": 0,
"@type": "d" }
有什麼錯在我創建的方式/配置數據庫或這是一個錯誤?