このページに記載の情報は、2005 年にリリースした PowerGres Plus V2 を対象としています。PowerGres Plus V2 の販売はすでに終了しています。
PowerGres Plus の最新バージョンに関する情報は、製品紹介ページまたは PowerGres 体験記ページを参照してください。
SRA OSS では、Oracle データベースなど他のデータベースから、PostgreSQL や PowerGres へのマイグレーションサービスを提供しています。
詳細は「データベースマイグレーションサービス」のページをご覧ください。
データベース定義を移行しただけでは、データベースの移行とはいえません。その中に格納されているデータがなければ意味がありません。 第 2 回から引き続き、データ移行の方法を紹介します。「第 2 回 データベース定義の移行」と合わせてご覧ください。
PowerGres Plus はツールを使用することで、データベース定義だけでなく、データの移行も簡単に行えます。
第 3 回では、第 2 回のデータベース定義の移行に引き続き、データを移行するポイントについて説明します。
このシリーズでは、データベースの移行を以下の順番で説明します。 図 1 はその概要です。
図 1: データ移行
今回は、データ移行について説明します。
データはデータベース定義と同じ、ora2pg というツールを使用して簡単に移行することができます。 ora2pg は、Oracle からデータを移出 (export) し、テキストファイルに出力します。 必要であれば、修正をして PowerGres Plus に移入 (import) します。
図 2: ora2pg によるデータ移行
ora2pg は以下から入手できます。
ora2pg を使うためには、Perl 5 の実行環境が必要です。 また、以下のモジュールがインストールされているか確認し、インストールされていない場合は、ダウンロードしてインストールしてください。 関連モジュールのダウンロード先の情報は、「第 2 回 データベース定義の移行」で説明していますので、詳細はそちらを参照してください。
ダウンロードしたファイル「ora2pg-3.3.tar.gz」を任意のディレクトリに解凍します。 今回は、/usr/local に解凍しました。 解凍すると「ora2pg」というディレクトリが作成され、その下にすべてのファイルが格納されています。
データを移出するための簡単な Perl スクリプト「export_data.pl」を作成します。
#!/usr/bin/perl BEGIN {ldelim} $ENV{ldelim}ORACLE_HOME{rdelim}='/home/oracle/app/oracle/product/10.1.0/db_1'; $ENV{ldelim}NLS_LANG{rdelim} = 'JAPANESE_JAPAN.JA16EUC'; } use strict; use Ora2Pg; my $schema=new Ora2Pg ( datasource=>'dbi:Oracle:host=101.34.244.255;sid=demo1;port=1521', user=>'postgres', password=>'postgresplus', schema=>'POSTGRES', type=>'DATA', debug=>1 ); $data->export_data('/home/oracle/data_for_migrate/data.sql'); exit(0);
ORACLE_HOME | Oracle インストールディレクトリ |
---|---|
NLS_LANG | Oracle データベースのコード系を指定してます。 |
datasource | Oracle にアクセスするための接続方法を指定します。 |
user | Oracle にアクセスするユーザ名 |
password | ユーザ名のパスワード |
schema | 移出する定義が行われているスキーマを指定します。 必ず大文字で記述してください。 |
TYPE | 出力する情報に「DATA」と指定します。 表定義と、インデックス定義の情報が出力されます。 |
schema->export_data | PostgreSQL 用データファイルの出力ファイル名 |
ora2pg を解凍したディレクトリに移動して以下のコマンドを入力します。
perl export_data.pl ora2pg.conf
PowerGres Plus データ移入用の data.sql が作成されます。 data.sql は、PowerGres Plus 用に変換されて出力されます。
ora2pg の詳細な使用方法については、以下の URL を参照してください。
psql コマンドを以下のように入力し、データを移入します。
$ psql -d house < /home/oracle/data_for_migrate/data.sql
今回は、ツールを利用して Oracle のデータを PowerGres Plus に移行しました。 ツールを利用することで、簡単にデータベース定義を PowerGres Plus に構築できます。 今回、データベース移行を行うツールを探しているとき、ora2pg 以外にも、「オクトパス」と呼ばれるデータ移行ツールがありました。 機会があれば、体験記の中でご紹介していきたいと思います。