【RDS for Oracle】 接続方法


事前準備(Oracle Instant Clientのダウンロード)

まずはこちらのOTNからOracle Instant Clientをダウンロードします。

※Oracle Instant Clientとは、10g以降に提供されているOracleに接続するためのライブラリ(OCIライブラリ)の最小構成です。無償で利用できます。
OTNからモジュールをダウンロードする際はOracleのアカウントが必要です(無料で作成可)。

今回は、RDSへの踏み台としてEC2(Amazon Linux)経由で接続するので、以下をダウンロードしました。
 - instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
   →Oracle Instant Clientを使用する際は必須。
 - instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip
  →SQL*PLUSを使う場合は必要。
 - instantclient-tools-linux.x64-19.3.0.0.0dbru.zip
   →Data PumpやSQL*Loaderなどを使う場合は必要。

ダウンロードしたInstant ClientをEC2に配置し解凍します。

$ unzip -q instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
$ unzip -q instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip
$ unzip -q instantclient-tools-linux.x64-19.3.0.0.0dbru.zip

instantclient_19_3ディレクトリが作成されます。

次に環境変数を設定します。

$ cd ~/
$ vi .bash_profile

記述内容

export ORACLE_HOME=/Users/hogehoge/instantclient_18_1
export PATH=${ORACLE_HOME}:${PATH}
export LD_LIBRARY_PATH=${ORACLE_HOME}

  ※Linuxの場合は、LD_LIBRARY_PATHが必要なようです。

環境変数を反映

$ source .bash_profile
$ env | sort

SQL*PLUSの起動確認

$ sqlplus

SQL*PLUSでの接続方法

$ sqlplus <マスターユーザ名>/<マスターユーザのパスワード>@<エンドポイント>:1521/<DB名>

マスターユーザ名はRDS作成時に指定したユーザ名です。
RDSではSYS、SYSTEMユーザでのログインができなくなりました。
このマスターユーザがRDSにおける管理用のユーザになります。

エンドポイントはRDS作成後にマネージメントコンソールから確認できます。
ちなみに、ポートはデフォルトで1521です。

$ sqlplus test/[email protected]:1521/orcl
(略)
SQL>

上記でも接続できますが、毎回エンドポイントを打つのが面倒くさいのでオンプレのOracle同様、tnsnames.oraに接続識別子を記述したら楽です。

$ cd $ORACLE_HOME/network/admin
$ touch tnsnames.ora
$ vi tnsnames.ora

記述例

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-instant1.XXXX.rds.amazonaws.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

ネットサービス名を指定し接続

$ sqlplus test/Passw0rd@ORCL
(略)
SQL>

「SQL>」と表示されたら接続完了です。

もし接続できない場合は以下を確認してみましょう。
 - tnsname.oraの記述
 - 環境変数
 - セキュリティグループ