Как я могу восстановить базу данных, когда меш больше не запускается? - PullRequest
0 голосов
/ 31 августа 2018

Из-за нехватки памяти наш экземпляр сетки потерпел крах и оставил базу данных в несогласованном состоянии. Mesh больше не запускается, и у меня нет шансов использовать конечные точки восстановления. Есть ли альтернативный способ восстановления базы данных?

Вот вывод ошибки:

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)

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Нам удалось восстановить базу данных с помощью оболочки OrientDB.

  • Сначала мы удалили все * .hib файлы
  • Запустил оболочку OrientDB через докер
  • Затем мы экспортировали старые данные
  • Создана новая база данных
  • Наконец, мы импортировали старые данные в новую базу данных и начали меш
0 голосов
/ 31 августа 2018

Вы можете попробовать удалить все файлы * .hib в вашей директории хранения и снова запустить Mesh. (Создайте резервную копию заранее)

В противном случае вам, к сожалению, нужно скачать OrientDB 2.2.x, добавить базу данных mesh в установку OrientDB и вызвать импорт / экспорт:

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

Если доступен API REST Gentics Mesh, вы также можете попытаться вызвать конечную точку резервного копирования и восстановления. Это можно сделать через mesh-cli :

mesh admin backup
mesh admin restore
...