Showing posts with label ora-error. Show all posts
Showing posts with label ora-error. Show all posts

Wednesday, April 20, 2011

ORA-1659 unable to allocate MINEXTENTS beyond %s in tablespace %s

ORA-1659 unable to allocate MINEXTENTS beyond %s in tablespace %s

Cause: Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with smaller value for MINEXTENTS, NEXT or PCTINCREASE



Diagnosis the problem
========================



1. Determine the largest contiguous space available for the tablespace with the error

SELECT max(bytes) FROM dba_free_space WHERE tablespace_name = '';

The above query returns the largest available contiguous chunk of space.


2. Determine NEXT_EXTENT size

SELECT NEXT_EXTENT, PCT_INCREASE FROM DBA_SEGMENTS WHERE SEGMENT_NAME = AND SEGMENT_TYPE = AND OWNER =

is usually stated in the error message


3. Compute the NEXT EXTENT SIZE if the segment resides in a dictionary managed tablespace and has a PCT_INCREASE >0

SELECT EXTENT_MANAGEMENT FROM DBA_TABLESPACES WHERE TABLESPACE_NAME = '';

Use the "next_extent" size with "pct_increase" (from #2 above) in the following formula to determine the size of extent that is trying to be allocated.

extent size = next_extent * (1 + (pct_increase/100)



4) Determine if the tablespace containing the object is AUTOEXTENSIBLE and has reached MAXSIZ

For Data Files

SELECT file_name, bytes, autoextensible, maxbytes FROM dba_data_files WHERE tablespace_name=' ';

For Temp Files

SELECT file_name, bytes, autoextensible, maxbytes FROM dba_temp_files WHERE tablespace_name=' ';


5) Determine which solution best fits the conditions

If the NEXT EXTENT size (step 2 or 3 above) is larger than the largest contiguous chunk of free space then
Manually Coalesce Adjacent Free Extents may be an option
If after coalescing ... there is still insufficient contiguous space ... then one of the other options must be chosen

If the volumes on which the datafile/tempfile(s) for the tablespace have insufficient space then
Add a Datafile/Tempfile or Defragment the Tablespace are your only options ... and this file must be added to a new volume with sufficient space

If the tablespace is AUTOEXTENSIBLE and at MAXSIZE ... either raise max size (after verifying that the volume has space) or Add a Datafile/Tempfile or Defragment the Tablespace



===========================
Possible solutions
=============================

A. Manually Coalesce Adjacent Free Extents
ALTER TABLESPACE COALESCE;

B. Modify one or more datafiles/tempfiles in the tablespace to use AUTOEXTEND
ALTER DATABASE DATAFILE|TEMPFILE '' AUTOEXTEND ON MAXSIZE ;

NOTE: It is strongly recommended that MAXSIZE be specified to try to prevent the datafile/tempfile from consuming all available space on the volume


C. Add a Datafile/Tempfile
ALTER TABLESPACE ADD DATAFILE|TEMPFILE '' SIZE ;


D. Lower "next_extent" and/or "pct_increase" size if segment is in a Dictionary Managed Tablespace
For non-temporary and non-partitioned segments:

ALTER STORAGE ( next pctincrease );



E. Resize the Datafile/Tempfile
ALTER DATABASE DATAFILE|TEMPFILE '' RESIZE ;


F. Defragment the Tablespace

ORA-1658: unable to create INITIAL extent for segment in tablespace %s

ORA-1658: unable to create INITIAL extent for segment in tablespace %s


Cause: Failed to find sufficient contiguous space to allocate INITIAL extent for segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with a smaller value for INITIAL

ORA-1654: unable to extend index %s.%s by %s in tablespace %s

ORA-1654: unable to extend index %s.%s by %s in tablespace %s

Cause: Failed to allocate an extent of the required number of blocks for an index segment in the tablespace indicated.
Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the tablespace indicated.

Sunday, April 17, 2011

Drop user username cascade and error ORA-02429: cannot drop index used for enforcement of unique/primary key

Drop user username cascade and error ORA-02429: cannot drop index used for enforcement of unique/primary key
=============================================================================================================

Today in our test environment, i am trying to drop a user but i can't success. why ?



SQL>
SQL>
SQL> drop user mybank cascade ;
drop user mybank cascade
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-02429: cannot drop index used for enforcement of unique/primary key


SQL> alter session set tracefile_identifier = 'drop user mybank cascade_1';

Session altered.

SQL> ALTER SESSION SET EVENTS '10046 trace name context forever, level 8';

Session altered.



location of the trace file :-

SELECT s.sid,
s.serial#,
pa.value || '\' || LOWER(SYS_CONTEXT('userenv','instance_name')) ||
'_ora_' || p.spid || '.trc' AS trace_file
FROM v$session s,
v$process p,
v$parameter pa
WHERE pa.name = 'user_dump_dest'
AND s.paddr = p.addr
AND s.audsid = SYS_CONTEXT('USERENV', 'SESSIONID');






in the trace file i found :-


--------------------------------------content of text file-----------------------------

