Oracle DB インスタンスへの接続
Amazon RDS によって Oracle DB インスタンスがプロビジョニングされると、標準の SQL クライアントアプリケーションを使用して DB インスタンスに接続できます。このトピックでは、Oracle SQL Developer または SQL*Plus を使用して Oracle データベースエンジンを実行している DB インスタンスに接続します。
サンプルの DB インスタンスの作成と接続のプロセスを示す手順の例は、「Oracle DB インスタンスを作成して Oracle DB インスタンスのデータベースに接続する」を参照してください。
DB インスタンスのエンドポイントの検索
各 Amazon RDS DB インスタンスにはエンドポイントがあり、各エンドポイントに DB インスタンスの DNS 名とポート番号があります。SQL クライアントアプリケーションを使用して DB インスタンスに接続するには、DB インスタンスの DNS 名とポート番号が必要です。
Amazon RDS コンソールまたは AWS CLI を使用して DB インスタンスのエンドポイントを見つけることができます。
Kerberos 認証を使用している場合は、「Oracle を Kerberos 認証に接続する」を参照してください。
コンソール
コンソールを使用してエンドポイントを見つけるには
-
AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
コンソールの右上隅にある DB インスタンスの AWS リージョンを選択します。
-
DB インスタンスの DNS 名とポート番号を見つけます。
-
[データベース] を選択して DB インスタンスを一覧表示します。
-
詳細を表示する Oracle DB インスタンスの名前を選択します。
-
[接続とセキュリティ] タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。
-
AWS CLI
AWS CLI を使用して Oracle DB インスタンスのエンドポイントを確認するには、describe-db-instances コマンドを呼び出します。
例 AWS CLI を使用してエンドポイントを見つけるには
aws rds describe-db-instances
出力で Endpoint
を検索して、DB インスタンスの DNS 名とポート番号を検索します。出力の Address
行には DNS 名が含まれています。JSON エンドポイント出力の例を以下に示します。
"Endpoint": {
"HostedZoneId": "Z1PVIF0B656C1W",
"Port": 3306,
"Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com"
},
出力には、複数の DB インスタンスに関する情報が含まれている場合があります。
Oracle SQL Developer を使用した DB インスタンスへの接続
この手順では、Oracle SQL Developer を使用して DB インスタンスに接続します。このユーティリティのスタンドアロンバージョンをダウンロードするには、Oracle SQL Developer ダウンロードページ
DB インスタンスに接続するには、DNS 名とポート番号が必要です。DB インスタンスの DNS 名とポート番号を見つける方法については、DB インスタンスのエンドポイントの検索 を参照してください。
SQL Developer を使用して DB インスタンスに接続するには
-
Oracle SQL Developer を開始します。
-
[Connections] タブで、[add (+)] アイコンを選択します。
-
[New/Select Database Connection] ダイアログボックスで、DB インスタンスの情報を提供します。
-
[Connection Name (接続名)] に、接続の名前 (
Oracle-RDS
など) を入力します。 -
[Username (ユーザー名)] に、DB インスタンスのデータベース管理者の名前を入力します。
-
[Password (パスワード)] に、データベース管理者のパスワードを入力します。
-
[Hostname (ホスト名)] に、DB インスタンスの DNS 名を入力します。
-
[Port (ポート)] に、ポート番号を入力します。
-
[SID] に、Oracle データベース SID を入力します。
完了したダイアログボックスは次のように表示されます。
-
-
[接続] を選択します。
-
独自のデータベースを作成し、通常のデータベースに加え、DB インスタンスに対しクエリを実行できるようになりました。DB インスタンスに対してテストクエリを実行するには、次を実行します。
-
接続の [Worksheet (ワークシート)] タブに、次の SQL クエリを入力します。
SELECT NAME FROM V$DATABASE;
-
実行アイコンを選択して、クエリを実行します。
SQL Developer はデータベース名を返します。
-
SQL *Plus を使用した DB インスタンスへの接続
SQL*Plus などのユーティリティを使用して、Oracle を実行している Amazon RDS DB インスタンスに接続できます。SQL*Plus のスタンドアロンバージョンをダウンロードするには、SQL*Plus ユーザーガイドおよびリファレンス
DB インスタンスに接続するには、DNS 名とポート番号が必要です。DB インスタンスの DNS 名とポート番号を見つける方法については、DB インスタンスのエンドポイントの検索 を参照してください。
例 SQL*Plus を使用して Oracle DB インスタンスに接続するには
次の例では、DB インスタンス管理者のユーザー名を使用します。また、DNS 名を DB インスタンスに置き換えて、ポート番号および Oracle SID を含めます。SID 値は、DB インスタンスを作成したときに指定した DB インスタンスのデータベースの名前であり、DB インスタンスの名前ではありません。
Linux、macOS、Unix の場合:
sqlplus '
user_name
@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name
)(PORT=port
))(CONNECT_DATA=(SID=database_name
)))'
Windows の場合:
sqlplus
user_name
@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name
)(PORT=port
))(CONNECT_DATA=(SID=database_name
)))
次のような出力が表示されます。
SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017
ユーザーのパスワードを入力すると、SQL プロンプトが表示されます。
SQL>
sqlplus USER/PASSWORD@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/DATABASE_IDENTIFIER
のような短い形式の接続文字列 (Easy connect または EZCONNECT) は、最大文字数制限に達する可能性があるため、接続には使用しないでください。
セキュリティグループに関する考慮事項
DB インスタンスに接続するためには、DB インスタンスを、その DB インスタンスにアクセスするために使用する IP アドレスとネットワーク設定を含むセキュリティグループに関連付ける必要があります。DB インスタンスを作成する際、DB インスタンスを適切なセキュリティグループと関連付けている可能性があります。DB インスタンスの作成時に、デフォルトの設定されていないセキュリティグループを割り当てた場合は、DB インスタンスのファイアウォールによって接続が禁止されます。
新しいセキュリティグループを作成してアクセスを有効にする必要がある場合、作成するセキュリティグループのタイプは、DB インスタンスが動作する Amazon EC2 プラットフォームによって決まります。プラットフォームを決定するには、「EC2-VPC または EC2-Classic のどちらのプラットフォームを使用しているかを確認する」を参照してください。一般的に、DB インスタンスが EC2-Classic プラットフォームにある場合は、DB セキュリティグループを作成します。DB インスタンスが VPC プラットフォームにある場合は、VPC セキュリティグループを作成します。新しいセキュリティグループの作成方法については、セキュリティグループによるアクセスコントロール を参照してください。
新しいセキュリティグループを作成したら、そのセキュリティグループと関連付けるように DB インスタンスを変更します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
SSL を使用して DB インスタンスへの接続を暗号化することで、セキュリティを高めることができます。詳細については、「Oracle Secure Sockets Layer」を参照してください。
専用サーバーと共有サーバーのプロセス
サーバープロセスは、ユーザーの Oracle DB インスタンスへの接続を処理します。デフォルトでは、Oracle DB インスタンスは専用サーバープロセスを使用します。専用サーバープロセスでは、各サーバープロセスは 1 人のユーザープロセスにのみ設定できます。任意で共有サーバープロセスを設定できます。共有サーバープロセスでは、各サーバープロセスは複数のユーザープロセスを設定できます。
多数のユーザーセッションがサーバー上でメモリを過度に使用している場合は、共有サーバープロセスの使用を検討することもできます。また、セッションが頻繁に接続されたり切断されてパフォーマンス上の問題を引き起こす場合も、共有サーバープロセスを検討できます。共有サーバープロセスの使用には欠点もあります。たとえば、CPU リソースに負荷をかけることがあり、設定や管理がより複雑になります。
専用インスタンスと共有サーバーのプロセスの詳細については、Oracle ドキュメントの「専用および共有サーバープロセスについて
Oracle DB インスタンスへの接続のトラブルシューティング
以下は、Oracle DB インスタンスの接続時に発生する可能性がある問題です。
問題 | トラブルシューティングの提案 |
---|---|
DB インスタンスに接続できません。 |
新しく作成された DB インスタンスでは、使用できるようになるまで、DB インスタンスのステータスは [creating] となります。ステータスが [available] に変わると、DB インスタンスに接続できます。DB インスタンスクラスとストレージの合計によっては、新しい DB インスタンスを使用できるようになるまで最長 20 分かかることがあります。 |
DB インスタンスに接続できません。 |
DB インスタンスを作成したときに指定したポートを経由して通信を送信または受信できない場合は、DB インスタンスに接続できません。DB インスタンスに指定したポートでインバウンドおよびアウトバウンド通信できることを検証するよう、ネットワーク管理者に確認してください。 |
DB インスタンスに接続できません。 |
ローカルファイアウォールによって実施されるアクセスルールと、DB インスタンスのセキュリティグループで DB インスタンスへのアクセスを許可した IP アドレスが一致しない可能性があります。問題は、ほとんどの場合ファイアウォールのインバウンドまたはアウトバウンドルールです。 セキュリティグループでインバウンドのルールを追加または編集できます。ソース には [My IP] を選択します。これにより、ブラウザで検出された IP アドレスから DB インスタンスへのアクセスが許可されます。詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。 セキュリティグループの詳細については、セキュリティグループによるアクセスコントロール を参照してください。 セキュリティグループにルールを設定する手順については、チュートリアル: DB インスタンス用の Amazon VPC を作成する を参照してください。 |
ターゲットホストまたはオブジェクトが存在しないため接続できませんでした – Oracle、エラー: ORA-12545 |
サーバー名とポート番号を正しく指定していることを確認します。[Server name (サーバー名)] に、コンソールからの DNS 名を入力します。 DB インスタンスの DNS 名とポート番号を見つける方法については、DB インスタンスのエンドポイントの検索 を参照してください。 |
無効なユーザー名/パスワード、ログインが拒否されました – Oracle、エラー: ORA-01017 |
DB インスタンスには到達できましたが、接続が拒否されました。通常、これは誤ったユーザー名やパスワードが指定されたときに発生します。ユーザー名とパスワードを確認し、再試行します。 |
接続の問題の詳細については、「Amazon RDS DB インスタンスに接続できない」を参照してください。