Как открыть BerkeleyDB файл?
Иногда бывает необходимым откртыть файл баз BerkeleyDB, однако как сделать это не всегда понятно. Встает вопрос "Чем открыть файл BerkleyDB? Как открыть файл BerkleyDB? Как отрыть .db файл?" Вот и мне пришлось потрудиться чтобы прочитать файл bkdb.db, который сформировал perl скрипт.
Обычно хватает простой утилиты db-util. Посмотрим что нам предлагает репозиторий Ubuntu:
#aptitude search db | grep util p barry-util-dbg - Утилиты командной строки для BlackBerry (о p barry-util-dbg:i386 - Утилиты командной строки для BlackBerry (о p coinor-libcoinutils3-dbg - Coin-or collection of utility classes (deb p coinor-libcoinutils3-dbg:i386 - Coin-or collection of utility classes (deb p db-upgrade-util - Berkeley Database Utilities (old versions) p db-util - Berkeley Database — утилиты p db5.1-sql-util - Berkeley v5.1 SQL Database Utilities p db5.1-sql-util:i386 - Berkeley v5.1 SQL Database Utilities p db5.1-util - Berkeley v5.1 Database Utilities p db5.1-util:i386 - Berkeley v5.1 Database Utilities p db5.3-sql-util - Berkeley v5.3 SQL Database Utilities p db5.3-sql-util:i386 - Berkeley v5.3 SQL Database Utilities p db5.3-util - Утилиты для базы данных Berkeley v5.3 p db5.3-util:i386 - Утилиты для базы данных Berkeley v5.3 p db6.0-sql-util - Berkeley v6.0 SQL Database Utilities p db6.0-sql-util:i386 - Berkeley v6.0 SQL Database Utilities p db6.0-util - Berkeley v6.0 Database Utilities p db6.0-util:i386 - Berkeley v6.0 Database Utilities |
Установим утилиту db6.0-util. Делается это командой:
#aptitude install db6.0-util |
Далее, чтобы открыть нашу базу воспользуемся командой:
#db6.0_dump -p bkdb.db |
Однако если у нас файл создан под старую версию DB, т.е. у нас:
# file bkdb.db bkdb.db: Berkeley DB 1.85 (Hash, version 2, native byte-order) |
Тогда у нас база не откроется, и вылетит ошибка:
# db6.0_dump -p bkdb.db db6.0_dump: BDB5115 open: bkdb.db: Invalid argument |
Поискав версию 1.85 в репозитории ничего не нашлось подходящего.
Ищем дальше, пробуем:
# aptitude search db | grep -i berkeley … p libdb1-compat - Berkeley database routines [glibc 2.0/2.1 compatibility]
... |
Возможно что api к этой базе входило в старые glibc<2.0, на новой версии оно и не работает.
Пробуем установить.
#aptitude istall libdb1-compat |
После установки этой либы у меня появилась утилита /usr/bin/db_dump185. Пробуем снова открыть базу:
#db_dump185 -p bkdb.db | less format=print type=hash h_ffactor=204 db_lorder=1234 db_pagesize=16384 HEADER=END wwwdddlggru_utf8 /www/db/db_backup/ddd01//wwwdddlggru_utf8_mysql_2014-10-31_17:00.sql.gz u10114 /www/db/db_backup/u10114//u10114_mysql_2014-11-17_10:26.sql.gz wwwtweetyru_tyumtech /www/db/db_backup/tweety//wwwtweetyru_tyumtech_mysql_2014-12-06_11:53.sql.gz
|
Всё работает!
Обновлено 05.04.2016 08:04