Еще горстка материалов:

Как открыть BerkeleyDB файл

Как открыть 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

unix-way