Изучение файлов Berkeley DB из CLI

У меня есть набор файлов Berkeley DB в файловой 9X_command-line-interface системе Linux, которые я хотел бы изучить.

Какие 9X_bdb существуют полезные инструменты для быстрого 9X_berkeley-db просмотра содержимого? Я могу писать Perl-скрипты, которые 9X_bdb используют модули BDB для их изучения, но 9X_command-line-interface я ищу какую-нибудь утилиту CLI, чтобы заглянуть 9X_bdb внутрь, не прибегая к написанию скриптов.

59
0
9
Общее количество ответов: 9

Ответ #1

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Используйте программу db_dump. Он содержится в 9X_linux пакете core/db (Arch), db-util (Debian, Ubuntu), sys-libs/db (Gentoo, обратите 9X_bdb внимание, что здесь двоичный файл называется 9X_command-line-interface db4.8_dump или любой другой версией, которую вы используете).

В 9X_command-line-interface некоторых системах страницы руководства 9X_cli не устанавливаются, в этом случае документацию 9X_cli можно найти here. По умолчанию db_dump выводит некоторые 9X_berkeley-db шестнадцатеричные числа, что не очень полезно, если 9X_command-line-interface вы пытаетесь проанализировать содержимое 9X_command-line-interface базы данных. Используйте аргумент -p, чтобы 9X_cli изменить это.

Показать все, что есть в файле database.db:

db_dump -p database.db

Перечислите базы данных в файле database.db:

db_dump -l database.db

Показать только содержимое базы данных mydb в файле database.db:

db_dump -p -s mydb database.db

56
1

  • должен быть главный ответ<p><span cla ...

Ответ #2

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Ознакомьтесь с пакетом db-utils. Если вы используете 9X_cli apt, вы можете установить его следующим 9X_berkeley-db образом: apt-get install db-util (или apt-get install db4.8-util или любая другая версия, которая 9X_command-line-interface у вас есть или которую вы предпочитаете.)

Дополнительные 9X_bdb ссылки:

25
2

  • Пример того, как разобраться в выводе db4.8_dump или чего-то еще из этого паке ...

Ответ #3

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Я нашел ответ @strickli наиболее полезным, так 9X_cli как я не хотел добавлять какие-либо новые 9X_berkeley-db пакеты на машину с базой данных, в которой 9X_bdb я был. Однако файл db, который я читал, имел 9X_cli тип btree, а не хэш, поэтому мне пришлось 9X_berkeley-db использовать bsddb

# file foo.db
foo.db: Berkeley DB (Btree, version 9, native byte-order)

# python
>>> import bsddb
>>> for k, v in bsddb.btopen("**").iteritems():
...     print k,v
...

15
0

Ответ #4

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Как упоминалось в других ответах, пакет 9X_command-line-interface db-utils (db4-utils под RHEL) имеет некоторые 9X_cli инструменты. Однако db_dump может быть бесполезным, поскольку 9X_berkeley-db вывод имеет формат «байтовое значение».

Для 9X_berkeley-db быстрого просмотра используйте python:

me@machine$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import dbhash
>>> for k, v in dbhash.open( ** ).iteritems(): print k, v
...

Обратите 9X_bdb внимание, что dbhash устарел, начиная с 9X_cli python 2.6.

9
0

Ответ #5

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Утилита db_hotbackup создает моментальные 9X_command-line-interface снимки «горячего резервирования» или «горячего 9X_berkeley-db переключения при отказе» сред баз данных 9X_command-line-interface Berkeley DB. Установите его следующим

apt-get install db-util

затем 9X_linux выполните следующую команду, чтобы выполнить 9X_linux горячее резервное копирование

db_hotbackup [-cDEguVv] [-d каталог_данных ...] [-h главная] [-l каталог_журнала] [-P пароль] -b резервный_каталог

6
0

Ответ #6

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

После установки утилит db вы можете просто 9X_cli выполнить db_dump с файлом db.

6
0

Ответ #7

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Обратите внимание, что в первоначальном 9X_berkeley-db ответе говорится об использовании пакета 9X_command-line-interface «db-utils», но в примере показан правильный 9X_command-line-interface пакет «db-util». (без букв)

4
0

Ответ #8

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

В Amazon Linux его можно установить с помощью:

yum install db43-utils

9X_cli

1
0

Ответ #9

Ответ на вопрос: Изучение файлов Berkeley DB из CLI

Питон 3
from bsddb3 import db
import collections
d = db.DB()
d.open('./file.dat', 'dbname', db.DB_BTREE, db.DB_THREAD | db.DB_RDONLY)
d.keys()
collections.OrderedDict((k, d[k]) for k in d.keys())

9X_berkeley-db

1
0