Как очистить файлы MemcacheQ db?
Мой MemcacheQ запускается с:
memcacheq -d -r -H /db/baamboo -N -R -L 2048 -T 300 -l 192.168.6.29 -p 22211 -u memcacheq -t 8 -m 512 -P /var/run/baamboo.pid -v
Это ест место на жестком диске. Нашел эту тему от Google, но я проверил страницу справки: -e
Опция имеет другое значение:
-e <num> percent of the pages in the cache that should be clean, default is 60%
Как отмечено в приведенной выше ссылке, я также очищаю файлы журналов db_archive -a -h ... | xargs rm -f
(memcacheq имеет -R
возможность сделать это автоматически). Но после этого __dbq.*
Кажется, файл не соответствует файлам журнала. Итак db_stat
претензии:
# db_stat -d BBKeyword
db_stat: PANIC: fatal region error detected; run recovery
...
примерно так: http://forums.oracle.com/forums/thread.jspa?threadID=2146996&tstart=15
Я не могу дать вам точный вывод, потому что db_stat
бежать вечно и, кажется, зависать.
У меня много __dbq.*
файлы:
# ls -1 __dbq.* | wc -l
11849
Размер одного файла БД составляет 4 КБ * 16 * 1024 = 64 МБ, поэтому общий размер составляет 743 ГБ.
Беркли DB 4.7.25
ОБНОВЛЕНИЕ 1
# db_stat -d BBKeyword
Wed Aug 17 11:34:59 2011 Local time
db_stat: PANIC: fatal region error detected; run recovery
db_stat: PANIC: fatal region error detected; run recovery
db_stat: close: DB_RUNRECOVERY: Fatal error, run database recovery
db_stat: File handles still open at environment close
db_stat: Open file handle: BBKeyword
db_stat: Open file handle: queue.list
db_stat: Open file handle: BBUpdateViewQt
db_stat: Open file handle: BBUpdateViewVn
db_stat: Open file handle: BBUpdateViewYt
db_stat: Open file handle: log.0000083311
db_stat: Open file handle: ./__dbq.BBKeyword.285
db_stat: Open file handle: ./__dbq.BBKeyword.286
db_stat: Open file handle: ./__dbq.BBKeyword.287
db_stat: Open file handle: ./__dbq.BBKeyword.288
db_stat: PANIC: fatal region error detected; run recovery
db_stat: dbenv->close: DB_RUNRECOVERY: Fatal error, run database recovery
db_verify
дать много плохих номеров страниц:
...
db_verify: Page 16379: bad page number 4734972
db_verify: Page 16380: bad page number 4734973
db_verify: Page 16381: bad page number 4734974
db_verify: Page 16382: bad page number 4734975
db_verify: Page 16383: bad page number 4734976
db_verify: __dbq.BBKeyword.288: DB_VERIFY_BAD: Database verification failed
Итак, я останавливаю memcacheq
и беги db_recover
:
# db_recover -v -h /data/memcacheq/db/baamboo/
Finding last valid log LSN: file: 83311 offset 1795753
Recovery starting from [83310][1429052]
Recovery complete at Wed Aug 17 12:03:09 2011
Maximum transaction ID 8000ac4f Recovery checkpoint [83311][1796460]
и проверьте снова с db_verify
:
# db_verify -h . __dbq.BBKeyword.288
db_verify: Page 0: metadata page corrupted
db_verify: Page 0: could not check metadata page
db_verify: __dbq.BBKeyword.288: DB_VERIFY_BAD: Database verification failed
1 ответ
Кажется, вы пытаетесь использовать проверку в файле региона, а не в файле базы данных. Смотрите эту тему на OTN.