Help us understand the problem. What is going on with this article?

【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/Passw0rd@oracle-instant1.XXXX.rds.amazonaws.com: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の記述
 - 環境変数
 - セキュリティグループ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした