Oracle から PostgreSQL へのマイグレーションを実行するためのツールとして ora2pg があります。
PostgreSQL の Software Catalogue にも記載されている Oracle から PostgreSQL へのマイグレーションに使用することができるツールです。
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 をインストールすることで、導入しています。
ora2pg は Github で公開されていますので、リポジトリをクローンかダウンロードして、実行環境に配置します。
今回は「C:\ora2pg」として展開しています。
ここまでが終われば、セットアップを実行できます。
コマンドプロンプトで次のコマンドを順に実行していきます。
cd c:\ora2pg perl Makefile.PL gmake gmake install
正常にインストールが完了していれば、次のように ora2pg が実行できるようになっているはずです。
ora2pg ですが、実行時にはコンフィグの設定内容に従ってマイグレーション用のデータが生成されます。
ora2pg の「ora2pg_dist.conf」がコンフィグのテンプレートとなります。
ora2pg_dist.conf を「ora2pg.conf」にリネームして、次の設定を変更すれば実行の準備は整います。
- ORACLE_DSN
- ORACLE_USER
- ORACLE_PWD
コンフィグが準備できたら「ora2pg」を実行することで、マイグレーション用のスクリプトが作成されます。
(デフォルトでは「output.sql」としてマイグレーション用スクリプトが作成されます)
Oracle から PostgreSQL への移行ですが、Azure の DMS (Data Migration Service) のパブリックプレビューの機能として提供されている移行パターンとなります。
このパターンの情報は Microsoft からいくつか提供されており、今回検証しようと思ったのも、これらのドキュメントを確認していたからです。
ora2pg.conf の設定例 についても公開されていますので、マイグレーションスクリプトを作成する際の参考にできるかと思います。