トップ 一覧 置換 検索 ヘルプ RSS ログイン

Linux で DBD Oracleをインストールするの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
http://powergres.sra.co.jp/s/ja/tech/plus/experience/vol4/oracle_migration2.php

!!!準備
!!Perl
perlを使える状態にしておく
!!Oracle Instant
 oracle-instantclient-basic
 oracle-instantclient-devel
 oracle-instantclient-sqlplus
をOracleからダウンロードしてインストール

!!Ora2pg
!ダウンロード
http://pgfoundry.org/projects/ora2pg
から Ora2pg をダウンロードするして解凍する
{{ref ora2pg-6.3.tar.bz2}}
!!環境変数
 export ORACLE_HOME=/usr/lib/oracle/11.2/client/lib
 export LD_LIBRARY_PATH=$ORACLE_HOME
 export ORACLE_USERID='ユーザー名/パスワード@接続文字列'

 簡易接続文字列も使用可能
 export ORACLE_USERID='user/pass@192.168.10.137/xe'

!コンパイル?(必要ないかも)
解凍したディレクトリで
 perl Makefile.PL
を実行する。
 Ora2Pg.pm
が出来上がればOK.

!!移行用のスクリプトを作成
  #!/usr/bin/perl
  
  BEGIN {
    $ENV{ORACLE_HOME}='C:\oraclexe\app\oracle\product\10.2.0\server';
  $ENV{NLS_LANG} = 'JAPANESE_JAPAN.JA16SJISTILDE';
  }
  
  use strict;
  use Ora2Pg;
  
  my $schema=new Ora2Pg (
      datasource=>'dbi:Oracle:host=localhost;sid=xe;port=1521',
      user=>'system',
      password=>'manager',
      schema=>'orauser',
      type=>'TABLE',
      debug=>1
  );
  
  $schema->export_schema('C:\temp\schema.sql');
  exit(0);
見たいな感じのを作る。
!!!インストール
 cpan install DBD:::Oracle

:$ENV{ORACLE_HOME}:Oracleをインストールしたディレクトリ。Linuxだと{{br}}$ENV{ORACLE_HOME}='/home/oracle/app/oracle/product/10.1.0/db_1';{{br}}とか。

: $ENV{NLS_LANG} :Oracleの文字コード
:datasource:Oracleに接続するための情報
:user:Oracleへ接続するためのユーザー。 dba_usersなどにアクセス出来るユーザ。
:password:上記ユーザのパスワード
:schema:移行対象のスキーマ
:type:
,TABLE, "Extract all tables with indexes, primary keys, unique keys,foreign keys and check constraints."
,VIEW, "Extract only views."
,GRANT, "Extract roles converted to Pg groups, users and grants on all objects."
,SEQUENCE, "Extract all sequence and their last position."
,TABLESPACE, "Extract storage space, need PostgreSQL >= v8."
,TRIGGER," Extract triggers defined following actions."
,FUNCTION," Extract functions."
,PROCEDURES," Extract procedures."
,PACKAGE," Extract packages and package bodies."
,DATA," Extract datas as INSERT statement."
,COPY," Extract datas as COPY statement."
,PARTITION," Extract range and list Oracle partitioning."
,TYPE, "Extract user defined Oracle type."

:export_schema('パス');:スキーマの出力先。{{br}}/home/oracle/data_for_migrate/schema.sql{{br}}とか。
{{category2 データベース,Postgresql}}
{{category2 データベース,Oracle}}