0

Windows (2K) から Linux (Redhat または Ubuntu) に移行することを考えている大規模な (数 Gb) berkeley db があります。これについてどうすればよいかわかりません。db ファイルを移動するだけでよいですか、それとも特別な変換ユーティリティが必要ですか?

4

2 に答える 2

3

データベースとログ ファイルは、異なるエンディアン システム間で移植可能です。Berkeley DB は、それが使用されているシステムの種類を認識し、データベース自体を構成するデータ構造を管理するために、それに応じてバイトをスワップします。メモリ マップされた Berkeley DB の領域ファイルは移植できません。移行中はアプリケーションが実行されないため、リージョン ファイルがキャッシュとロックを保持するため、これはそれほど大きな問題ではありません。新しいシステムで再作成されます。

ただし、注意してください。Berkeley DB は、データ (「DBT」に格納されたキーと値) のバイト順や型について何も知りません。アプリケーション コードは、それが実行されているシステムの種類、データの格納方法 (ビッグ エンディアンまたはリトル エンディアン)、およびデータの移行方法 (またはアクセス時の単純な並べ替え) を認識する必要があります。また、btree 比較関数にも細心の注意を払ってください。これも、システムのアーキテクチャによって異なる場合があります。

データベースとログ ファイルもオペレーティング システム間で移植可能ですが、バイト オーダーと同じ注意事項があります。アプリケーションのデータはアプリケーションの責任です。

次のことを確認することを検討してください。

開示: 私は Oracle で Berkeley DB 製品の製品マネージャーとして働いています。:)

于 2010-11-30T14:58:11.527 に答える
1

ここで説明するクロスプラットフォームのファイル転送ユーティリティがあります。

マシンのバイト順序についても考慮する必要があるかもしれませんが、それについてはここで少し説明します。

Java Berkeleyを使用している場合、それは問題ではありませんが?

于 2009-09-22T23:15:06.517 に答える