RDS for Oracle Databaseをとりあえずさわってみよう

今更ですが、EC2上にOracle Clientを入れてRDSに接続して色々試してみることにします。

とりあえず、今回はRDSに接続できるまでを試したいと思います。<今回やること>
1. VPC作成
2. RDSをセットアップ
3. VPC上のOracle Linux 6にOracle Client (12c)をインストール
4. Oracle Linux 上のOracle ClientからRDSへ接続する


1.と2.、3の一部 (Oracle Linux 6のインスタンス作成)までをCloudFormationで用意しました。
今回はケチって、RDSはLicense included(SE1)のt1.micro,
作業用のOracle Linux(オラクル社提供のAMIOL6.4-x86_64-7-21-2013-ebs (ami-d330a7d2)) をt1.microで作成しています。
RDSのユーザ/パスワードは oracle/oracle123 です


以下手抜き手順です。
(画面はRAC on EC2 CloudFormation版からかなり流用しているので、名前がおかしかったりしますがご容赦ください)


<必要なもの>
・OTNのアカウント
SSHクライアント(Linux/Macは標準のものでOK、WindowsTeraTerm推奨)
・RDPクライアント
Amazon EC2へのサインアップ *1
・EC2 Key Pairの作成


*1 Amazon EC2へのサインアップは以下のURLを参考にしてください。
http://aws.amazon.com/jp/register-flow/


*2 Key Pairの作成は以下のURLを参考にしてください(Key Pair P23〜P29)
http://www.slideshare.net/AmazonWebServicesJapan/aws-basic-20120629


●CloudFormationにてVPC/EC2インスタンス/RDSの作成
1.AWS Management Console(https://console.aws.amazon.com/console/home)からCloudFormationへ移動します。


2.Create New Stackをクリックします。


3.Stack Nameは任意の値
Provide a Template URLに「https://s3.amazonaws.com/s4ragent/rds.json」 を指定します。


4.KeyNameは上記で作成したKey Pairの値を入力し、「I acknowledge that this template may create IAM resources」にチェックを入れ、continueをクリックします。


5.そのままcontinueをクリックします。


6.サマリが表示されますので問題なければ、continueをクリックします。


7.CloudFormationによる、VPC/インスタンス/RDSの作成が開始されます。


8.途中経過はResourcesから確認できます。


9.10分ほどでVPC/EC2インスタンス/RDSの作成が完了します。



インスタンスへの接続方法
1.画面上部のServices⇒EC2をクリックします。


2. Running Instances をクリックします。


3.接続したいインスタンスを右クリックし、connectをクリックします。


4.Connect with a standalone SSH Clientをクリックすると接続情報が表示されます。


5. Teratermを起動し、4で表示されたIPを入力してOKをクリックします。


6.初めて該当のインスタンスに接続する場合は、このような表示がでますが気にせず、続行をクリックします。


6.ユーザ名にrootと入力し、RSA/DSA鍵を使うにチェックを入れ、秘密鍵をクリックします。


7.ファイルの種類は「すべてのファイル」を選択し、*2 Key Pairの作成 で作成した秘密鍵を選択します。


8.OKをクリックします。


9.インスタンスに接続できました。


VPC上のOracle Linux 6にOracle Client (12c)をインストール
1-a. swapの追加

dd if=/dev/zero of=/swapfile bs=1MB count=1K
mkswap /swapfile
echo "/swapfile         swap                    swap defaults 0 0" >> /etc/fstab
swapon /swapfile


1-b. 必要モジュールをインストール

yum -y groupinstall "Desktop" "X Window System" "Japanese Support"
yum -y install oracle-rdbms-server-12cR1-preinstall firefox.x86_64 tigervnc-server unzip
easy_install-2.6 awscli


1-c. iptableの停止
/etc/init.d/iptables stop
chkconfig iptables off


1-d. hostsの修正
このままでは、自ホスト名(ip-xxxx-xxxxx)の名前解決ができずに、インストールに失敗してしまいます。
/etc/hostsに自ホスト名とIPを追加します。

echo `ifconfig eth0 |grep 'inet addr' | awk -F '[: ]' '{print $13}' ` `hostname -s` >>/etc/hosts


1-e oracleユーザのパスワード変更
VNC経由で操作時にスクリーンセーバが起動してしまうと、パスワードの入力が必要になります。ここでパスワードの変更をしておきます。
passwd oracle


1-f. Oracleユーザへsu -
su - oracle


1-g. EC2インスタンス側でvncserverを起動
vncserver
:1だったらポートは5901になります。


1-h. 自分のPCからvncviewerで接続


1-i. FireFoxを起動し、OTNからlinuxamd64_12c_client.zip をダウンロード
画面上部にFireFoxのマークがあるのでクリックします。


1-j. ダウンロードしたlinuxamd64_12c_client.zip を解凍
ターミナルは、画面上部 Applications→SystemTools→terminalで起動できます。

cd Downloads
unzip linuxamd64_12c_client.zip


1-k. Oracle Clientのインストーラーを起動し、インストール

cd client
./runInstaller

ここでは、インストールタイプにAdministratorを選択し、LanguageにJapaneseを追加する以外すべてデフォルトでインストールすることにします。
(ORACLE_HOMEは/home/oracle/app/oracle/product/12.1.0/client_1)


1-l RDSのEnd Pointを確認
managmentConsoleからサービス→RDS→Instances→Endpointを確認する。
「:」より前の部分がホスト名、「:」より後ろの部分(通常は1521)の部分がポート番号です。


1-m. tnsname.oraの編集
netcaを起動し、 tnsname.oraを編集します。

/home/oracle/app/oracle/product/12.1.0/client_1/bin/netca

Local Net Services Name Configuration→Add→TNS名を入力(ここではORCL)→TCP→Host NameにRDSのEnd Pointを入力、あとはそのままNextをクリック


1-n bash_profileの編集
ORACLE_HOMEとLD_LIBRARY_PATHの設定をします。

cat >> /home/oracle/.bash_profile <<'EOF'
export ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/client_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:${PATH}
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
EOF


1-o
sqlplusから接続確認
環境変数が反映されていないので、環境変数を設定後、接続
source /home/oracle/.bash_profile
sqlplus oracle/oracle123@ORCL



接続できたら、今日はこの辺で。