Windows (2K) から Linux (Redhat または Ubuntu) に移行することを考えている大規模な (数 Gb) berkeley db があります。これについてどうすればよいかわかりません。db ファイルを移動するだけでよいですか、それとも特別な変換ユーティリティが必要ですか?
2 に答える
データベースとログ ファイルは、異なるエンディアン システム間で移植可能です。Berkeley DB は、それが使用されているシステムの種類を認識し、データベース自体を構成するデータ構造を管理するために、それに応じてバイトをスワップします。メモリ マップされた Berkeley DB の領域ファイルは移植できません。移行中はアプリケーションが実行されないため、リージョン ファイルがキャッシュとロックを保持するため、これはそれほど大きな問題ではありません。新しいシステムで再作成されます。
ただし、注意してください。Berkeley DB は、データ (「DBT」に格納されたキーと値) のバイト順や型について何も知りません。アプリケーション コードは、それが実行されているシステムの種類、データの格納方法 (ビッグ エンディアンまたはリトル エンディアン)、およびデータの移行方法 (またはアクセス時の単純な並べ替え) を認識する必要があります。また、btree 比較関数にも細心の注意を払ってください。これも、システムのアーキテクチャによって異なる場合があります。
データベースとログ ファイルもオペレーティング システム間で移植可能ですが、バイト オーダーと同じ注意事項があります。アプリケーションのデータはアプリケーションの責任です。
次のことを確認することを検討してください。
- バイトオーダーの選択
- DB->set_lorder()
- Berkeley DB のトランザクション アプリケーションの入門ガイド
- Berkeley DB のリファレンス ガイド
- Berkeley DB/DS (Data Store) に関するナレーションのプレゼンテーション
- Berkeley DB/CDS (Concurrent Data Store) に関するボイスオーバー プレゼンテーション
- Berkeley DB のドキュメント
開示: 私は Oracle で Berkeley DB 製品の製品マネージャーとして働いています。:)