Windows XP 、、 XP $ ===、でバックアップが作成されたdb2データベースをLinuxマシンに復元する方法はありますか?両方のOSで同じバージョンのdb2を使用しています-> DB2 Express-C9.7ソースOS:Windows XP SP2ターゲットOS:Ubuntu 9.04
IBMには、このシナリオの資料があります。 DeveloperWorksのこのページを参照してください:DB2ユーティリティーを使用して異なるプラットフォーム間でデータベースのクローンを作成する
要約:クロスプラットフォームのバックアップおよび復元操作がサポートされていない場合、2つのDB2ユーティリティdb2moveおよびdb2lookを使用してデータベースのクローンを作成できます。この記事では、これらのユーティリティーの概要を示し、このアプローチを使用してDB2データベースのクローンを作成する方法のステップバイステップの例を示します。
私はすでに同様の手順(db2moveを含む)を使用して、DB2データベースをWindowsからAIXに、またはその逆に転送しました。
はじめに
DB2のネイティブバックアップユーティリティは、W2KからAIXへ、またはその逆に移植できないバックアップイメージを作成します。このドキュメントでは、DB2データベースをあるプラットフォームから別のプラットフォームに移動するために必要な手順を示します。
仮定
例として、このドキュメントでは、W2K(ソースプラットフォーム)からAIX(ターゲットプラットフォーム)に移植されるデータベースがMYDBであると想定しています。
手順の詳細
MYDBデータベースに対してdb2lookコマンドを実行して、MYDBデータベースのDDLを生成します。
db2look -d mydb -e –l –x -o mydb_create.sql
ソースデータベースMYDBの論理バックアップを保存するディレクトリを作成します。
mkdir backup
新しいディレクトリに移動し、db2moveユーティリティを使用して論理バックアップを作成します
cd backup
db2move mydb export
データベースとDDLスクリプトのバックアップをソースから宛先に転送します。 mydb_create.sqlをASCIIモードで転送し、すべてのbackup * .ixfファイルをバイナリモードで転送します。
次の手順は、ターゲットプラットフォームで実行されます。
Mydb_create.sqlスクリプトを2つのスクリプトに分割します。 1つ目はmydb_tables.sqlという名前で、すべてのエイリアス、テーブル、およびビュー作成コマンドが含まれている必要があります。 2番目のスクリプトはmydb_ri.sqlという名前で、チェックと外部キーの制約と付与を含め、最初に停止した場所を取得します。両方のスクリプトの上部にCONNECTコマンドがあり、最後にCOMMIT、CONNECT RESET、およびTERMINATEコマンドがあることを確認してください。
Mydb_tables.sqlを編集し、すべてのユーザーテーブルスペースが相対パス名のみを使用するようにします。絶対パス名が使用されている場合、REDIRECTED RESTOREがないと、同じシステム上でデータベースを複数回復元することはできません。
空のMYDBデータベースを作成します。
create db mydb
Mydb_tables.sqlスクリプトを実行して、エイリアス、テーブル、およびビューを作成します。
db2 –tvf mydb_tables.sql > mydb_tables.out
Mydb_tables.outでエラーを確認してください。これを行う簡単な方法は、次のコマンドを実行することです。
grep SQL0 mydb_tables.out|grep –v SQL0403W|grep –v SQL0598W|more
データをテーブルにインポートします(REPLACEの代わりにINSERTオプションを使用できますが、REPLACEは再実行可能です)。
db2move mydb load -lo replace
Mydb_ri.sqlスクリプトを実行して、参照整合性制約などを作成します。
db2 –tvf mydb_ri.sql > mydb_ri.out
Mydb_ri.outでエラーを確認してください。これを行う簡単な方法は、次のコマンドを実行することです。
grep SQL0 mydb_ri.out|grep –v SQL0403W|grep –v SQL0598W|more
ソースデータベースとターゲットデータベースが同一であることを確認します。