株式会社サーバーワークスでは一緒に働く仲間を募集しています
福岡オフィスの渡辺です。
私は今まで幸か不幸かOracle Databaseを使う案件には遭遇しませんでした。
しかし、ついにやって来てしまいました。
そんな新米Oraclerの私がAmazon RDS for Oracle Database にEC2から接続してみます。
準備
- テスト用のRDSは、下記のようなパラメータで作成しました。
- RDSへの接続元として、EC2インスタンス(Amazon Linux 2) を同じVPC内に作成します。
- RDSのセキュリティグループでEC2インスタンスからTCP/1521の接続を許可します。
Oracle Instant Clientのインストール
EC2インスタンスにOracle Instant Clientというクライアントソフトをインストールします。
下記の手順でまず、インストーラを手に入れましょう。
なお、oracle-instantclientが何種類かあって間違えやすいですが、basic と sqlplus の2つが必要でした。
- Oracleのダウンロードサイトにいく。
- 「Accept License Agreement」にチェックを入れる。
- oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm をダウンロードする。
- oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm をダウンロードする。
- 上記ファイルをEC2インスタンスへ転送する。
では、ダウンロードしたrpmファイルをインストールします。
[ec2-user@ip-10-200-0-40 ~]$ sudo rpm -Uvh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:oracle-instantclient12.2-basic-12################################# [100%]
[ec2-user@ip-10-200-0-40 ~]$ sudo rpm -Uvh oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:oracle-instantclient12.2-sqlplus-################################# [100%]
続いて環境変数を設定します。
[ec2-user@ip-10-200-0-40 ~]$ export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
接続テスト
いよいよ、RDS for Oracle Database に接続です。
sqlplus64 ‘user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))’ というコマンドです。
Oracle データベースエンジンを実行している DB インスタンスへの接続
[ec2-user@ip-10-200-0-40 ~]$ sqlplus64 'watanabe@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledbinstance1.clgajojgftpx.ap-northeast-1.rds.amazonaws.com
> )(PORT=1521))(CONNECT_DATA=(SID=ORCL)))'
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jul 22 06:07:47 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>
接続できたようなので、試しに何かコマンドを打ってみます。
SQL> select * From v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
1 ORCL
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
ip-172-23-1-15
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
12.1.0.2.0 22-JUL-18 OPEN NO 1 STARTED
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO 0
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
REGULAR SE
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO CON_ID
---------- --- ----------------- ------------------ --------- --- ----------
INSTANCE_MO EDITION
----------- -------
FAMILY
--------------------------------------------------------------------------------
SQL>
応答があるので、正しく接続できてますね!