Frage

bsddb.db.DBInvalidArgError: (22, 'Invalid argument - /dbs/supermodels.db: unerwartetes Dateityp oder das Format')

Ist dieser Fehler ein Ergebnis von inkompatiblen BDB Versionen (1,85 oder 3+)? Wenn ja, wie kann ich überprüfen, die Versionen, störungs schießen und lösen diesen Fehler?

War es hilfreich?

Lösung

Ja, das sicherlich auf ältere Versionen der db-Datei sein könnte, aber es würde helfen, wenn Sie den Code gepostet, dass diese Ausnahme erzeugt und die vollständige Rückverfolgung.

In Ermangelung dieser, sind Sie sicher, dass die Datenbank-Datei, die Sie Öffnung des richtigen Typs ist? Um zum Beispiel eine btree Datei zu öffnen versucht, als ob es ein Hash wirft die Ausnahme, dass Sie sehen:

>>> import bsddb
>>> bt = bsddb.btopen('bt')
>>> bt.close()
>>> bsddb.hashopen('bt')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen
    d.open(file, db.DB_HASH, flags, mode)
bsddb.db.DBInvalidArgError: (22, 'Invalid argument -- ./bt: unexpected file type or format')

* nichts können Sie in der Regel die Art der db bestimmen, indem den file Befehl, z.

$ file /etc/aliases.db cert8.db 
/etc/aliases.db: Berkeley DB (Hash, version 8, native byte-order)
cert8.db:        Berkeley DB 1.85 (Hash, version 2, native byte-order)

Öffnen eine 1.85-Version-Datei nicht mit der gleichen Ausnahme:

>>> db = bsddb.hashopen('/etc/aliases.db')    # works, but...
>>> db = bsddb.hashopen('cert8.db')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen
    d.open(file, db.DB_HASH, flags, mode)
bsddb.db.DBInvalidArgError: (22, 'Invalid argument -- ./cert8.db: unexpected file type or format')

Wenn Sie die Datenbankdateien migrieren müssen, Sie an der db_dump, db_dump185 und db_load Dienstprogramme aussehen sollten, die mit dem BDB distribuition kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top