福岡オフィスの渡辺です。
データベースソフトは数多くありますが、私は今までOracle Databaseを使う経験はありませんでした。
そんな新米Oraclerの私がAmazon RDS for Oracle Database にEC2から接続してみます。
各データベースソフトは、データベースに接続するためのクライアントソフトを用意しています。
MySQLにおけるmysqlコマンド、PostgreSQLにおけるpsqlコマンドといった具合です。
Oracle Databaseにおいては、Oracle Instant Clientをインストールすればsqlplusコマンドというものを利用できます。
準備
テスト用のRDSは、下記のようなパラメータで作成しました。
設定項目 | 値 |
DB engine | Oracle Standard Edtition Two |
License model | license-included |
DB engine version | Oracle 12.1.0.2.v12 |
DB instance class | db.t2.micro |
Multi-AZ deployment | No |
DB instance identifier | oracledbinstance1 |
Master username | watanabe |
Master password | ************* |
- 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 インスタンスへの接続 - Amazon Relational Database Service
[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>
正しく接続できてますね!
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい