cvendian を使用したバイト・オーダー変換
ここでは、ビッグ・エンディアン・プラットフォームとリトル・エンディアン・プラットフォームの間で移行するために、インターシステムズ・データベースのバイト・オーダーを変換するユーティリティについて説明します。また、指定されたデータベースのバイト・オーダーに関して報告するためのオプションも提供しています。
cvendian の概要
インターシステムズは、インターシステムズ・データベースのバイト・オーダーをビッグ・エンディアン (最上位のバイトが先頭) からリトル・エンディアン (最下位のバイトが先頭)、またはその逆に変換するユーティリティを提供しています。これは、convert endian を略して cvendian と呼ばれています。2 つのタイプのプラットフォーム間でデータベースを移動する際に役立ちます。また、指定されたデータベースのバイト・オーダーに関して報告するためのオプションも提供しています。
サポート対象プラットフォームのエンディアンの詳細は、"プラットフォームのエンディアン" を参照してください。
このユーティリティは、マウント済みデータベースには使用できません。
ユーティリティの場所
cvendian ユーティリティは、ファイル install-dir\Bin\cvendian.exe です。
変換プロセス
cvendian は、変換するファイルを持つシステム上、または変換するファイルを使用する予定であるシステムのいずれかで実行可能です。
例えば、データベースをリトル・エンディアン・システムからビッグ・エンディアン・システムに変換するには、リトル・エンディアン・システムで変換を実行した後データベースをビッグ・エンディアン・システムに転送するか、ファイルを最初に転送した後変換できます。
-
cvendian ユーティリティでは、簡潔なバッファ型 I/O を使用して、ターゲット・ファイルを読み取り、また書き込みます。最適なパフォーマンスを得るには、オペレーティング・システム (OS) のファイル・システム・キャッシュが無効でないことを確認します。
-
バックアップ・ファイルやジャーナル・ファイルに対して、cvendian ユーティリティは使用できません。同じエンディアンのプラットフォームでデータベースをリストアし、リストアしたデータベースを別のエンディアン・プラットフォームに移動してから、cvendian ユーティリティを使用してデータベースを変換する必要があります。
データベースを変換するプロセスは、以下のとおりです。
-
ユーティリティはソース・ファイルを変換済みのファイルと置換するため、使用中のデータベース・ファイルのコピーを作成します。
-
"ユーティリティの構文" のセクションで説明する構文を使用して cvendian を実行します。
ユーティリティの構文
cvendian エンディアン・ユーティリティを使用すると、希望するバイト・オーダーを指定するか、変換せずに現在のバイト・オーダーを報告できます。以下の構文を使用します。
cvendian [-option] file
option 引数は以下のいずれかになります。
-
-big — データベースをビッグ・エンディアンに変換
-
-little — データベースをリトル・エンディアンに変換
-
-report — データベースのバイト・オーダーを報告
オプションを短縮して頭文字で表すこともできます。これが変換要求 (-big または -little) であり、データベースのバイトオーダーが既に指定したものになっている場合、警告メッセージが表示され、処理は停止します。
option 引数を指定しない場合、ユーティリティによって既存のバイト・オーダーから他のバイト・オーダーにデータベースが変換されます。ただし、option 引数を使用することをお勧めします。
file 引数は変換するファイルで、完全なパス名を含むことができます。
ユーティリティは、以下のアクションを実行します。
-
データベースのバイト・オーダーを自動的に検出します。
-
エンディアン情報と他の情報を表示します。
-
変換を実行します。
-
成功、または失敗を示すメッセージを表示します。
ここでは、Windows Server 2016 から IBM AIX® for Power System-64 で使用するためにデータベースを変換すると想定します。つまり、リトル・エンディアン (Intel) からビッグ・エンディアン (POWER) に変換する必要があります。AIX システムへファイルを移動する前に Windows システムで cvendian を実行した場合の出力は以下のようになります。
C:\IrisSys\Bin>cvendian -big c:\temp\powerdb\iris.dat
This database is little-endian.
This database has a block size of 8192 bytes.
This database has 1 volume and 1 map.
The last block in the primary volume is 18176.
Original manager directory is c:\temp\powerdb\
No extension volumes.
Done converting c:\temp\powerdb\iris.dat to big-endian
C:\IrisSys\Bin>
次に、変換済みのデータベース・ファイルを AIX システムに移動できます。