=====================
PARSING IN CURSOR #10 len=402 dep=2 uid=0 oct=3 lid=0 tim=676591965 hv=3607805727 ad='50a6fba0'
select parttype, partcnt, partkeycols, flags, defts#, defpctfree, defpctused, definitrans, defmaxtrans, deftiniexts, defextsize, defminexts, defmaxexts, defextpct, deflists, defgroups, deflogging, spare1, mod(spare2, 256) subparttype, mod(trunc(spare2/256), 256) subpartkeycols, mod(trunc(spare2/65536), 65536) defsubpartcnt, mod(trunc(spare2/4294967296), 256) defhscflags from partobj$ where obj# = :1
END OF STMT
PARSE #10:c=0,e=18,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=676591962
EXEC #10:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=676592040
FETCH #10:c=0,e=7,p=0,cr=1,cu=0,mis=0,r=0,dep=2,og=4,tim=676592064
STAT #10 id=1 cnt=0 pid=0 pos=1 obj=262 op='TABLE ACCESS BY INDEX ROWID PARTOBJ$ (cr=1 pr=0 pw=0 time=10 us)'
STAT #10 id=2 cnt=0 pid=1 pos=1 obj=263 op='INDEX UNIQUE SCAN I_PARTOBJ$ (cr=1 pr=0 pw=0 time=6 us)'
=====================
PARSING IN CURSOR #11 len=33 dep=1 uid=0 oct=10 lid=0 tim=676592272 hv=0 ad='8ac3194'
drop index "MYBANK"."PK_STTRNINT"
END OF STMT
PARSE #11:c=15625,e=7271,p=0,cr=68,cu=0,mis=1,r=0,dep=1,og=4,tim=676592269
=====================
PARSING IN CURSOR #12 len=652 dep=2 uid=39 oct=47 lid=39 tim=676592536 hv=3055982128 ad='43eec67c'
BEGIN
BEGIN
IF (xdb.DBMS_XDBZ0.is_hierarchy_enabled_internal(sys.dictionary_obj_owner, sys.dictionary_obj_name, sys.dictionary_obj_owner)) THEN
xdb.XDB_PITRIG_PKG.pitrig_truncate(sys.dictionary_obj_owner, sys.dictionary_obj_name);
END IF;
EXCEPTION
WHEN OTHERS THEN
null;
END;
BEGIN
IF (xdb.DBMS_XDBZ0.is_hierarchy_enabled_internal(sys.dictionary_obj_owner, sys.dictionary_obj_name, sys.dictionary_obj_owner, xdb.DBMS_XDBZ.IS_ENABLED_RESMETADATA)) THEN
xdb.XDB_PITRIG_PKG.pitrig_dropmetadata(sys.dictionary_obj_owner, sys.dictionary_obj_name);
END IF;
EXCEPTION
WHEN OTHERS THEN
null;
END;
END;
END OF STMT
PARSE #12:c=0,e=31,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=1,tim=676592532
EXEC #3:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=1,tim=676592790
FETCH #3:c=0,e=39,p=0,cr=7,cu=0,mis=0,r=1,dep=3,og=1,tim=676592848
EXEC #13:c=0,e=91,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=1,tim=676592986
FETCH #13:c=0,e=374,p=0,cr=58,cu=0,mis=0,r=1,dep=3,og=1,tim=676593377
EXEC #14:c=0,e=21,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=1,tim=676593444
FETCH #14:c=0,e=30,p=0,cr=8,cu=0,mis=0,r=1,dep=3,og=1,tim=676593492
=====================


===================================end content of tracefile=============================================================
=================================================================================================



Solution:-



at last i identify that, droping user are holding an unique index(Primary key) with referencing another user's table .
index script like below's :-



CREATE UNIQUE INDEX MYBANK.PK_STTRNINT ON ISLBAS.STTRNINT
(COMPCODE, INDOCTYP, INSUBTYP, INDOCNUM, INDOCDAT,
SERLNUMB)


After this identification, i just drop the referencing user first. then i succed to drop my target user.


OR

alter table islbas.STTRNINT disable constraint PK_STTRNINT ;


drop index "MYBANK"."PK_STTRNINT"


CREATE UNIQUE INDEX islbas.PK_STTRNINT ON ISLBAS.STTRNINT
(COMPCODE, INDOCTYP, INSUBTYP, INDOCNUM, INDOCDAT,
SERLNUMB)

Wednesday, January 12, 2011

ORA-01555: snapshot too old: rollback segment number with name "" too small

ORA-01555: snapshot too old: rollback segment number with name "" too small
============================================================================


Quick check & solution:-



1) Increase size of rollback segment which will reduce the likelihood of overwriting
rollback information that is needed.

2) UNDO_RETENTION parameter value is enough.

3) if possible try to tune the longest running queries

4) Reduce the number of commits .
(ORA-01555 frequently caused by COMMIT within PL/SQL LOOP)

5) Run the processing against a range of data rather than the whole table.

6) Add additional rollback segments. This will allow the updates etc. to be spread
across more rollback segments thereby reducing the chances of overwriting required
rollback information.

7) If fetching across commits, the code can be changed so that this is not done.

8) Ensure that the outer select does not revisit the same block at different times
during the processing.





Analysis:
=========

---find out longest running query.
--------------------------------------------

SQL> select max(MAXQUERYLEN) from v$undostat;

MAX(MAXQUERYLEN)
----------------
81431

SQL>


if we increase undo_retention more than longest running query can
avoid ORA-01555 SNAPSHOT too old errors.




****Execute following query to get the optimal undo_retention size to be increased.
----------------------------------------------------------------------

SQL>
SQL> SELECT d.undo_size/(1024*1024) "ACTUAL UNDO SIZE [MByte]",
2 SUBSTR(e.value,1,25) "UNDO RETENTION [Sec]",
3 ROUND((d.undo_size / (to_number(f.value) *
4 g.undo_block_per_sec))) "OPTIMAL UNDO RETENTION [Sec]"
5 FROM (
6 SELECT SUM(a.bytes) undo_size
7 FROM v$datafile a,
8 v$tablespace b,
9 dba_tablespaces c
10 WHERE c.contents = 'UNDO'
11 AND c.status = 'ONLINE'
12 AND b.name = c.tablespace_name
13 AND a.ts# = b.ts#
14 ) d,
15 v$parameter e,
16 v$parameter f,
17 (
18 SELECT MAX(undoblks/((end_time-begin_time)*3600*24))
19 undo_block_per_sec
20 FROM v$undostat
21 ) g
22 WHERE e.name = 'undo_retention'
23 AND f.name = 'db_block_size'
24 /

ACTUAL UNDO SIZE [MByte] UNDO RETENTION [Sec] OPTIMAL UNDO RETENTION [Sec]
------------------------ ------------------------- ----------------------------
23552 900 12993





SQL>
SQL>
SQL> SELECT *
2 FROM (SELECT begin_time, txncount, maxquerylen, ssolderrcnt,
3 nospaceerrcnt, unxpstealcnt, expstealcnt
4 FROM v$undostat
5 ORDER BY begin_time DESC)
6 WHERE ROWNUM <= 30 ;

BEGIN_TIM TXNCOUNT MAXQUERYLEN SSOLDERRCNT NOSPACEERRCNT UNXPSTEALCNT EXPSTEALCNT
--------- ---------- ----------- ----------- ------------- ------------ -----------
12-JAN-11 6596 47 0 0 0 9
12-JAN-11 2382 242 0 0 0 0
12-JAN-11 2441 4464 0 0 0 0
12-JAN-11 2183 3855 0 0 0 0
12-JAN-11 2100 3250 0 0 0 0
12-JAN-11 2139 2641 0 0 0 0
12-JAN-11 7795 4453 0 0 0 0
12-JAN-11 2489 3849 0 0 0 0
12-JAN-11 2426 3248 0 0 0 0
12-JAN-11 2261 2647 0 0 0 0
12-JAN-11 2544 2039 0 0 0 0
12-JAN-11 2393 1143 0 0 0 0
12-JAN-11 7963 844 0 0 0 4
12-JAN-11 2030 238 0 0 0 2
12-JAN-11 1272 541 0 0 0 0
12-JAN-11 1223 30 0 0 0 1
12-JAN-11 720 233 0 0 0 0
12-JAN-11 600 1739 0 0 0 0
12-JAN-11 6023 1131 0 0 0 2
12-JAN-11 325 522 0 0 0 0
12-JAN-11 244 750 0 0 0 0
12-JAN-11 219 270 0 0 0 0
12-JAN-11 160 0 0 0 0 0
12-JAN-11 277 0 0 0 0 0
12-JAN-11 5850 0 0 0 0 31
12-JAN-11 175 0 0 0 0 0
12-JAN-11 164 0 0 0 0 0
12-JAN-11 140 0 0 0 0 1
12-JAN-11 185 0 0 0 0 0
12-JAN-11 134 0 0 0 0 0

30 rows selected.

SQL>







===================================================
introduction:
===================================================

An ORA-01555 is never about running out of rollback. It is about rollback that was
generated being overwritten. A select statement will not cause rollback to be "held".
As soon as the transaction that generated the rollback commits - that rollback may be
reused and if it is and it is needed by some query, you will get an ORA-01555.

if you size your rollback adequately, neither will you.

The ORA-01555 happens when people try to save space typically. They'll have small
rollback segments that could grow if they needed (and will shrink using OPTIMAL).

So, they'll start with say 10 or so 1 Mb rollback segments. These rollback segments COULD
grow to 100 MB each if we let them (in this example) however, they will NEVER grow unless
you get a big transaction.

If your database does lots of little transactions, the rollback segment will never grow on their own.
They will stay small.

Now, someone needs to run a query that will take 5 minutes. On your system however the
rollback wraps every 2 minutes due to lots of little transactions going on. In this
system, ORA-01555 will happen frequently.

What you need to do here is size rollback so that it wraps less frequently (less frequently
then your long running queries). Here if you sized the rollback so that you had 10, 10 MB segments
(not so they could GROW to 10MB but that they are starting at 10MB)
we would wrap maybe every 20 minutes now. that'll
give that 5 minute query plenty of time to complete without reusing rollback it needs.






===============================================
ORA-01555 Explanation
===============================================

There are two fundamental causes of the error ORA-01555 that are a result of Oracle
trying to attain a 'read consistent' image. These are :

*** The rollback information itself is overwritten so that Oracle is unable to rollback
the (committed) transaction entries to attain a sufficiently old enough version of the
block.

*** The transaction slot in the rollback segment's transaction table (stored in the
rollback segment's header) is overwritten, and Oracle cannot rollback the transaction
header sufficiently to derive the original rollback segment transaction slot.

Both of these situations are discussed below with the series of steps that cause the
ORA-01555. In the steps, reference is made to 'QENV'. 'QENV' is short for 'Query
Environment', which can be thought of as the environment that existed when a query is
first started and to which Oracle is trying to attain a read consistent image. Associated
with this environment is the SCN
(System Change Number) at that time and hence, QENV 50 is the query environment with SCN
50.

CASE 1 - ROLLBACK OVERWRITTEN

This breaks down into two cases: another session overwriting the rollback that the
current session requires or the case where the current session overwrites the rollback
information that it requires. The latter is discussed in this article because this is
usually the harder one to understand.

Steps:

1. Session 1 starts query at time T1 and QENV 50

2. Session 1 selects block B1 during this query

3. Session 1 updates the block at SCN 51

4. Session 1 does some other work that generates rollback information.

5. Session 1 commits the changes made in steps '3' and '4'.
(Now other transactions are free to overwrite this rollback information)

6. Session 1 revisits the same block B1 (perhaps for a different row).

Now, Oracle can see from the block's header that it has been changed and it is
later than the required QENV (which was 50). Therefore we need to get an image of the
block as of this QENV.

If an old enough version of the block can be found in the buffer cache then we
will use this, otherwise we need to rollback the current block to generate another
version of the block as at the required QENV.

It is under this condition that Oracle may not be able to get the required
rollback information because Session 1's changes have generated rollback information that
has overwritten it and returns the ORA-1555 error.

CASE 2 - ROLLBACK TRANSACTION SLOT OVERWRITTEN

1. Session 1 starts query at time T1 and QENV 50

2. Session 1 selects block B1 during this query

3. Session 1 updates the block at SCN 51

4. Session 1 commits the changes
(Now other transactions are free to overwrite this rollback information)

5. A session (Session 1, another session or a number of other sessions) then use the
same rollback segment for a series of committed transactions.

These transactions each consume a slot in the rollback segment transaction table
such that it eventually wraps around (the slots are written to in a circular fashion) and
overwrites all the slots. Note that Oracle is free to reuse these slots since all
transactions are committed.

6. Session 1's query then visits a block that has been changed since the initial QENV
was established. Oracle therefore needs to derive an image of the block as at that point
in time.

Next Oracle attempts to lookup the rollback segment header's transaction slot
pointed to by the top of the data block. It then realises that this has been overwritten
and attempts to rollback the changes made to the rollback segment header to get the
original transaction slot entry.

If it cannot rollback the rollback segment transaction table sufficiently it will
return ORA-1555 since Oracle can no longer derive the required version of the data block.


It is also possible to encounter a variant of the transaction slot being overwritten
when using block cleanout. This is briefly described below :

Session 1 starts a query at QENV 50. After this another process updates the blocks that
Session 1 will require. When Session 1 encounters these blocks it determines that the
blocks have changed and have not yet been cleaned out (via delayed block cleanout).
Session 1 must determine whether the rows in the block existed at QENV 50, were
subsequently changed,

In order to do this, Oracle must look at the relevant rollback segment transaction table
slot to determine the committed SCN. If this SCN is after the QENV then Oracle must try
to construct an older version of the block and if it is before then the block just needs
clean out to be good enough for the QENV.

If the transaction slot has been overwritten and the transaction table cannot be rolled
back to a sufficiently old enough version then Oracle cannot derive the block image and
will return ORA-1555.

(Note: Normally Oracle can use an algorithm for determining a block's SCN during block
cleanout even when the rollback segment slot has been overwritten. But in this case
Oracle cannot guarantee that the version of the block has not changed since the start of
the query).


=============================================
Solutions
=============================================

This section lists some of the solutions that can be used to avoid the ORA-01555 problems
discussed in this article. It addresses the cases where rollback segment information is
overwritten by the same session and when the rollback segment transaction table entry is
overwritten.

