簡體   English   中英

Mesh不再啟動時如何恢復數據庫?

[英]How can I restore the database when mesh is not starting up any more?

由於內存不足,我們的網狀實例崩潰並導致數據庫處於不一致狀態。 網格不再啟動,我沒有機會使用還原端點。 是否有其他還原數據庫的方法?

這是錯誤輸出:

SEVERE: $ANSI{green {db=storage}} Exception during index 'e.has_branch_inout' deletion
com.orientechnologies.orient.core.exception.OPageIsBrokenException: Following files and pages are detected to be broken ['e.has_field_container_branch_type_lang.hib' :86;], storage is switched to 'read only' mode. Any modification operations are prohibited. To restore database and make it fully operational you may export and import database to and from JSON.
DB name="storage"
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5143)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.deleteIndexEngine(OAbstractPaginatedStorage.java:2113)
        at com.orientechnologies.orient.core.index.OIndexAbstract.create(OIndexAbstract.java:259)
        at com.orientechnologies.orient.core.index.OIndexMultiValues.create(OIndexMultiValues.java:258)
        at com.orientechnologies.orient.core.index.OIndexMultiValues.create(OIndexMultiValues.java:44)
        at com.orientechnologies.orient.core.index.OIndexManagerShared$RecreateIndexesTask.createAutomaticIndex(OIndexManagerShared.java:600)
        at com.orientechnologies.orient.core.index.OIndexManagerShared$RecreateIndexesTask.recreateIndex(OIndexManagerShared.java:586)
        at com.orientechnologies.orient.core.index.OIndexManagerShared$RecreateIndexesTask.recreateIndexes(OIndexManagerShared.java:534)
        at com.orientechnologies.orient.core.index.OIndexManagerShared$RecreateIndexesTask.run(OIndexManagerShared.java:515)
        at java.lang.Thread.run(Thread.java:745)

謝謝你的幫助!

我們設法通過使用OrientDB Shell恢復數據庫。

  • 首先,我們刪除了所有* .hib文件
  • 通過docker啟動OrientDB shell
  • 然后我們導出舊數據
  • 創建一個新的數據庫
  • 最后,我們將舊數據導入新數據庫並開始網格化

您可以嘗試刪除存儲目錄中的所有* .hib文件,然后再次啟動Mesh。 (預先創建備份)

否則,很不幸,您需要下載OrientDB 2.2.x,在OrientDB安裝中添加mesh數據庫並調用導入/導出:

https://orientdb.com/docs/2.2.x/Export-Format.html

如果Gentics Mesh的REST API可用,您也可以嘗試調用備份和還原端點。 這可以通過mesh-cli完成

mesh admin backup
mesh admin restore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM