5

bdtables を使用して python で berkeley db を開く際に問題があります。bdtables は、データベースへのアクセスに使用しているライブラリで使用されているため、機能する必要があります。

問題は、私が開こうとしている db 環境 (開こうとしているデータベースのコピーを取得した) がバージョン 4.4 であるのに対し、libdb はバージョン 4.6 であることです。bsddb.dbtables.bsdTableDB([dbname],[folder]) を使用すると、次のエラーが発生します。

(-30972, "DB_VERSION_MISMATCH: Database environment version mismatch -- Program version 4.6 doesn't match environment version 4.4")

ただし、bsddb.btopen([dbname]) は機能します。

また、db4.4-util、db4.5-util、および db4.6-util をインストールしようとしました。db4.6_verify を使用しようとすると、次の結果になります。

db4.6_verify: Program version 4.6 doesn't match environment version 4.4
db4.6_verify: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version mismatchs

db4.4_verify を実行すると、コンピューターがハングするだけで、何も起こりません。

最後に、データベースで db4.4_recover を実行すると、うまくいきます。ただし、その後、Pythonで「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。

4

2 に答える 2

3

回答は、質問の補遺としてではなく、「回答」セクションに入れる必要があると思います。これは、質問がさまざまな質問リストページに回答があることを示しているためです。私はあなたのためにそれをしますが、もしあなたもそれをやり遂げるなら、私の答えにコメントを残してください。そうすれば私はそれを削除できます.

「質問への回答」の引用:

この質問のすべてを確認して、最終的に問題を解決しました。「No such file or directory」は、いくつかの __db.XXX ファイルが見つからないことが原因です。使用する

bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)

db4.4_recover の後、これらのファイルが作成され、すべてが機能するようになりました。

それでも、それは少しあいまいな問題であり、最初は把握するのが困難でした. しかし、 Examineing Berkeley DB files from the CLIという質問のおかげで、必要なツールを入手できました。誰かが将来同じ問題に遭遇し、stackoverflow.com にたどり着いた場合は、ここに投稿します。

于 2008-10-09T02:16:06.663 に答える
0

くそー、この質問のすべてを確認して、最終的に問題を解決しました。「No such file or directory」は、いくつかの __db.XXX ファイルが見つからないことが原因です。db4.4_recover の後に bsddb.dbtables.bsdTableDB([dbname],[folder], create=1) を使用すると、これらのファイルが作成され、すべてが機能するようになりました。

それでも、それは少しあいまいな問題であり、最初は把握するのが困難でした. しかし、CLI から Berkeley DB ファイルを調べるという質問のおかげで、必要なツールを入手できました。誰かが将来同じ問題に遭遇し、stackoverflow.com にたどり着いた場合は、ここに投稿します。

于 2008-10-11T12:21:41.917 に答える