Невозможно запустить mongod с одним отсутствующим файлом wt коллекции - PullRequest
0 голосов
/ 04 июня 2019

У меня есть работающий экземпляр mongod (v3.2.21).

Но вдруг он перестал работать.Когда я запускаю команду mongo, она выдает мне следующую ошибку:

2019-06-04T13:52:41.725+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused

Когда я проверял журнал, он показывает:

2019-06-04T13:36:43.388+0000 E STORAGE  [initandlisten] WiredTiger (2) [1559655403:388180][8404:0x7fb74e904c80], file:collection-1-1305830686620002691.wt, WT_SESSION.open_cursor: /mnt/volume-fra1-01//collection-1-1305830686620002691.wt: handle-open: open: No such file or directory
2019-06-04T13:36:43.388+0000 E STORAGE  [initandlisten] no cursor for uri: table:collection-1-1305830686620002691
2019-06-04T13:36:43.388+0000 F -        [initandlisten] Invalid access at address: 0x58
2019-06-04T13:36:43.398+0000 F -        [initandlisten] Got signal: 11 (Segmentation fault).

Коллекция, которая раньше была там, теперь отсутствует в каталоге данных

Я пытался использовать --repair, но процесс остановился на этой коллекции.

Я посмотрел на различные ресурсы, но не мог понять, как заставить его работать?Есть ли способ, чтобы wiredtiger сбежал из этой коллекции?

1 Ответ

1 голос
/ 05 июня 2019

MongoD 4.0.3 и новее имеет лучшие возможности для ремонта согласно SERVER-19815 .

Одна вещь, которую вы можете попробовать:

  1. Скопируйте оригинал dbpath, поэтому, если попытка не удалась, вы не сожжете исходные данные
  2. Загрузите бинарные файлы 4.0.3 (или новее, в настоящее время последняя версия 4.0.10)
  3. mongod --repair используя двоичные файлы 4.0.3, чтобы попытаться восстановить скопированный dbpath
  4. Если восстановление прошло успешно, попробуйте запустить двоичные файлы 3.2.21, указывающие на исправленный dbpath

Обратите внимание, что эта попытка ремонта является наилучшей, и нет гарантии успеха.Наличие актуальной резервной копии все еще рекомендуется.Вы можете также захотеть выяснить, почему в dbpath отсутствует файл для начала.

...