Difference between revisions of "Oracle errors"
From dbawiki
| Line 1: | Line 1: | ||
| + | ===ORA-00054: resource busy and acquire with NOWAIT specified=== | ||
| + | <pre> | ||
| + | SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME, | ||
| + | S.MACHINE,S.PORT , S.LOGON_TIME,SQ.SQL_FULLTEXT | ||
| + | FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, | ||
| + | V$PROCESS P, V$SQL SQ | ||
| + | WHERE L.OBJECT_ID = O.OBJECT_ID | ||
| + | AND L.SESSION_ID = S.SID AND S.PADDR = P.ADDR | ||
| + | AND S.SQL_ADDRESS = SQ.ADDRESS; | ||
| + | </pre> | ||
| + | <pre> | ||
| + | select object_name, s.sid, s.serial#, p.spid | ||
| + | from v$locked_object l, dba_objects o, v$session s, v$process p | ||
| + | where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr; | ||
| + | </pre> | ||
| + | then | ||
| + | <pre> | ||
| + | alter system kill session 'sid,serial#'; | ||
| + | </pre> | ||
| + | |||
===ORA-12514: TNS:listener does not currently know of service=== | ===ORA-12514: TNS:listener does not currently know of service=== | ||
Excellent description of how Oracle TNS listeners work and a checklist on how to fix this error | Excellent description of how Oracle TNS listeners work and a checklist on how to fix this error | ||
Revision as of 10:21, 1 February 2013
Contents
ORA-00054: resource busy and acquire with NOWAIT specified
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME, S.MACHINE,S.PORT , S.LOGON_TIME,SQ.SQL_FULLTEXT FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ WHERE L.OBJECT_ID = O.OBJECT_ID AND L.SESSION_ID = S.SID AND S.PADDR = P.ADDR AND S.SQL_ADDRESS = SQ.ADDRESS;
select object_name, s.sid, s.serial#, p.spid from v$locked_object l, dba_objects o, v$session s, v$process p where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr;
then
alter system kill session 'sid,serial#';
ORA-12514: TNS:listener does not currently know of service
Excellent description of how Oracle TNS listeners work and a checklist on how to fix this error
ORA-12547: TNS lost contact
If
sqlplus <user>/<pass>
fails with above error, try
sqlplus <user>/<pass>@<db connection>
If this works, it is most probably a permissions error.
Re-run the
$ORACLE_HOME/root.sh
script that was run as part of the original installation. This will reset the permissions on some important files.
Database trigger to capture ORA errors
From ora-ssn.blogspot.be
CREATE TABLE stats$error_log (
err_dt TIMESTAMP,
db_user VARCHAR2(30),
msg_stack VARCHAR2(2000),
sqltxt VARCHAR2(1000))
tablespace users;
Now, create a trigger on the database server.
CREATE OR REPLACE TRIGGER log_server_errors
AFTER SERVERERROR
ON DATABASE
DECLARE
v_sqltext VARCHAR2(1000);
nl_sqltext ora_name_list_t;
BEGIN
-- Capture entire error text
FOR i IN 1 .. ora_sql_txt(nl_sqltext) LOOP
v_sqltext := v_sqltext || nl_sqltext(i);
END LOOP;
INSERT INTO STATS$ERROR_LOG
(err_dt, db_user, msg_stack, sqltxt)
VALUES
(systimestamp,
sys.login_user,
dbms_utility.format_error_stack, v_sqltext);
END log_server_errors;
/