It is worth highlighting that if a single session experiences the ORA-01555 and it is not
one of the special cases listed at the end of this article, then the session must be
using an Oracle extension whereby fetches across commits are tolerated. This does not
follow the ANSI model and in the rare cases where
ORA-01555 is returned one of the solutions below must be used.

CASE 1 - ROLLBACK OVERWRITTEN

1. Increase size of rollback segment which will reduce the likelihood of overwriting
rollback information that is needed.

2. Reduce the number of commits (same reason as 1).

3. Run the processing against a range of data rather than the whole table. (Same
reason as 1).

4. Add additional rollback segments. This will allow the updates etc. to be spread
across more rollback segments thereby reducing the chances of overwriting required
rollback information.

5. If fetching across commits, the code can be changed so that this is not done.

6. Ensure that the outer select does not revisit the same block at different times
during the processing. This can be achieved by :

- Using a full table scan rather than an index lookup
- Introducing a dummy sort so that we retrieve all the data, sort it and then
sequentially visit these data blocks.

CASE 2 - ROLLBACK TRANSACTION SLOT OVERWRITTEN

1. Use any of the methods outlined above except for '6'. This will allow transactions
to spread their work across multiple rollback segments therefore reducing the likelihood
or rollback segment transaction table slots being consumed.

2. If it is suspected that the block cleanout variant is the cause, then force block
cleanout to occur prior to the transaction that returns the ORA-1555. This can be
achieved by issuing the following in SQL*Plus, SQL*DBA or Server Manager :

alter session set optimizer_goal = rule;
select count(*) from table_name;

If indexes are being accessed then the problem may be an index block and clean out
can be forced by ensuring that all the index is traversed. Eg, if the index is on a
numeric column with a minimum value of 25 then the following query will force cleanout of
the index :

select index_column from table_name where index_column > 24;

Tuesday, August 24, 2010

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Solution:
================
Your problem is solved after bellows two step


1. Regestration you Listener from Dynamically to static like below.

Make a listerner.ora for you database with your DB Information.


SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = H:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
)

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-bb88068f9f5d)(PORT = 1521))
)


then stop and start the listener.

The data within the SID_DESC section is written about instance is referred to as 'static information' for that instance.
Note : [all static information in the listener.ora is overwritten when the instance is dynamically registered with the listener.]




2. increase PROCESSES parameter in the initSID.ora file or in spfile like

see your alert_log file first.

SQL> alter system set processes = 400 scope=spfile;

reboot the database.

Thursday, July 8, 2010

EXP-00008: ORACLE error 904 encountered ORA-00904: "MAXSIZE": invalid identifier ORA-01003: no statement parsed


EXP-00008: ORACLE error 904 encountered ORA-00904: "MAXSIZE": invalid identifier ORA-01003: no statement parsed

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

=============================================================
When I execute a export (EXP) in this version I found this result............................
----------------------------------------------------------------------------
---------------------------------------------------------------------------
==============================================================

SQL*Plus: Release 11.1.0.6.0 - Production on Thu Jul 8 13:00:12 2010

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> host
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\era-1>exp userid=basel2/basel2@test107 owner=basel2
file=D:\basel_dump\basel2_08072010_test107.dmp LOG=D:\basel_dump\basel2_08072010_test107.LOG

Export: Release 11.1.0.6.0 - Production on Thu Jul 8 13:00:19 2010

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Produc
tion
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engin
e options
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user BASEL2
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user BASEL2
About to export BASEL2's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export BASEL2's tables via Conventional Path ...
. . exporting table AUDIT_SOURCE_HIST
EXP-00008: ORACLE error 904 encountered
ORA-00904: "MAXSIZE": invalid identifier
. . exporting table AUDIT_TABLE_BASEL2
EXP-00008: ORACLE error 1003 encountered
ORA-01003: no statement parsed
. . exporting table D_TABLE_OF_VIEW
EXP-00008: ORACLE error 904 encountered
ORA-00904: "MAXSIZE": invalid identifier
. . exporting table LK_BANK_RATING
EXP-00008: ORACLE error 1003 encountered
ORA-01003: no statement parsed
. . exporting table LK_CUS_RATING
EXP-00008: ORACLE error 904 encountered
ORA-00904: "MAXSIZE": invalid identifier
. . exporting table LK_GL_ELI_CAPITAL
EXP-00008: ORACLE error 1003 encountered
ORA-01003: no statement parsed
====================================================================================

Note: As I know this is a bug of 11.1.0.6 oracle version

Look at metalink note 741984.1.
Bug number is 5872788 - there exists patch as well.

solution for another oracle versions (not sure)
================================
If there been any changes made to the database. Like catexp.sql
then you should be re-running catalog.sql which will run catexp.sql.


=====================================================================================

========================================================
But When I execute same comman here I found this result............................
----------------------------------------------------------------------------
---------------------------------------------------------------------------
=========================================================

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 8 13:06:51 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn stlbas/stlbas@test107
Connected.
SQL>
SQL>
SQL> host
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\era-1>
C:\Documents and Settings\era-1>exp userid=basel2/basel2@test107 owner=basel2
file=D:\basel_dump\basel2_08072010_test107.dmp LOG=D:\basel_dump\basel2_08072010_test107.LOG

Export: Release 10.2.0.1.0 - Production on Thu Jul 8 13:07:28 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user BASEL2
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user BASEL2
About to export BASEL2's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export BASEL2's tables via Conventional Path ...
. . exporting table AUDIT_SOURCE_HIST 138789 rows exported
. . exporting table AUDIT_TABLE_BASEL2 457 rows exported
. . exporting table D_TABLE_OF_VIEW 0 rows exported
. . exporting table LK_BANK_RATING 193 rows exported
. . exporting table LK_CUS_RATING 27 rows exported
. . exporting table LK_GL_ELI_CAPITAL 18 rows exported
. . exporting table LK_GL_MKR 46 rows exported
. . exporting table LK_GL_OFF 1419 rows exported
. . exporting table LK_GL_OFF_1 33 rows exported
. . exporting table LK_GL_ON 504 rows exported
. . exporting table LK_GL_ON_10122009 18221 rows exported
. . exporting table LK_GL_ON_30062010_BCK 499 rows exported

Wednesday, June 30, 2010

ORA-02429: cannot drop index used for enforcement of unique/primary key

ORA-02429: cannot drop index used for enforcement of unique/primary key
========================================================================

---when I execute

SQL> drop index IND_ON_HALIM_TEST ; ----its reply

ORA-02429: cannot drop index used for enforcement of unique/primary key


