web-dev-qa-db-ja.com

DB2データベースを復元する

Windows XP 、、 XP $ ===、でバックアップが作成されたdb2データベースをLinuxマシンに復元する方法はありますか?両方のOSで同じバージョンのdb2を使用しています-> DB2 Express-C9.7ソースOS:Windows XP SP2ターゲットOS:Ubuntu 9.04

4
Manish Mathai

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

ソースデータベースとターゲットデータベースが同一であることを確認します。

8
Snark