EC2にOracle XEをインストールしデータインポート
15 January 2014
オンプレミスでダンプしたOracle DatabaseのデータをAmazon Relational Database Service (Amazon RDS) for Oracleにインポートする方法をまとめてみます。無償で利用可能のOracle XEをEC2にインストールし、付属のimpコマンドでデータインポートします。
Oracle XE用のEC2を起動する
以下の条件でOracle XEインストール用のEC2をManagement Consoleから起動する。
- AMI: Amazon Linux AMI 2013.09.2
- 64bit
- Size: m1.small 以上(Swap領域が2GB以上必要のためt1.microは不可)
- Swap領域を増やすため、エフェメラルストレージもつけて起動して頂く必要あります
- 方法:EC2のラウンチ画面の「Step 4: Add Storage」にて、「Add New Volume」をクリック、「Type」欄のドロップボックスより「Instance Store 0」を選んで次へ進みます
EC2起動が完了したら以下のようにログインしディスクを確認
$ ssh ec2-user@c2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 3.3G 4.6G 42% /
tmpfs 829M 395M 435M 48% /dev/shm
/dev/xvdb 147G 4.2G 136G 4% /media/ephemeral0
Oracle XEをダウンロード
Oracle XE 11g release 2 for Linux x64 をダウンロード。
ダウンロードしたzipファイルをEC2にアップ
$ scp oracle-xe-11.2.0-1.0.x86_64.rpm.zip ec2-user@ec2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
OSセットアップ
EC2のSwap領域を増やす。一時的作業なので、ファイルベースのswap領域を作成します。
$ ssh ec2-user@c2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
$ sudo su
$ dd if=/dev/zero of=/media/ephemeral0/swapfile bs=1M count=4096
$ chmod 600 /media/ephemeral0/swapfile
$ mkswap /media/ephemeral0/swapfile
$ echo /media/ephemeral0/swapfile none swap defaults 0 0 | tee -a /etc/fstab
$ swapon -a
必要なパッケージをインストール
$ yum install -y binutils
Oracle XEインストール
以下のインストールコマンドを実行する。
$ cd /usr/local/src
$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
$ cd Disk1/
$ rpm -hiv oracle-xe-11.2.0-1.0.x86_64.rpm
$ /etc/init.d/oracle-xe configure
Oracle user設定
$ su - oracle
$ cd /u01/app/oracle
$ cp /etc/skel/.bash_profile ./
以下の内容を /u01/app/oracle/.bashrc に追加
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export ORACLE_ROOT='/u01/app/oracle/product/11.2.0/xe'
. $ORACLE_ROOT/bin/oracle_env.sh
export LD_LIBRARY_PATH="$ORACLE_HOME/lib/:/lib:/usr/lib"
Oracle clientの設定(tns nameやSID)をRDS Oracle用に下記ファイルを編集(オンプレミスと同じ、詳細は割愛します)。
- $ORACLE_ROOT/network/admin/tnsnames.ora
- $ORACLE_ROOT/bin/oracle_env.sh
設定を反映する。
$ source /u01/app/oracle/.bashrc
データインポート
Impコマンドが実行可能になりますので、EC2からRDS Oracleに接続可能か確認したうえ、ダンプしたファイルをEC2にアップして、以下のようにインポートを実行して頂く。
$ scp ora.dmp ec2-user@c2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:~/
$ ssh ec2-user@c2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
$ sudo su - oracle
$ imp myuser/mypassword file=/home/ec2-user/ora.dmp fromuser=user01 touser=user02
コピーを飲みながらインポート完了を待ちます…
blog comments powered by Disqus