share facebook facebook twitter menu hatena pocket slack

2011.06.15 WED

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

鈴木 宏康

WRITTEN BY 鈴木 宏康

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にデータをインポートする準備ができました。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。