If it is an unique index that enforces unique constraint
you cannot simply drop it



You have to drop unique constraint BY

alter table tablename drop constraint constraintname;



=================================================
Hands on Example
=================================================

SQL*Plus: Release 11.1.0.6.0 - Production on Wed Jun 30 16:21:01 2010

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> CONN STLBAS/STLBAS@JUNCLS
Connected.
SQL>
SQL>
SQL> DROP TABLE HALIM_TEST ;

Table dropped.

SQL>
SQL> CREATE TABLE halim_test (id number,name varchar2(30)) ;

Table created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (100,'Mr. Halim');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (100,'Mr Cadot');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (200,'Mr. Arif');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (300,'Mr. Akash');

1 row created.

SQL>
SQL> COMMIT;

Commit complete.

SQL>
SQL>
SQL> create index IND_ON_HALIM_TEST on halim_test(ID);

Index created.

SQL> ALTER TABLE halim_test ADD PRIMARY KEY (ID) NOVALIDATE ;

Table altered.

SQL>
SQL>
SQL>
SQL> DROP index IND_ON_HALIM_TEST ;
DROP index IND_ON_HALIM_TEST
*
ERROR at line 1:
ORA-02429: cannot drop index used for enforcement of unique/primary key

SQL>
SQL>
SQL>
SQL>
SQL> SELECT owner, constraint_name, constraint_type, table_name
2 FROM user_constraints
3 WHERE table_name = 'HALIM_TEST';

OWNER CONSTRAINT_NAME C TABLE_NAME
------------------------------ ------------------------------ - ----------------

STLBAS SYS_C0084077 P HALIM_TEST

SQL>
SQL>
SQL> alter table halim_test drop constraint SYS_C0084077 ;

Table altered.

SQL>
SQL>
SQL>
SQL>
SQL> SELECT index_name, index_type, table_owner, table_name, table_type,
2 uniqueness
3 FROM user_indexes
4 WHERE table_name = 'HALIM_TEST';

INDEX_NAME INDEX_TYPE TABLE_OWNER
TABLE_NAME TABLE_TYPE UNIQUENES
------------------------------ --------------------------- ---------------------
--------- ------------------------------ ----------- ---------
IND_ON_HALIM_TEST NORMAL STLBAS
HALIM_TEST TABLE NONUNIQUE

SQL>
SQL>
SQL> drop index IND_ON_HALIM_TEST;

Index dropped.

SQL>
SQL>
SQL>
SQL>

ORA-02437: cannot validate - primary key violated

ORA-02437: cannot validate - primary key violated
====================================================



SQL*Plus: Release 11.1.0.6.0 - Production on Wed Jun 30 16:21:01 2010

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> CONN STLBAS/STLBAS@JUNCLS
Connected.
SQL>
SQL>
SQL> DROP TABLE HALIM_TEST ;

Table dropped.

SQL>
SQL> CREATE TABLE halim_test (id number,name varchar2(30)) ;

Table created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (100,'Mr. Halim');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (100,'Mr Cadot');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (200,'Mr. Arif');

1 row created.

SQL>
SQL>
SQL> INSERT INTO halim_test VALUES (300,'Mr. Akash');

1 row created.

SQL>
SQL> COMMIT;

Commit complete.

SQL>
SQL> ALTER TABLE halim_test ADD PRIMARY KEY (ID) NOVALIDATE ;
ALTER TABLE halim_test ADD PRIMARY KEY (ID) NOVALIDATE
*
ERROR at line 1:
ORA-02437: cannot validate (STLBAS.SYS_C0084074) - primary key violated


SQL>
SQL>
SQL> ALTER TABLE halim_test ADD PRIMARY KEY (ID) DISABLE ;

Table altered.

SQL>
SQL> ALTER TABLE halim_test ENABLE NOVALIDATE PRIMARY KEY;
ALTER TABLE halim_test ENABLE NOVALIDATE PRIMARY KEY
*
ERROR at line 1:
ORA-02437: cannot validate (STLBAS.SYS_C0084075) - primary key violated

SQL>
SQL> ALTER TABLE halim_test ENABLE NOVALIDATE PRIMARY KEY;
ALTER TABLE halim_test ENABLE NOVALIDATE PRIMARY KEY
*
ERROR at line 1:
ORA-02437: cannot validate (STLBAS.SYS_C0084076) - primary key violated



======================
CAUSE & sOLUTION:
======================

This error occurs because it tries to create a unique index for the unique or primary
key index. The uniqueness is checked during the creation of the unique index.


Solution
=============
------- First, create a NON-UNIQUE index on the same fields that you want to
--------include in the constraint.
SQL>
SQL>
SQL> alter table HALIM_TEST drop constraint SYS_C0084076 ;

Table altered.

SQL>
SQL>
SQL> create index IND_ON_HALIM_TEST on halim_test(ID);

Index created.


-------- Then add the unique or primary key constraint.

SQL>
SQL> ALTER TABLE halim_test ADD PRIMARY KEY (ID) NOVALIDATE ;

Table altered.

oR

SQL>
SQL>
SQL> ALTER TABLE HALIM_TEST ENABLE NOVALIDATE PRIMARY KEY;

Table altered.

SQL>
SQL>

Thursday, June 17, 2010

ORA-01536: space quota exceeded for tablespace

ORA-01536: space quota exceeded for tablespace


1. TO FIND OUT THE QUOTA FOR A USER ON THAT TABLESPACE
USE FOLLOWING QUERY:-


SELECT *
FROM dba_ts_quotas
WHERE USERNAME='ISLBAS'
AND TABLESPACE_NAME='ISLSYS'



2. Increase the quota for that user by this following command



ALTER USER ISLBAS QUOTA UNLIMITED ON ISLSYS;



OR
==

another cause may happen this error

this cause is :-
your are working on a table which owned by another user
so first need to find out that user. then give the owner user
quota unlimited to the tablespace .


For this :- you have to do

1.

select NAME,TYPE
from dba_dependencies
where REFERENCED_NAME='STFACMAS';



2.

select OWNER,OBJECT_NAME
from dba_objects
where OBJECT_NAME='DBT_STFACMAS_CD_CURBAL';


3.

grant unlimited tablespace to ISLBAS;

Monday, June 7, 2010

WARNING: inbound connection timed out (ORA-3136)

WARNING: inbound connection timed out (ORA-3136)


WARNING: inbound connection timed out (ORA-3136)
Mon Jun 7 15:03:02 2010
Errors in file /d04/admin/stlbas/bdump/stlbas_j000_21589.trc:
ORA-07445: exception encountered: core dump [ksuklms()+672] [SIGSEGV] [Address not mapped to object] [0x000000062] [] []
Mon Jun 7 15:03:04 2010
WARNING: inbound connection timed out (ORA-3136)
Mon Jun 7 15:03:06 2010
WARNING: inbound connection timed out (ORA-3136)
Mon Jun 7 15:05:04 2010
WARNING: inbound connection timed out (ORA-3136)
Mon Jun 7 15:10:10 2010
Thread 1 advanced to log sequence 53804 (LGWR switch)
Current log# 1 seq# 53804 mem# 0: /d01/oracle/oradata/stlbas/redo01.log
Mon Jun 7 15:35:13 2010
Timed out trying to start process P643.
Mon Jun 7 15:37:32 2010
Timed out trying to start process PA55.
Mon Jun 7 15:39:00 2010
Timed out trying to start process PE56.
Mon Jun 7 15:40:13 2010
Timed out trying to start process PH77.
Mon Jun 7 15:44:49 2010
Error occured while spawning process PO17; error = 3135
Mon Jun 7 15:46:58 2010
Timed out trying to start process PO79.
Mon Jun 7 15:47:01 2010
Timed out trying to start process PO84.
Mon Jun 7 15:47:02 2010


We facing this error in our Database

-----------------------------------
Explanation of this problem:
-----------------------------------

This problem can occur on any platform, When you use Oracle Net services - Version 10.2 up.

Because; The Oracle Net 10G parameter
"SQLNET.INBOUND_CONNECT_TIMEOUT and
INBOUND_CONNECT_TIMEOUT_listenername default to 0 in 10.1.
To address Denial of Service (DOS) issues, the parameter were set to have a default of 60 (seconds) in 10.2

The following may be seen in the alert log:

WARNING: inbound connection timed out (ORA-3136)

SQLNET.INBOUND_CONNECT_TIMEOUT is set to a value in seconds and determines how long a client has to provide the necessary authentication information to a database.

INBOUND_CONNECT_TIMEOUT_listenername is set to a value in seconds and determines how long a client has to complete its connect request to the listener after the network connection has been established.

To protect both the listener and the database server, Oracle Corporation recommends setting INBOUND_CONNECT_TIMEOUT_listenername in combination with the SQLNET.INBOUND_CONNECT_TIMEOUT parameter.

Cause:
======
Whenever default timeouts are assigned to a parameter, there may be cases where this default does not work well with a particular application. However, some type of timeout on the connection establishment is necessary to combat Denial of Service attacks on the database. In this case, SQLNET.INBOUND_CONNECT__TIMEOUT and INBOUND_CONNECT_TIMEOUT_listenername were given default values of 60 seconds in Oracle 10.2. It is these timeout values that can cause the errors described in this note.

Also note that it is possilbe the reason the database is slow to authenticate, may be due to an overloaded Oracle database or node.

Solution:
=======
Set the parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_listenername to 0 (indefinite) or to an approprate value for the application yet still combat DOS attacks (120 for example).

These parameters are set on the SERVER side:
listener.ora: INBOUND_CONNECT_TIMEOUT_listenername
sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT



Another cause may be
---------------------------
Maximum processes exceed, so no new connection occurs......

First find out the parameter values by this query:-

sessions
processes
transactions

select * from v$resource_limit where RESOURCE_NAME in ('sessions','processes','transactions');


This is the formula, to calculate their values
------------------------------------------------
processes = a
sessions =a*1.1+5
transactions =sessions*1.1

example:-

processes=150
sessions=170
transactions= 187

Change the value in parameter file:-

SQL> alter system set processes=1000 scope=spfile
/

SQL>alter system set transactions=1215 scope=spfilE
/

note:- sessions value automatically change after shutdown the db.

SHUTDOWN THE DATABASE
AND
START THE DATABASE

Sunday, June 6, 2010

ORA-00600: internal error code

ORA-00600: internal error code
====================================

Today i face a problem. problem is, when i am tring to update a table with oracle form6i
whenever I am pressing F10(save), first time it saves but after the second time
it hang and shows message "Connection timeout....."
at the same time i found in alertlog the follwoing error message..

"ORA-00600: internal error code"

At that time i searching the oracle Forms code and found there have many variable
are assign by dual table like :-

select trunc(sysdate)
into v_date
from dual ;


whenever i replace all dual table assignment by directly

then the problem is out.....................



ORA-00600 is an internal error
================================

ORA-600 is an internal error generated by the generic kernel code of the Oracle RDBMS software.


1. Each ORA-00600 error generates a database trace file.
You can find in Details about the application code involve with this error.



2. Each ORA-00600 error comes with a list of arguments They usually enclosed in
square brackets and follow the error on the same line for example:

ORA-00600 [14000][51202][1][51200][][]

Each argument has a specific meaning which can only be interpreted by an Oracle
support analyst. The arguments may also change meaning from version to version.



Possible causes
========================
Possible causes include:

1. time-outs,
2. file corruption,
3. failed data checks in memory, hardware, memory, or I/O messages,
4. incorrectly restored files
5. SELECT FROM DUAL statement in PL/SQL within Oracle Forms (you have to use SELECT FROM SYS.DUAL instead!)



How to fix it
========================
Contact Oracle Support with the following information:

1. events that led up to the error
2. the operations that were attempted that led to the error
3. the conditions of the operating system and database at the time of the error
4. any unusual circumstances that occurred prior to receiving the ORA-00600 message.
5. contents of any trace files generated by the error
6. the relevant portions of the Alert file
7. in Oracle Forms PL/SQL, use SELECT FROM SYS.DUAL to access the system "dual" table




Another way may be it will be fix
===================================

The BUG is fixed in 10.1.0.4 Server Patch Set


ORA-00600: internal error code, arguments: [17183], [0xA2C0044], [], [], [], [], [], []

It is reported as BUG.

It can be found in Oracle 9i,10gr2.

The BUG is fixed in 10.1.0.4 Server Patch Set

Kindly Refer Metalink Note: 3350337.8



Another problem like this and solution
=======================================

ORA-00600: internal error code, arguments: [kjhn_post_ha_alert0-862], [], [], [], [], [], [], []

ORA-600 [kjhn_post_ha_alert0-862] Continuously Repeated in the Alert Log - 401640.1


metalink Doc ID: 401640.1

solutions:
-----------

1. Log in as SYS
2. SQL> truncate table recent_resource_incarnations$
3. Shutdown DB
4. Startup DB

Saturday, April 17, 2010

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

when you don't need as sysdba or as sysoper at connect time
=============================================================

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
============================================================



SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 14 21:32:22 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
SQL> conn sys/sys
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER


Warning: You are no longer connected to ORACLE.
SQL>
SQL>
SQL> conn sys/sys as sysdba
Connected.
SQL>


SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 591396864 bytes
Fixed Size 1250308 bytes
Variable Size 171969532 bytes
Database Buffers 411041792 bytes
Redo Buffers 7135232 bytes
Database mounted.
Database opened.
SQL>
SQL>
SQL> conn sys/sys
Connected.
SQL>
SQL>
QL> shutdown immediate
RA-01031: insufficient privileges
QL>
QL>

note: if you not connect as sysdba or sysoper you can't shutdown
or startup the database.


Thats why
if O7_DICTIONARY_ACCESSIBILITY=FALSE
you can't select any Dictionary table without connecting as sysdba or as sysoper
then you need to grant privilige "grant select any dictionary to user"

IF O7_DICTIONARY_ACCESSIBILITY=FALSE you can't need this privilige.



There are two side effects of this parameter being set to FALSE:
-----------------------------------------------------------------

1) that "sys/password" will not work without sysoper/sysdba, is
not clearly documented anywhere. The fact that the O7_DICTIONARY_ACCESSIBILITY init.ora
parameter causes this is somewhat hard to track down -- but that is what is causing this.


2)Access to the "real" data dictionary owned by SYS will not be available to users, even
if they have the SELECT ANY TABLE privelege. These are not the data dictionary views
like ALL_OBJECTS but rather the base tables like SYS.OBJ$ that will be unaccessible.

Thursday, March 4, 2010

ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syntax error or unresolved network name 'LISTENER

When trying to startup the Oracle Database 11g , Its return following message.

SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER'

Solution:
=========
In Oracle 11g

Just go to pfile (\d01\oracle11G\admin\db11g\pfile).
then comment the LOCAL_LISTENER parameter like #LOCAL_LISTENER

Then start the Database with pfile.
Like:=

SQL> startup pfile=C:\oracle11G\app\era-1\admin\db11g\pfile\init.ora.11312009193622 ;

and then

SQL> create spfile from pfile='C:\oracle11G\app\era-1\admin\db11g\pfile\init.ora.11312009193622' ;

Tuesday, December 22, 2009

ORA-08004: sequence exceeds MAXVALUE and cannot be instantiated

ORA-08004: sequence exceeds MAXVALUE and cannot be instantiated

Soution:=
==============

alter sequence maxvalue ;

Sequence syntax:
---------------
CREATE SEQUENCE
INCREMENT BY
START WITH
MAXVALUE / NOMAXVALUE
MINVALUE / NOMINVALUE
CYCLE / NOCYCLE
CACHE <#> / NOCACHE
ORDER / NOORDER;


CREATE TABLE TEST (ID NUMBER, data VARCHAR2(255));


CREATE SEQUENCE seq_for_test
START WITH 1
INCREMENT BY 1
MAXVALUE 10;


CREATE OR REPLACE TRIGGER trigger_for_seq_test
BEFORE INSERT
ON TEST
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT seq_for_test.NEXTVAL
INTO :NEW.ID
FROM DUAL;
END;


CREATE OR REPLACE TRIGGER trigger_for_seq_test
BEFORE INSERT
ON TEST
FOR EACH ROW
BEGIN
SELECT nvl(:new.id,seq_for_test.NEXTVAL)
INTO :NEW.ID
FROM DUAL;
END;



ALTER SEQUENCE seq_for_test MAXVALUE 15



Sequence in PL/sql
==================


INSERT INTO TEST (id, data)
VALUES (seq_for_test.NEXTVAL, 'halim');

INSERT INTO TEST (id, data)
VALUES (seq_for_test.CurrVAL, 'halim'); --(what happen)


SELECT 'CREATE SEQUENCE test_sequence MINVALUE 0 START WITH '||MAX(id_no)+1||' INCREMENT BY 1 CACHE 20'
INTO v_test
FROM table_name:

EXECUTE IMMEDIATE v_sql;


Sequence Related Queries
==========================
SELECT sequence_name, last_number
FROM user_sequences;

Next Number From Sequence
--------------------------

SELECT sequence_name, (last_number + increment_by) NEXT_VALUE
FROM user_sequences;

Monday, November 16, 2009

ORA-07445/ORA-00600:

ORA-07445/ORA-00600:
==========================

yesterday our client cannot connect to system because when they
are trying to connect its become hang.
we also try to connect with that database user from sqlplus
it also hang. but we can connect with sys user.
some alert log error here....


ORA-07445 : exception encountered: core dump [%s] [%s]

ORA-1688: unable to extend table SYS.WRH$_LATCH_CHILDREN partition WRH$_LATCH__2432247821_10332
by 128 in tablespace SYSAUX
Sat Nov 14 22:18:56 2009
MMON Flush encountered SYSAUX out of space error(1688).

Errors in file /d04/admin/stlbas/udump/stlbas_ora_7294.trc:
ORA-00600: internal error code, arguments: [12333], [0], [0], [0], [], [], [], []
Sat Oct 24 16:44:32 2009
Error occured while spawning process P409; error = 3135



ORA-07445 is a critical error generated by an oracle database when it has receives a fatal
signal from the operating system. This error may be raised in either a foreground or
background process. The most common reason for this error is where a pointer in memory
is overwritten in error by a software problem. In this event, when the pointer is used
to lookup the data it is pointing at, this may likely reference an area of memory without
the process address space. Read more about the cause, interpretation and resolution of the
error ORA-07445 error below

ORA-07445 : What can cause this error

Bug in Oracle Code

Change in reference libraries [ If you have recently applied OS patches, it may be wise to
relink the binaries ]
Code changes in application that causes invalid/null value conditions where a valid value is
expected
Software issues like incorrect Libaries due to invalid environment variables primarily related
to PATH and LD_LIBRARY_PATH
ORA-07445 : Where is the diagnostic information
When an ORA-07445 occurs in an oracle database, the error is written to the database alertlog.
Along with the error, a trace file is written to the background or user dump dest directory of oracle. Also a core dump may be created in the core dump destination directory.

ORA 7445 : Anatomy of the Error
There are two typical signals seen, i.e, SIGBUS (signal 10, bus error) and SIGSEGV
(signal 11, segmentation violation).

Examples of the Error can be as follows :

ORA-7445: exception encountered: core dump [some_SQL()+268] [SIGBUS] [Invalid address
alignment] [] [] []

