Oracleを使っていて、エラーなどで困ったときに使えるコマンドを集めてみました。
随時更新していく予定です。
oerrコマンド
知っている方も多いと思いますが説明しておきます。
oerrコマンドは、エラーの内容を簡単にですが、教えてくれるコマンドです。
例えば、ORA-1が出力された場合に、どのような要因で発生しているかを教えてくれます。
$ORACLE_HOME/binにパスが通っている前提で、以下のコマンドを実行します。
$ oerr ora 1
00001, 00000, "unique constraint (%s.%s) violated"
// *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
// For Trusted Oracle configured in DBMS MAC mode, you may see
// this message if a duplicate entry exists at a different level.
// *Action: Either remove the unique restriction or do not insert the key.
ORAエラーだけでなく、TNSエラーも同様に確認できます。
TNSエラーは主にネットワーク系のエラーで発生します。
(リスナーログやsqlnet.logに出力されるケースが多いです)
$ oerr tns 12542
12542, 00000, "TNS:address already in use"
// *Cause: Specified listener address is already being used.
// *Action: Start your listener with a unique address.
tnspingコマンド
Linux OS上でのpingコマンドはご存じの方も多いと思います。
tnspingもその動作に従ったコマンドですが、引数に接続識別子を渡します。
tnspingは、接続識別子で指定されたホスト名やポート番号のリスナーに対して、応答確認を行うことができます。
リスナー経由での接続でエラーが返ってきている場合や、接続識別子の記述が正しいかを確認する場合に、
tnspingコマンドを実行して、まずは応答がきちんと返ってくるかを確認することができます。
tnspingコマンドがエラーになっている場合は、リスナー経由の接続は必ずエラーになりますので、
問題の切り分けにも使えるコマンドとなります。
TNSエラーが発生しているので、oerrコマンドで内容を確認できます。
$ oerr tns 12543
12543, 00000, "TNS:destination host unreachable"
// *Cause: Contact can not be made with remote party.
// *Action: Make sure the network driver is functioning and the network is up.
コメント