2011年6月15日水曜日

EC2(Linux)から"Oracle RDS"にデータをインポート

スズキです。

"Instant Client"には"exp/imp"コマンドが無いようなので、ちょっと面倒です。

一番手っ取り早いのは、東京リージョンなら下記のようなOracleデータベースが
既にインストールされているAMIからインスタンスを起動し、そのインスタンスに、
エクスポートしたダンプファイルを転送し、そこからインポートする形だと思います。

AMI ID: ami-d8dd77d9
AMI Name: Oracle Database 11gR1 x86_64 - OVM

具体的には上記のインスタンスにログインしたら、
下記のように"oracle"ユーザーになり、環境変数を設定します。

# su - oracle
$ export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
$ export PATH=$PATH:$ORACLE_HOME/bin
$ export NLS_LANG=Japanese_Japan.AL32UTF8

そして、以下のように接続確認です。
当然、このインスタンスが所属するセキュリティグループから"Oracle RDS"の
セキュリティグループにアクセスできるようにしておく必要があります。

$ sqlplus suzlab/suzlab123@suzlab.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:1521/suzlab
SQL*Plus: Release 11.1.0.6.0 - Production on 火 6月 14 21:33:40 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。

接続確認ができたら、とりあえずエクスポートしてみます。

$ exp suzlab/suzlab123@suzlab.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:1521/suzlab file=/tmp/suzlab.dump 
Export: Release 11.1.0.6.0 - Production on 火 6月 14 21:34:30 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
接続先: Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
AL32UTF8キャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでエクスポートを実行します
指定されたユーザーをエクスポートします...
. プリスキーマ・プロシージャ型オブジェクトとアクションをエクスポート中
. ユーザーSUZLABの外部関数ライブラリ名をエクスポート中 
. PUBLICタイプのシノニムをエクスポート中
. プライベート・タイプのシノニムをエクスポート中
. ユーザーSUZLABのオブジェクト型定義をエクスポート中 
SUZLABのオブジェクトをエクスポートします...
. データベース・リンクをエクスポート中
. 順序番号をエクスポート中
. クラスタ定義をエクスポート中
. SUZLABの表をエクスポートします... 従来型パス経由...
. シノニムをエクスポート中
. ビューをエクスポート中
. ストアド・プロシージャをエクスポート中
. 演算子をエクスポート中
. 参照整合性制約をエクスポート中
. トリガーをエクスポート中
. 索引タイプをエクスポート中
. ビットマップ、ファンクションおよび拡張可能索引をエクスポート中
. ポスト可能なアクションをエクスポート中
. マテリアライズド・ビューをエクスポート中
. スナップショット・ログをエクスポート中
. ジョブ・キューをエクスポート中
. リフレッシュ・グループと子をエクスポート中
. ディメンションをエクスポート中
. ポストスキーマ・プロシージャ型オブジェクトとアクションをエクスポート中
. 統計をエクスポート中
エクスポートは警告なしで正常終了しました。

そして、エクスポートしたダンプファイルをインポートしてみます。

$ imp suzlab/suzlab123@suzlab.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:1521/suzlab file=/tmp/suzlab.dump full=y
Import: Release 11.1.0.6.0 - Production on 火 6月 14 21:35:10 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
接続先: Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
エクスポート・ファイルはEXPORT:V11.01.00によって従来型パス経由で作成されました
AL32UTF8キャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでインポートを実行します   
. SUZLABのオブジェクトをSUZLABにインポートしています
インポートは警告なしで正常終了しました。

これで、"Oracle RDS"にデータをインポートする準備ができました。

まだまだ、越えなければならないハードルはあるんだけど...
--------
http://www.suz-lab.com

0 コメント: