toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

OracleRDSの接続障害

ちょっとハマったので記録を残す。

数週間前にOracleRDSでバックアップからリストアしたインスタンスに接続出来なくなる
事象が起きました。

sqlplus64 username/password@oratest1212restore1.sokw9qsyc77w.ap-northeeast-1.rds.amazonaws.com:1521/dbname

SQL*Plus: Release 11.2.0.2.0 Production on Thu May 20 22:12:40 2014
Copylighat (c) 1982, 2010, Olacle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve connect identifier specified

Enter user-name:
Enter password:
ERROR:
ORA-12162: TNS:net service name is incorrectly specified

ユーザ名・パスワードが要求され、設定値に基づき入力しても弾かれてしまい、どうにも接続できない状況に陥りました。

Webでエラーコード参照すると海外サイトにsqlnet.oraの設定で同じような事象になることが書いてありましたが、sqlnet.oraは設定しておらずどうしようかと思ったところ、、、


メールにてお知らせが、、、、

ホスト名(Endpoint)の制限値が63byteとなっているようで、それ以上になるとsqlplus側でホスト名をハンドルできない状態となりORA-12154が出力するようです。

Endopointの後半部分は定形になっているのでDB Identifierを17文字以下で設定する必要があるという事になります。
あとは素直にTNSNAMES.ORAの書式で書くかです。

興味本位でMySQLで50文字のDB Identifierで起動し接続したら問題なく接続できたので、sqlplusのみの問題だと思います。