2013-08-28 57 views
1

前段時間我們有一些託管提供商的存儲問題,(不知道這是否真的對我們的問題)現在我們在數據庫中有一些consisteny問題。使用空的graph.db文件夾啓動乾淨的從服務器不會導致從服務器創建主服務器的完整副本數據。neo4j數據庫一致性錯誤

而且,在做備份時,我們得到一致性檢查錯誤,所有的時間:

Full consistency check 
.................... 10% 
.................... 20% 
.................... 30% 
.................... 40% 
.................... 50% 
.................... 60% 
.................... 70% 
.................... 80% 
...........2013-08-28 08:50:28.184+0000 INFO [org.neo4j]: ERROR: The next block is not in use. 
     DynamicRecord[2987807,used=true,light=false(120),type=0,data=byte[size=120],next=2987808] 
     Inconsistent with: DynamicRecord[2987808,used=false,light=false(105),type=0,data=byte[size=105],next=-1] 
......... 90% 
...................2013-08-28 08:50:29.653+0000 INFO [org.neo4j]: WARNING: The name is empty. 
     PropertyIndexRecord[2035,in use,nameId=2036,propCount=0] 
     Inconsistent with: DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1] 
2013-08-28 08:50:29.657+0000 INFO [org.neo4j]: WARNING: The block is empty. 
     DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1] 
. 100% 
2013-08-28 08:50:29.658+0000 INFO [org.neo4j]: Inconsistencies found: ConsistencySummaryStatistics{ 
     Number of errors: 1 
     Number of warnings: 2 
     Number of inconsistent STRING_PROPERTY records: 1 

我找不到/谷歌的任何方式來解決這個問題,沒有「mysqlcheck的」替代或「修表」工具,沒什麼......

任何幫助/提示將大大appriciated ...

感謝, 安德里亞

回答

4

Neo4j的不provid以任何方式來做到這一點。如果可能,最好的選擇可能是加載較舊的備份。

問題是,如果你刪除這些損壞的記錄,neo4j將有一個邏輯的一致性檢查器(如刪除關係將尋找下一個關係鏈接與以前),所以您將無法通過正常的API刪除它們。

Neo4j可能能夠提供一些可以清除這些不良記錄的驗證程序,但這是人們想要的嗎?這些記錄大部分都無法恢復,因爲其中大部分都是Neo4j中的某種鏈接列表條目,一旦你失去了引用,你不知道它屬於哪個列表。

+1

四年過去了,什麼也沒有發生。 – simonbor