Как обработать нечитаемый файл шарда?
Я периодически выполняю резервное копирование всего своего сервера (включая виртуальные машины) rsync
, Теперь что-то не так с моим жестким диском, и некоторые файлы не читаются, включая файл CouchDB (сообщение обфусцировано):
cp: error reading '/var/lib/lxc/my-couch2/rootfs/home/foo/couchdb/couchdb/data/.shards/40000000-5fffffff/bar2.1533443496_design/mrview/54f171fe1f24ac4eb52ac24c85f9d8fc.view': Input/output error
Согласно документации:
Для обеспечения надежности резервного копирования рекомендуется выполнить резервное копирование вторичных индексов (хранящихся в data/.shards) перед резервным копированием основных файлов базы данных (хранящихся в data/shards, а также баз данных системного уровня в родительских данных / каталог). Это связано с тем, что CouchDB будет автоматически обрабатывать представления / вторичные индексы, которые немного устарели, обновляя их при следующем доступе к чтению, но представления или вторичные индексы, которые новее, чем связанные с ними базы данных, вызовут полное перестроение индекса. Это может быть очень дорогостоящей и длительной операцией, и может повлиять на вашу способность к быстрому восстановлению в аварийной ситуации.
Итак, AFAIK это временный файл. Есть ли способ перестроить этот файл, используя сам CouchDB, чтобы мы могли как исправить файл на сервере, так и нормально сделать резервную копию?
1 ответ
Я задал тот же вопрос по apache / couchdb / questions. Что касается ответа, я создал резервную копию ошибочного файла и запустил все представления в базе данных. bar2
, Этот файл восстановлен, и все, кажется, работает правильно.