SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows で Oracle から PostgreSQL への移行ツール [ora2pg] をインストールしてみる

without comments

Oracle から PostgreSQL へのマイグレーションを実行するためのツールとして ora2pg があります。
PostgreSQL の Software Catalogue にも記載されている Oracle から PostgreSQL へのマイグレーションに使用することができるツールです。
image
Perl でコーディングされており、Windows / Linux の両環境で動作することができるツールなのですが、Windows 版でインストールして最初の実行を行った際のメモをまとめておこうかと。

インストール方法については INSTALLATION に記載されており、Windows については次の記載となっています。

Under Windows you should install Strawberry Perl (http://strawberryperl.com/) and the OSes corresponding Oracle clients. It seems that compiling DBD::Oracle from CPAN on Windows can be a struggle and there be little documentation on that (mostly outdated and not working). Installing the free version of ActiveState Perl (http://www.activestate.com/activeperl) could help as they seems to have an already packaged DBD::Oracle easy to install.

Windows で動作させる場合は、ora2pg 以外に、次のソフトをインストールしておく必要があります。

今回、Oracle は 12c の環境を使用しているので、Oracle Database Client (12.1.0.2.0) for Microsoft Windows (x64) をインストールしています。
必要な Oracle Instant Client のモジュールだけ展開しても良さそうなのですが、どれが必要かいまいちわからなかったので、Oracle Client から InstantClient をインストールすることで、導入しています。
image
ora2pg は Github で公開されていますので、リポジトリをクローンかダウンロードして、実行環境に配置します。
今回は「C:\ora2pg」として展開しています。
image
ここまでが終われば、セットアップを実行できます。
コマンドプロンプトで次のコマンドを順に実行していきます。

cd c:\ora2pg
perl Makefile.PL
gmake
gmake install

 
正常にインストールが完了していれば、次のように ora2pg が実行できるようになっているはずです。
image
ora2pg ですが、実行時にはコンフィグの設定内容に従ってマイグレーション用のデータが生成されます。
ora2pg の「ora2pg_dist.conf」がコンフィグのテンプレートとなります。
ora2pg_dist.conf を「ora2pg.conf」にリネームして、次の設定を変更すれば実行の準備は整います。

  • ORACLE_DSN
  • ORACLE_USER
  • ORACLE_PWD

コンフィグが準備できたら「ora2pg」を実行することで、マイグレーション用のスクリプトが作成されます。
(デフォルトでは「output.sql」としてマイグレーション用スクリプトが作成されます)
image
 
Oracle から PostgreSQL への移行ですが、Azure の DMS (Data Migration Service) のパブリックプレビューの機能として提供されている移行パターンとなります。
このパターンの情報は Microsoft からいくつか提供されており、今回検証しようと思ったのも、これらのドキュメントを確認していたからです。

ora2pg.conf の設定例 についても公開されていますので、マイグレーションスクリプトを作成する際の参考にできるかと思います。

Written by Masayuki.Ozawa

3月 3rd, 2020 at 11:47 pm

Posted in Oracle,PostgreSQL

Tagged with ,

Leave a Reply