linux command-line-interface berkeley-db

linux - Examinando los archivos Berkeley DB de la CLI



command-line-interface berkeley-db (8)

La utilidad db_hotbackup crea instantáneas de "respaldo en caliente" o "conmutación por error en caliente" de los entornos de bases de datos DB de Berkeley. Instálalo con lo siguiente

apt-get install db-util

luego ejecute el siguiente comando para realizar una copia de seguridad en caliente

db_hotbackup [-cDEguVv] [-d data_dir ...] [-h home] [-l log_dir] [-P password] -b backup_dir

Tengo un conjunto de archivos Berkeley DB en mi sistema de archivos Linux que me gustaría examinar.

¿Qué herramientas útiles existen para obtener una visión general rápida de los contenidos? Puedo escribir scripts Perl que usan módulos BDB para examinarlos, pero estoy buscando alguna utilidad CLI para poder echar un vistazo al interior sin tener que empezar a escribir scripts.


Una vez que haya instalado el db utils, puede hacer un db_dump en el archivo db.


Tenga en cuenta que la respuesta inicial dice que use el paquete "db-utils", pero el ejemplo muestra el paquete "db-util" correcto. (sin "s")


Como se menciona en las otras respuestas, el paquete db-utils (db4-utils en RHEL) tiene algunas herramientas. Sin embargo, db_dump puede ser inútil, ya que el resultado es el formato ''bytevalue''.

Para un visor quick''n''dirty, use python:

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

Tenga en cuenta que dbhash está en desuso desde python 2.6.


La respuesta de @ strickli fue la más útil, ya que no quería agregar ningún paquete nuevo a la máquina con la base de datos en la que estaba. Sin embargo, el archivo db que estaba leyendo era de tipo btree, no hash, así que tuve que usar bsddb

# file foo.db foo.db: Berkeley DB (Btree, version 9, native byte-order) # python >>> import bsddb >>> for k, v in bsddb.btopen("*<db filename here...>*").iteritems(): ... print k,v ...



En Amazon Linux puede instalarlo con:

yum install db43-utils


Use el programa db_dump . Está contenido en el paquete core/db (Arch), db-util (Debian, Ubuntu), sys-libs/db (Gentoo, tenga en cuenta que aquí el binario se llama db4.8_dump o la versión que esté usando).

En algunos sistemas, las páginas man no están instaladas, en ese caso la documentación se puede encontrar aquí . De forma predeterminada, db_dump genera algunos números hexadecimales, lo que no es realmente útil si está intentando analizar el contenido de una base de datos. Usa el argumento -p para cambiar esto.

Muestra todo lo que está en la database.db archivo.db:

db_dump -p database.db

Enumere las bases de datos en la base de datos del archivo.db:

db_dump -l database.db

Mostrar solo el contenido de la base de datos mydb en el archivo database.db :

db_dump -p -s mydb database.db