ORA-7445: exception encountered: core dump [10] [2100262800] [261278112] [] [] []

Example 1 shows that the error occurred in some_SQL() and a SIGBUS signal was sent.
Example 2 has very less information indicating a signal 10 was received but the function
is not identified.

Oracle metalink provides detailed information on troubleshooting the errors. The Note 153788.1
- Troubleshoot an ORA-7445 Error



ORA-7445 : Resolution and working with Oracle Support
=======================================================
ORA 7445 error cannot just be eliminated by the oracle database administrator due to the complexity
involved in resolving this error.

To reduce the amount of time taken by the Oracle Support team to reduce this error, dba should
try to reproduce the situation and identify the SQL or Operation that can reproduce this error
Open an ITAR with Oracle using metalink and Create an RDA of the Oracle database and update the
TAR with the alert log, trace files and the core dumps that the error has generated
Review. the following notes provided by oracle to successfully resolving an ORA 7445 error.
Documents and Links mentioned below will require that you have access to Oracle Metalink
Metalink Note 153788.1 : ORA 7445 Search Tool
Metalink Note 164968.1 : What is an ORA 7445 Error



Solution
============

we find a trace file with ORA-7445 and then find a select statmente , for which the
error is generate.

At last we find that those sql is define in a ON LOGON DATABASE trigger of our database. here many update and insert statment is present.
for this reason it generating many redo, and for this reason Database is hang.

Monday, October 12, 2009

ORA-00942: table or view does not exist

ORA-00942: table or view does not exist

SOLUTION:

1. Your table/view not correct . check it.
2. You have no privilege on this table or view.

Saturday, October 3, 2009

ORA-01031: insufficient privileges

ORA-01031: insufficient privileges
============================
ABOVE ERROR MAY OCCUR IN FOLLOWING SITUATIONS...

1. Absent/corrupted PASSWORD FILE (Remote connection)
===================================

The issue here is the ablity to connect to your instance remotely as
sysdba; this requires

1. a password file generated by orapwd and

2. an init.ora parameter, remote_login_passwordfile, set to shared or
exclusive .If this parameter is set to NONE then no password file is utilised and no possibility exists of a remote login with sys as sysdba.

To solve the problem:

Delete old password file manually(OS delete).
then create new one.

to create a password file :

C:\Documents and Settings\user> orapwd file=G:\oracle\product\10.2.0\db_1\database\PWDBEFTN.ora password=sys entries=5


2. Lack of privileges
====================
In most cases, the user receiving this error lacks a privilege to create an object (such as a table, view, procedure and the like).
Grant the required privilege .

grant create table to user;


3. Startup
===========
If someone receives this error while trying to startup the instance,
the logged on user must belong to the ora_dba group on Windows or dba group on Unix.
To add a user to the ora_dba group on Windows, net localgroup should help:
C:\> net localgroup ora_dba rene /add

4. In windows (Local machine)
=====================
Windows does this on occasion, usually when domain accounts are used.
Ensure you are using a local user account (even domain accounts allow local
logins when the network is absent)

Sunday, September 20, 2009

Startup fails with oracle error ORA-00119, ORA-00132

SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER'


If the tnsnames.ora entry was used for the value of the LOCAL_LISTENER and the LOCAL_LISTENER entry inside tnsnames.ora is changed or tnsnames.ora file is moved and hence the tns alias to which the LOCAL_LISTENER parameter points is no longer valid. So, the entry inside spfile or pfile to be unresolvable, and the database will not start.


Solution
----------
I)Correct the tnsnames.ora

Or

II)

Just go to pfile (\d01\oracle11G\admin\db11g\pfile).
then comment the LOCAL_LISTENER parameter like

#LOCAL_LISTENER

Then start the Database with pfile.
Like:=

SQL> startup pfile=C:\oracle11G\app\era-1\admin\db11g\pfile\init.ora.11312009193622 ;

and then

SQL> create spfile from pfile='C:\oracle11G\app\era-1\admin\db11g\pfile\init.ora.11312009193622' ;

Database Startup fails with error ORA-16038,ORA-19809, ORA-00312

Error Description:
---------------------
Whenever you try to startup the database it fails with error ORA-16038,ORA-19809, ORA-00312.
SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 2019288 bytes
Variable Size 117440552 bytes
Database Buffers 41943040 bytes
Redo Buffers 6369280 bytes
Database mounted.
ORA-16038: log 3 sequence# 572 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '/oradata2/data1/dbase/redo03.log'

Or in mount stage whenever you try to open the database it fails with error ORA-16014, ORA-00312.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16014: log 3 sequence# 572 not archived, no available destinations
ORA-00312: online log 3 thread 1: '/oradata2/data1/dbase/redo03.log'

Cause of The Problem:
----------------------------------------
There was an attempt to archived the online log 3 but it could not archive the online log in the available archived log destination. The most common of happening the error is the archive log destination if full. You have flash recovery area configured and rman retention policy is failed to delete any archived or incremental backups and so can't archived new online log.

Solution of The Problem:
-------------------------------------------
Solution A:(Enough space on the drive)
1)One more check the alert log. (Not needed though)
An extra check you can do in alert log which is in background_dump_dest/alert_$ORACLE_SID.log
SQL> show parameter background_dump_dest

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string /oracle/app/oracle/product/10.
2.0/db_1/admin/dbase/bdump
$less /oracle/app/oracle/product/10.2.0/db_1/admin/dbase/bdump/alert_dbase.log
You may see the same entry is in the alert log.

2)Check the archive destination.
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 572
Next log sequence to archive 572
Current log sequence 580

So archived log destination is DB_RECOVERY_FILE_DEST. You can see the exact destination in OS by,
SQL> show parameter db_recover

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata2/flash_recovery_area
db_recovery_file_dest_size big integer 10G

3)Increase the value of db_recovery_file_dest_size
As archive destination is full so increase the size.
SQL> alter system set db_recovery_file_dest_size=20G;
System altered.

4)Open the database now.
SQL> alter database open;
Database altered.

Solution B: Have not enough space on the drive
If you have not enough space in your disk and you have recent backup of your database and archive log is not needed then you can issue
$rman target /
RMAN>DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-2';

Solution C: Have not any backup
If you have not any recent backup then backup database to another location and delete archivelogs.

To do this,
$rman target /
RMAN>backup format '/oradata2/%U' archivelog all delete input database;

Solution D: Have recent backup and only need archivelog

In this case backup the archive log to another location and delete archive log from flash recovery area.
You can do this by,

$rman target /
RMAN> backup format '/oradata2/%U' archivelog all delete input;