代码之家  ›  专栏  ›  技术社区  ›  mercutio

从CLI检查Berkeley DB文件

  •  50
  • mercutio  · 技术社区  · 16 年前

    我的Linux文件系统上有一组伯克利数据库文件,我想检查一下。

    有哪些有用的工具可以快速浏览内容?我可以编写使用bdb模块检查它们的Perl脚本,但我正在寻找一些cli实用程序,以便在不必开始编写脚本的情况下查看内部。

    8 回复  |  直到 16 年前
        1
  •  23
  •   nealmcb    10 年前

    退房 数据库应用程序 包裹。如果您使用apt,则可以使用以下方法安装它: apt-get install db4.4-util (或) apt-get install db4.8-util 或者你喜欢的任何版本。)

    其他链接:

        2
  •  27
  •   cdauth    9 年前

    使用 db_dump 程序。它装在包裹里 core/db (拱) db-util (德班、乌班图) sys-libs/db (Gentoo,注意这里的二进制代码是 db4.8_dump 或者你正在使用的任何版本)。

    在某些系统上,没有安装手册页,在这种情况下,可以找到文档 here . 默认情况下, 数据库转储 输出一些十六进制数,如果您试图分析数据库的内容,这实际上并不有用。使用 -p 改变这一点的理由。

    显示文件中的所有内容 database.db :

    db_dump -p database.db
    

    列出文件中的数据库 数据库数据库 :

    db_dump -l database.db
    

    仅显示数据库的内容 mydb 在文件中 数据库数据库 :

    db_dump -p -s mydb database.db
    
        3
  •  14
  •   trjh    10 年前

    我发现@strickli的答案是最有用的,因为我不想用我所在的数据库向机器添加任何新的包。但是,我正在读取的数据库文件是btree类型,而不是hash类型,所以我必须使用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
    ...
    
        4
  •  9
  •   strickli    11 年前

    如其他答案所述,db utils包(rhel下的db4 utils)具有一些工具。但是,由于输出是“bytevale”格式,因此db_转储可能没有帮助。

    对于快速“不脏”的查看器,请使用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
    ...
    

    注意,dbhash自python 2.6以来已被弃用。

        5
  •  6
  •   Ishtiaq Ahmed    12 年前

    数据库热备份实用程序创建伯克利数据库环境的“热备份”或“热故障转移”快照。安装如下

    apt-get安装db-util

    然后运行以下命令进行热备份

    db_hotbackup[-cdeguvv][-d data_dir…][-h home] [-l日志目录][-p密码]-b备份目录

        6
  •  5
  •   Gunnarsson    11 年前

    一旦安装了db utils,就可以简单地执行 数据库转储 在DB文件上。

        7
  •  3
  •   A.R. Pepper    11 年前

    注意,最初的答案是使用“db utils”包,但示例显示了正确的“db utils”包。(没有“S”)

        8
  •  2
  •   Dan Herman    9 年前

    在Amazon Linux下,您可以安装它:

    yum安装db43 utils