oerr可以在Linux和UNIX操作系统上查询简短的报错信息的含义,可以很好的辅助排查Oracle故障。
1.oerr的使用方法
[oracle@BJS ~]$ oerr ora 12571
12571, 00000, "TNS:packet writer failure"
// *Cause: An error occurred during adatasend.
// *Action: Not normally visible to the user. For further details, turn
// on tracing and reexecute the operation. If error persists, contact
// Oracle Customer Support.
2.使用which命令查询oerr工具的位置
secooler@testdb /home/oracle$ which oerr
/u01/app/oracle/product/10.2/db10g/bin/oerr
3.看一下这个脚本文件记录的内容
secooler@testdb /home/oracle$ vi /u01/app/oracle/product/10.2/db10g/bin/oerr
脚本中 82 Msg_File=$ORACLE_HOME/$Component/mesg/${Facility}us.msg
这里似乎暗示着我们,所有的检索信息都是来自于这些*.msg文件
4.在ORACLE_HOME目录中使用find命令查找msg文件
[oracle@NcDbEmulator mesg]$ find $ORACLE_HOME -name mesg
/oracle/app/oracle/dbhome/network/mesg
/oracle/app/oracle/dbhome/has/mesg
/oracle/app/oracle/dbhome/usm/mesg
/oracle/app/oracle/dbhome/nls/mesg
/oracle/app/oracle/dbhome/racg/mesg
/oracle/app/oracle/dbhome/css/mesg
/oracle/app/oracle/dbhome/srvm/mesg
/oracle/app/oracle/dbhome/olap/mesg
/oracle/app/oracle/dbhome/oracore/mesg
/oracle/app/oracle/dbhome/plsql/mesg
/oracle/app/oracle/dbhome/ldap/mesg
/oracle/app/oracle/dbhome/sqlplus/mesg
/oracle/app/oracle/dbhome/ord/mesg
/oracle/app/oracle/dbhome/crs/mesg
/oracle/app/oracle/dbhome/odbc/mesg
/oracle/app/oracle/dbhome/xdk/mesg
/oracle/app/oracle/dbhome/mesg
/oracle/app/oracle/dbhome/precomp/mesg
/oracle/app/oracle/dbhome/slax/mesg
/oracle/app/oracle/dbhome/csmig/mesg
/oracle/app/oracle/dbhome/ctx/mesg
/oracle/app/oracle/dbhome/rdbms/mesg
/oracle/app/oracle/dbhome/opmn/mesg
[oracle@NcDbEmulator mesg]$ cd /oracle/app/oracle/dbhome/rdbms/mesg/
[oracle@NcDbEmulator mesg]$ ls *.msg
amduus.msg dgmus.msg gimus.msg kfodus.msg kopus.msg nidus.msg oraus.msg sbtus.msg udius.msg
asmcmdus.msg diaus.msg impus.msg kfsgus.msg kupus.msg ocius.msg qsmus.msg smgus.msg ulus.msg
dbvus.msg expus.msg kfedus.msg kgpus.msg lcdus.msg opwus.msg rmanus.msg udeus.msg
.msb格式的文件是二进制文件。
从以上msg格式的文件,可以看出oerr可以查询的错误信息类型。例如:
oraus.msg 对应ORA错误,
$ oerr lrm 112
112, 0, "multiple values not allowed for parameter '%.*s'"
// *Cause: An attempt was made to specify multiple values for a parameter which
// can take only one value.
// *Action: Do not specify more than one value for this parameter.
这是在使用expdp时使用directory参数不当时可能会产生的错误。
$ oerr exp 91
00091, 00000, "Exporting questionable statistics."
// *Cause: Export was able export statistics, but the statistics may not be
// usuable. The statistics are questionable because one or more of
// the following happened during export: a row error occurred, client
// character set or NCHARSET does not match with the server, a query
// clause was specified on export, only certain partitions or
// subpartitions were exported, or a fatal error occurred while
// processing a table.
// *Action: To export non-questionable statistics, change the client character
// set or NCHARSET to match the server, export with no query clause,
// export complete tables. If desired, import parameters can be
// supplied so that only non-questionable statistics will be imported,
// and all questionable statistics will be recalculated.
$ oerr imp 17
00017, 00000, "following statement failed with ORACLE error %lu:"
// *Cause: Import failed to execute the statement from the export file
// because of an Oracle error.
// *Action: Look up the accompanying Oracle message in the ORA message
// chapters of this manual and take appropriate action.
这是在使用EXP和IMP时可能产生的错误
OERR能检索的错误还有很多,包括CLSR、OCI、TNS、UDE等等。但是这些在Oracle官方文档里并没有说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。