Ora2Pgを使ってOracleからPostgresqlへ定義、データを丸ごと移動する
2016/01/05
Oracle上にあるデータベースをPostgresqlに復元して、pgAdminとかでもっと気軽にダンプしたりリストアしたかったのでOra2Pgを使ってみた。
Ora2Pgのインストール手順
perlのインストール
http://www.activestate.com/activeperl
必要なモジュールインストール
Perl Package Managerで下記を検索しインストール
- DBI
- DBD-Pg
- DBD-Oracle
- String-Random
- Compress-Zlib
- Ora2Pgのダウンロード
http://ora2pg.darold.net/install.html
フォルダを展開して任意の場所に配置し、コマンドプロンプトで下記実行
perl Makefile.PL dmake && dmake install
※MinGW64を入れろと途中で起こられたので、Perl Package Managerで同じくインストール
実行
下記のようなperlスクリプトを作成し実行
perl パールスクリプトファイル名 ora2pg_dist.conf
BEGIN { # Oracleデータベースのインストール先 $ENV{ORACLE_HOME}='O:\product\10.2.0\db_1'; } use strict; use Ora2Pg; my $schema=new Ora2Pg ( debug=>1, export_schema=>1, # host=OracleのIPアドレス datasource=>'dbi:Oracle:host=IPアドレス;sid=SID;port=1521', # ユーザ名 user=>'', # パスワード password=>'', # エクスポートする内容を記述 # TABLE:テーブル定義、VIEW:VIEW定義、COPY:COPYコマンドでインポートできる形式でデータ出力、DATA:INSERT文でデータエクスポート type=>'', # oracleのencode nls_lang=>'JAPANESE_JAPAN.JA16EUC', # Postgresqlのencode client_encoding=>'EUC_JP', # Oracleのどのスキーマを出力するか schema=>'', # 出力したスキーマを強制的に変更 # Oracleでaaaというスキーマを出力し、Postgresqlのpublicスキーマに入れたい場合 # schema=>'aaa'、pg_schema=>'public' pg_schema=>'' ); $schema->export_schema('C:\hoge.sql'); exit(0);