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のみの問題だと思います。