2008-09-01 11 views
47

필자의 Linux 파일 시스템에 Berkeley DB 파일 세트가 있습니다.CLI에서 Berkeley DB 파일 검사

내용을 빠르게 살펴볼 때 유용한 도구는 무엇입니까? 나는 그것들을 검사하기 위해 BDB 모듈을 사용하는 Perl 스크립트를 작성할 수 있지만 스크립트 작성을 시작하지 않고도 내부를 들여다 볼 수있는 CLI 유틸리티를 찾고있다.

답변

23

db-utils 패키지를 확인하십시오. 당신이 APT 사용하는 경우에는 다음과 같이 설치할 수 있습니다 : (. 당신이 나 선호 또는 apt-get install db4.8-util 또는 어떤 버전) apt-get install db4.4-util

추가 링크 :

+4

db4.8_dump의 출력을 이해하는 방법이나 그 패키지의 모든 것이 유용 할 수 있습니다. 출력 형식은 덤프 맨 페이지 자체에 설명되어 있지 않으며, 심지어 'bytevalue'형식이나 그게 무엇이든 설명하지 않습니다. ..... 패키지를 찾아서 설치할 필요없이 더 예쁘게 출력하려면 해답 파이썬 사용, eg 에 의해 trjh. – nealmcb

+2

내 패키지는'db-util'의 이름이었습니다 – user123456

6

db_hotbackup 유틸리티는 B의 "핫 백업"또는 "핫 페일 오버"스냅 샷을 만듭니다 erkeley DB 데이터베이스 환경. (가)

를 다음과 같이 설치 apt-get을 핫 백업을 [-cDEguVv] db_hotbackup

를 취할 후 다음 명령을 실행하여 DB-폴더의 유틸리티

를 설치 [-d data_dir ...] [- H 홈] [-l LOG_DIR] [-P 암호] -b BACKUP_DIR

5

당신은 DB 유틸을 설치 한 후에는 단순 DB 파일에 db_dump를을 할 수 있습니다.

2

"db-utils"패키지를 사용하는 것이 초기 답변에 나와 있지만 "db-util"패키지가 올바른지 확인하십시오. ("s"없음)

8

다른 답변에서 언급했듯이 db-utils 패키지 (RHEL의 db4-utils)에는 몇 가지 도구가 있습니다. 그러나 db_dump는 출력이 'bytevalue'형식이므로 도움이되지 않습니다. 파이썬 2.6 이후 사용되지 않습니다 dbhash bsdhash.hashopen에

[email protected]$ 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 
... 

참고 : quick'n'dirty 뷰어에 대한

는 파이썬을 사용합니다.

12

데이터베이스가있는 컴퓨터에 새 패키지를 추가하고 싶지 않았기 때문에 @ strickli의 답이 가장 도움이된다는 사실을 발견했습니다. 그러나, 나는 읽고 있던 DB를 파일 형식의 BTREE하지 해시이었다, 그래서 나는 당신이 그것을 설치할 수 있습니다 아마존 리눅스에서

# 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 
... 
1

bsddb 데이타 사용했다 :

냠 db43-utils를

설치
19

db_dump 프로그램을 사용하십시오. 이 패키지는 core/db (Arch), db-util (Debian, Ubuntu), sys-libs/db (Gentoo는 바이너리가 db4.8_dump 또는 사용중인 버전이 무엇이든간에)에 포함되어 있습니다.

일부 시스템에서는 설명서 페이지가 설치되어 있지 않으므로 해당 설명서는 here입니다. 기본적으로 db_dump은 일부 16 진수를 출력하므로 데이터베이스의 내용을 분석하려는 경우에는별로 유용하지 않습니다. 이 값을 변경하려면 -p 인수를 사용하십시오.

파일 database.db에있어 모든 것을 표시 :

db_dump -l database.db 

파일의 데이터베이스 mydb의 내용 만 표시 :

db_dump -p database.db 

목록을 파일 database.db의 데이터베이스 database.db :

db_dump -p -s mydb database.db 
+2

는 최고 대답이어야합니다 – alexg