Saturday, June 28, 2008

How to get history of modified data from Oracle databases

There are a few options at your disposal. After the fact, you can mine your archived redo logs using Oracle's Log Miner utility. This presumes you have the archived redo logs available. For more information on how to use Log Miner, refer to the following documentation:

Using LogMiner to Analyze Redo Log Files

Before the fact, you can set up auditing to record changes. With auditing, you can record actions in a database table as they happen and then query the table any time in the future. For more information on auditing, please refer to the following documentation:

Database Auditing: Security Considerations

Determining the optimal number of Oracle RAC nodes

Question: We are using RAC for High Availability. What is better two nodes or three nodes? It's been suggested that "the more nodes, the better". What is the optimal number of RAC nodes?

Answer: First, remember that RAC only protects against server failure, and you must still mirror the disk and have network redundancy for guaranteed 100% availability. In my experience, RAC is not as good as some other options for scalability (i.e. the "scale up" approach), and the most common use of RAC is for HA, and covering server failover.

In deciding about the number of nodes for HA, just multiply the Mean Time Between Failure's (MTBF) for each node together and get an overall probability of failure. It's all about covering the probability of server failure. When used exclusively for HA, two-node RAC is ideal, especially when the nodes are geographically distributed and connected via super-fast dark fiber networks.

Oracle ACE Andy Kerber notes that two node clusters are ideal under some circumstances:

"Well, 3 nodes can be better than two if your workload is fully scalable, and there is no resource contention among the three nodes. I would venture to say that the majority of RAC systems are 2 node clusters, and are set up that way as part of a HA system instead of a workload scaling system."

Oracle Certified Master Steve Karam notes the considerations when choosing the optimal number of RAC nodes for failover:

"Three nodes are 'better' because if one crashes, you won't be failing the entirety of your load over to a single solitary server. In a three node RAC, it allows two nodes to fail before the situation is 'critical.'

Uptime is a function of many unknown variables (power to the server room, stable memory consumption, hardware stability, etc) over time. One server = a boundary condition that limits your chances of uptime by introducing a constant: one unknown variable being negative at any time = total breakdown.

More servers = wider boundaries = less emphasis on the unknown variables that can ultimately cause downtime. Now your uptime is a function of many unknown variables per server over time. More servers = less chance of total downtime.

At the same time, saying that more nodes is always better is false. More nodes are better until you get close to the limits imposed by your back-end cluster interconnect. Thus the boundary condition concept is introduced to a new boundary condition: the number of servers you can have before your performance tanks, which is a different equation entirely.

Interestingly enough, you could use the boundary condition argument to speak the case for SSD (in my hastily assembled opinion). If performance is based upon the ease with which data can travel from the database to the end user; the unknown variables are the amount of data (block gets), the location of data (RAM or disk), concurrency of access (latches, locks), and other obstacles (misc. waits).

The most common tuning practice is to reduce the number of block gets, thereby limiting the first unknown. By using SSD we can moot the second unknown, and always ensure our data comes from RAM. RAC will add a new variable to the 'location' unknown (RAM, remote RAM, disk), but it limits the third unknown (concurrency) since it will be spread across multiple machines.

It can also limit other obstacles (waits) if the waits are node dependent (for instance, network waits would not be limited or removed by going RAC, but px waits could). By this logic, you could say the best system imaginable would be a RAC cluster powered by SSD with a tiny buffer cache on each node, running well tuned SQL.


• Well tuned SQL limits the ill effects of the 'block gets' unknown

• SSD with a tiny buffer cache negates the location unknown, by nulling disk and limiting remote RAM, leaving SSD as the main location of data. This also reduces the ill effects of the cluster interconnect bandwidth/latency boundary condition

• Multiple nodes limit the effects of the concurrency unknown (though the databases = 1 boundary means hot blocks are still possible)


Thus your tuning knobs become the simple concepts of the number of nodes you have (based on concurrency) and the number of block gets you request (based on access paths/data requirements).

Simply put, I would say that our bottlenecks (single points of contention or failure) are math's boundary conditions. They are the limits within which we must operate. Except that as DBAs, we get to do something mathematicians, physicists, etc. don't get to do: change the boundaries."

See my related notes on determining RAC node optimization:

2008 Market Survey of SSD vendors for Oracle:

There are many vendors who offer rack-mount solid-state disk that work with Oracle databases, and the competitive market ensures that product offerings will continuously improve while prices fall. SearchStorage notes that SSD is will soon replace platter disks and that hundreds of SSD vendors may enter the market:

"The number of vendors in this category could rise to several hundred in the next 3 years as enterprise users become more familiar with the benefits of this type of storage."

As of June 2008, many of the major hardware vendors (including Sun and EMC) are replacing slow disks with RAM-based disks, and Sun announced that all of their large servers will offer SSD.

As of June 2008, here are the major SSD vendors for Oracle databases (vendors are listed alphabetically):

2008 rack mount SSD Performance Statistics

SearchStorage has done a comprehensive survey of rack mount SSD vendors, and lists these SSD rack mount vendors, with this showing the fastest rack-mount SSD devices (as of May 15, 2008):

manufacturer model technology interface performance metrics and notes
Texas Memory Systems RamSan-400 RAM SSD Fibre Channel
InfiniBand
3,000MB/s random sustained external throughput, 400,000 random IOPS
Violin Memory Violin 1010 RAM SSD PCIe 1,400MB/s read, 1,00MB/s write with ×4 PCIe, 3 microseconds latency
Solid Access Technologies USSD 200FC RAM SSD Fibre Channel
SAS
SCSI
391MB/s random sustained read or write per port (full duplex is 719MB/s), with 8 x 4Gbps FC ports aggregated throughput is approx 2,000MB/s, 320,000 IOPS
Curtis HyperXCLR R1000 RAM SSD Fibre Channel 197MB/s sustained R/W transfer rate, 35,000 IOPS

Choosing the right SSD for Oracle

When evaluating SSD for Oracle databases you need to consider performance (throughput and response time), reliability (Mean Time Between failures) and TCO (total cost of ownership). Most SSD vendors will provide a test RAM disk array for benchmark testing so that you can choose the vendor who offers the best price/performance ratio

Expert secrets on oradebug

Oracle provides an internal and poorly documented utility called oradebug.

The oradebug utility provides useful functions for debugging and tracing Oracle database errors and can also be quite handy for tracing SQL statements to output to the tkprof utility for analysis by Oracle technicians. However, there are some caveats with the use of the oradebug tool and it should be used only under the careful guidance of Oracle support to avoid potential damage to production and other critical Oracle databases.


Here are a few of the many functions available for the expert Oracle DBA with oradebug.


C:\oradebug>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 19 14:46:19 2008

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

SQL> connect / as sysdba
Connected.

SQL> oradebug help
HELP [command] Describe one or all commands
SETMYPID Debug current process
SETOSPID Set OS pid of process to debug
SETORAPID ['force'] Set Oracle pid of process to debug
SHORT_STACK Dump abridged OS stack
DUMP [addr] Invoke named dump
DUMPSGA [bytes] Dump fixed SGA
DUMPLIST Print a list of available dumps
EVENT Set trace event in process
SESSION_EVENT Set trace event in session
DUMPVAR [level] Print/dump a fixed PGA/SGA/UGA
DUMPTYPE
Print/dump an address with type info
SETVAR Modify a fixed PGA/SGA/UGA PEEK [level] Print/Dump memory
POKE Modify memory
WAKEUP Wake up Oracle process
SUSPEND Suspend execution
RESUME Resume execution
FLUSH Flush pending writes to trace CLOSE_TRACE Close trace file
TRACEFILE_NAME Get name of trace file
LKDEBUG Invoke global enqueue service


SGATOFILE Dump SGA to file
DMPCOWSGA Dump & map SGA as COW
MAPCOWSGA Map SGA as COW
HANGANALYZE [level] [syslevel] Analyze system hang
FFBEGIN Flash Freeze the Instance
FFDEREGISTER FF deregister instance from cluster
FFTERMINST Call exit and terminate instance
FFRESUMEINST Resume the flash frozen instance
FFSTATUS Flash freeze status of instance
UNLIMIT Unlimit the size of the trace file
PROCSTAT Dump process statistics



As you can see, there are quite a few options to the oradebug utility.
The most useful features of the oradebug utility are for hang and crash analysis for Oracle database environments. If there is a core dump or bug that must be resolved with the help of Oracle support, the Oracle DBA can generate the crash dump analysis and work through the crisis with confidence and less delay by dumping the memory contents of the SGA to the trace file and handing this off to the advanced Oracle internal support engineer for quick analysis and problem resolution.

Another use for oradebug is for performance analysis and tuning. SQL statements can be traced at the kernel level with oradebug which aids in the tuning of SQL for the Oracle database environment.

We will next cover a quick example of how to use oradebug utility to trace a user SQL session.

Oradebug requires the SYSDBA level privileges account ie) SYS to run from within a new SQL*Plus session.

First we will set our oradebug to trace the current user session with the setmypid command.

SQL> oradebug setmypid
Statement processed.
SQL>

Now lets use an ALTER SESSION command to tidy up the name for the oradebug file to make things easier when we need to locate the trace file.

SQL> alter session set tracefile_identifier='mytrace';

Session altered.

Now, let’s check where our trace file is stored with the following oradebug command:

SQL> oradebug tracefile_name
c:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_1348_mytrace.trc

By default, oradebug writes out the trace file to the USER_DUMP_DESTINATION directory.

Now lets setup our SQL trace for our current user session and generate some database activity to capture with oradebug.

Oradebug uses events to capture various database events for Oracle. For a SQL trace, the specific event is 10046. In addition to these events for capturing low level Oracle database activity, oradebug also has many levels available for setting the trace.

Some of these trace levels with oradebug include:

Level 1 – contains the basic level of trace information. For example, this trace level will display the bind variables in PL/SQL and SQL statements.

Level 8 - provides the trace details from Level 1 plus the wait events for elapsed times that are more than current CPU timings.

Level 12- adds in all the previous trace level information in addition to all wait event information.

Since we are using oradebug in a test environment, let’s enable a full trace to capture as much detail as possible for SQL activity with our user session. We also want to set the trace file to be unlimited in size so no errors occur during the tracing activity.

SQL> oradebug unlimit
Statement processed.

SQL> oradebug event 10046 trace name context forever, level 12
Statement processed.

Now that we have the trace enabled for SQL statements with oradebug, lets generate some activity.

SQL> create table t1 (a number, b varchar2(100));
Table created.

SQL> insert into t1
2 values (1,'A');
1 row created.

SQL> commit;
Commit complete.

SQL> insert into t1
2 values (2,'B');
1 row created.

SQL> commit;
Commit complete.

SQL> insert into t1
2 values (3,'C');

1 row created.

SQL> commit;
Commit complete.

SQL> insert into t1
2 values (3,'C');

1 row created.

Now let’s end our trace session for oradebug and review the new trace file.

SQL> oradebug event 10046 trace name context off
Statement processed.

SQL> oradebug tracefile_name
c:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_1348_mytrace.trc

We can format our trace file with tkprof or review the raw data generated by oradebug in the trace file. First, we will look at the raw trace dump that we generated with oradebug and then we will conclude our brief visit to oradebug with a tkprof formatted trace output.

Our raw dump in the trace file reviews many low level details for Oracle as shown below.

*** TRACE DUMP CONTINUED FROM FILE ***

Dump file c:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_1348_mytrace.trc
Mon May 19 15:12:22 2008
ORACLE V10.2.0.1.0 - Production vsnsta=0
vsnsql=14 vsnxtr=3
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Windows XP Version V5.1 Service Pack 2
CPU : 2 - type 586
Process Affinity : 0x00000000
Memory (Avail/Total): Ph:856M/2037M, Ph+PgF:2240M/3934M, VA:979M/2047M
Instance name: orcl

Redo thread mounted by this instance: 1

Oracle process number: 26

Windows thread id: 1348, image: ORACLE.EXE (SHAD)

*** 2008-05-19 15:12:22.218
*** SERVICE NAME:(SYS$USERS) 2008-05-19 15:12:22.187
*** SESSION ID:(135.279) 2008-05-19 15:12:22.187
WAIT #0: nam='SQL*Net message to client' ela= 4 driver id=1111838976 #bytes=1 p3=0 obj#=-1 tim=18507445018
*** 2008-05-19 15:13:20.187
WAIT #0: nam='SQL*Net message from client' ela= 57993544 driver id=1111838976 #bytes=1 p3=0 obj#=-1 tim=18565462754
XCTEND rlbk=0, rd_only=1
=====================
PARSING IN CURSOR #4 len=42 dep=0 uid=0 oct=1 lid=0 tim=18565469559 hv=4239432121 ad='40adba98'
create table t1(a number, b varchar2(100))
END OF STMT
PARSE #4:c=0,e=3292,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=18565469553
BINDS #4:
=====================
PARSING IN CURSOR #3 len=51 dep=1 uid=0 oct=3 lid=0 tim=18565479916 hv=1523794037 ad='46295e4c'
select audit$,options from procedure$ where obj#=:1
END OF STMT
PARSE #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=18565479911
BINDS #3:
kkscoacd

Bind#0
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=0001 frm=00 csi=00 siz=24 off=0
kxsbbbfp=0a2dbffc bln=22 avl=03 flg=05
value=10200
EXEC #3:c=15625,e=11817,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=18565499761
FETCH #3:c=0,e=59,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim=18565501551
STAT #3 id=1 cnt=1 pid=0 pos=1 obj=69 op='TABLE ACCESS BY INDEX ROWID PROCEDURE$ (cr=3 pr=0 pw=0 time=64 us)'
STAT #3 id=2 cnt=1 pid=1 pos=1 obj=109 op='INDEX UNIQUE SCAN I_PROCEDURE1 (cr=2 pr=0 pw=0 time=32 us)'
=====================
PARSING IN CURSOR #1 len=179 dep=1 uid=0 oct=3 lid=0 tim=18565507100 hv=2812844157 ad='462ee788'
select owner#,name,namespace,remoteowner,linkname,p_timestamp,p_obj#, nvl(property,0),subname,d_attrs from dependency$ d, obj$ o where d_obj#=:1 and p_obj#=obj#(+) order by order#
END OF STMT
PARSE #1:c=0,e=48,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=18565507094
BINDS #1:
kkscoacd
Bind#0
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
kxsbbbfp=0a2dc1d8 bln=22 avl=03 flg=05
value=10200
EXEC #1:c=15625,e=13251,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=18565529339
FETCH #1:c=0,e=545,p=0,cr=20,cu=0,mis=0,r=1,dep=1,og=4,tim=18565531768
FETCH #1:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565533741
FETCH #1:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565535668
FETCH #1:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565537698
FETCH #1:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565539607
FETCH #1:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565541509
FETCH #1:c=0,e=22,p=0,cr=0,cu=0,mis=0,r=1,dep=1,og=4,tim=18565543419
FETCH #1:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=18565545385
STAT #1 id=1 cnt=7 pid=0 pos=1 obj=0 op='SORT ORDER BY (cr=20 pr=0 pw=0 time=654 us)'
STAT #1 id=2 cnt=7 pid=1 pos=1 obj=0 op='NESTED LOOPS OUTER (cr=20 pr=0 pw=0 time=495 us)'
STAT #1 id=3 cnt=7 pid=2 pos=1 obj=92 op='TABLE ACCESS BY INDEX ROWID DEPENDENCY$ (cr=4 pr=0 pw=0 time=136 us)'
STAT #1 id=4 cnt=7 pid=3 pos=1 obj=122 op='INDEX RANGE SCAN I_DEPENDENCY1 (cr=2 pr=0 pw=0 time=62 us)'
STAT #1 id=5 cnt=7 pid=2 pos=2 obj=18 op='TABLE ACCESS BY INDEX ROWID OBJ$ (cr=16 pr=0 pw=0 time=257 us)'
STAT #1 id=6 cnt=7 pid=5 pos=1 obj=36 op='INDEX UNIQUE SCAN I_OBJ1 (cr=9 pr=0 pw=0 time=116 us)'

In the header section of the trace file, oradebug has provided us with useful configuration information on the system and database environment. Next, we see the dump output for wait events and SQL statements for our Oracle 10g database instance.

Now we will conclude our brief visit to the world of oradebug with a brief example of using tkprof with the trace file for database tuning analysis.

To format our trace file generated from our recent oradebug session we need to execute the tkprof command from the trace file default directory as follows.

C:\oradebug>cd c:\oracle\product\10.2.0\admin\orcl\udump
C:\oracle\product\10.2.0\admin\orcl\udump>

tkprof orcl_ora_1348_mytrace.trc trace_sql.txt explain=system/oracle
sys=no waits=yes

TKPROF: Release 10.2.0.1.0 - Production on Mon May 19 15:24:23 2008

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

Now, let’s review the contents of our newly formatted trace file:

TKPROF: Release 10.2.0.1.0 - Production on Mon May 19 15:24:23 2008

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

Trace file: orcl_ora_1348_mytrace.trc
Sort options: default

***********************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
***********************************************************************

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 38 (XDB) (recursive depth: 1)
**********************************************************************

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 38 (XDB) (recursive depth: 2)

Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT MODE: ALL_ROWS
0 NESTED LOOPS
0 NESTED LOOPS
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'USER$'
(CLUSTER)
0 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'I_USER1' (INDEX
(UNIQUE))
0 TABLE ACCESS MODE: ANALYZED (CLUSTER) OF 'TS$' (CLUSTER)
0 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'I_TS#' (INDEX

SELECT /*+ ALL_ROWS */ COUNT(*)
FROM
ALL_POLICIES V WHERE V.OBJECT_OWNER = :B3 AND V.OBJECT_NAME = :B2 AND
(POLICY_NAME LIKE '%xdbrls%' OR POLICY_NAME LIKE '%$xd_%') AND V.FUNCTION =
:B1

call count cpu elapsed disk query current rows
Rows Row Source Operation
------- ---------------------------------------------------
1 FILTER (cr=3 pr=0 pw=0 time=148 us)
1 TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=43 us)

Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT MODE: ALL_ROWS
1 FILTER
1 TABLE ACCESS MODE: ANALYZED (FULL) OF 'DUAL' (TABLE)

***********************************************************************

Misses in library cache during parse: 6

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- --------SQL*Net message to client 28 0.00 0.00
SQL*Net message from client 28 178.60 331.48
SQL*Net break/reset to client 2 0.00 0.00
db file sequential read 2 0.00 0.00
reliable message 1 0.00 0.00
enq: RO - fast object reuse 1 0.00 0.00
rdbms ipc reply 1 0.00 0.00
log file sync 6 0.00 0.00

As you can see the oradebug utility provides a wealthy of information and serves as a goldmine of resources for the Oracle expert practitioner who must resolve the toughest Oracle problems. It will allow you to develop insight into the Oracle database engine on how the nuts and bolts of the Oracle database really works.

My top five Oracle 11g features

Oracle’s 11g database has received some less-than-stellar press recently — The Pythian Group accused Oracle of releasing misleading adoption rates, and some Eye on Oracle readers don’t see many compelling reasons to upgrade.

The new database does, however, have plenty of new tools. And while they may be costly and time-consuming at first, many users are finding these features very valuable.

So, you ask…what are they?

In no particular order, here is my list of the top five features in 11g that make your upgrade worthwhile, along with some resources to help get you started.

1. Database Replay Tool: This tool provides users with a new way to test database changes and “works like a DVR inside the database,” according to Oracle Corp. in its step-by-step instructions. Before making a change (such as debugging, applying a patch or switching platforms), a user can use Database Replay to capture a database workload and replay it in a test system. Oracle ACE Lutz Hartmann calls it an 11g highlight, and Tim from ORACLE-BASE also provides a thorough explanation on how to use it.

2. SQL Performance Analyzer: This new feature shows the user how a database change, such as an upgrade, would affect SQL performance and allows one to compare different results. Check out SearchOracle.com’s chapter download from the book “Oracle Database 11g SQL” to learn about the optimizer in more detail. Also, you can find some more examples in Tyler Muth’s blog and Oracle’s Database Performance Tuning Guide.

3. Real Application Testing: Real Application testing is the product that combines the Database Replay Tool and SQL Performance Analyzer. The best part of this feature is the ability to detect potential problems with database changes, and see how these changes will affect performance, before actually putting them into production. Read Oracle’s description of Real Application Testing and SearchOracle.com’s conversation with Oracle executives about the product.

4. Data Recovery Advisor: This is one of the new backup and recovery features of 11g. The Data Recovery Advisor automatically diagnoses a problem (such as a physical corruption or datafile inconsistency) and gives repair advice, which the DBA can then choose whether or not to execute. Both Oracle and DBA Ben Prusinski give thorough descriptions of this and other 11g backup and recovery tools.

5. Oracle Data Guard: This tool protects Oracle data by creating and maintaining standby databases that are synchronized with the original production database. If the production database goes down, the standby database can prevent data loss by taking over its role. Data Guard is not a new feature but is certainly enhanced in 11g. This includes failover enhancements, an Active Data Guard option, enhanced security and more — all of which can be read about here.

What are your favorite tools? If you’ve upgraded, what have your experience been like with these tools? If you haven’t upgraded, are these features enough of a reason to do so?

Oracle error when issuing the RECOVER DATABASE command

Whenever I am using the command 'RECOVER DATABASE' to recover my database it is giving the error: 'ORA-00283: recovery sessions cancelled due to errors'
'ORA-00322: log 3 of thread 1 is not current copy'
'ORA-00312: online log 3 thread 1:'/oracle/oracle7//dbs/log3WG73.dbf'


It looks like your only option is to perform incomplete recovery. Recover until cancel and cancel right before attempting to apply recovery with this online redo log. Then open the database with the RESETLOGS option. This will clear the online redo logs.

Before attempting such recovery, I always backup my database files and online redo logs files. That way, if I screw something up, I can go back to the point right before I attempted recovery and try again. I also take a backup after recovery is complete since I wont want to go through this process again should another failure occur.

Important Changes in 10g Statistics Collection

Each new release of Oracle brings enhancements, and 10g has radically changed some important defaults for Oracle statistics collection (using dbms_stats). The one-size-fits-all approach is a great baseline, but the automatic 10g statistics collection may not be just-right for your database.

Oracle 10g does automatic statistics collection and your original customized dbms_stats job (with your customized parameters) will be overlaid.

You may also see a statistics deficiency (i.e. not enough histograms) causing performance issues. Re-analyze object statistics using dbms_stats and make sure that you collect system statistics.

execute dbms_stats.gather_system_stats('start');
-- wait an hour or so
execute dbms_stats.gather_system_stats('stop');

With Oracle Database 10g, there are some new arguments available for the dbms_stats package subprograms. Those changed 10g dbms_stats parameters are granularity and degree.

There are also cases where you need to disable the automatic statistics collection on Oracle10g.

Richard shares these important insights on changes to dbms_stats default behavior in 10g:

“The new default value of METHOD_OPT with 10g is ‘FOR ALL COLUMNS SIZE AUTO’. This basically means that Oracle will automatically decide for us which columns need histograms and which columns don’t based on what it considers to be the distribution of data within a column and based on the “workload” associated with the table (basically are there any SQL statements running in the database referencing columns which might need histograms for those statements to be costed correctly). . .

However in environments with many tables and columns (potentially many thousands) with many users executing many different SQL statements, the ramifications of potentially suddenly having thousands of additional histograms can be disastrous.”

In sum, 10g SQL optimization involves a perpetual trade-off between sub-optimal plans and the un-needed overhead of superfluous or un-referenced histograms.

An exploration of "intelligent histogram creation", is needed, a method that uses AWR to correlate the SQL to the objects, avoiding histograms that are never used, and develop a method to only create histograms that "make a difference".

Sunday, May 18, 2008

How DDL and DML commands work in Oracle

What happens in the background when we execute DDL or DML commands?

First, Oracle parses the statement and ensures that the statement is syntactically correct and semantically correct. Next, Oracle verifies that the user has permissions to perform the statement. If the user can execute the statement, Oracle obtains all locks necessary for the statement to complete. Once the locks have all been obtained, Oracle executes the statement. In some cases, results are returned. If results are returned from the statement, Oracle fetches those results and places the result set in an area called a 'cursor'. The cursor is passed back to the application.

That's the basics anyway! There are variations depending on the exact command being given.


SOURCE : http://searchoracle.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid41_gci1309863,00.html?track=NL-390&ad=638910&asrc=EM_NLT_3601016&uid=5766966

Solving common Oracle errors

TABLE OF CONTENTS
Resources for working with errors
ORA-00000 - ORA-01999
ORA-02000 - ORA-03999
ORA-04000 - ORA-05999
ORA-06000 - ORA-07999
ORA-08000 - ORA-11999
ORA-12000 - ORA-13999
ORA-14000 - ORA-23999
ORA-24000 - ORA-25999
ORA-26000 - ORA-27999
ORA-28000 - ORA-30100
Other error messages
For more information
Oracle9i Database Error Messages
Release 2 (9.2)

Part Number A96525-01

http://download-west.oracle.com/docs/cd/B10501_01/
server.920/a96525/toc.htm





  • Where to get a complete list of all ORA errors
  • Capturing errors from merge statement
  • Perform a check or wait for an error?
  • What should monitoring reports identify
  • Oracle alert log miner
  • Logging the command that caused server error
  • Catching error code that arises in PL/SQL
  • Advanced error checking using a trigger



  • ORA-00000 - ORA-01999
    [ Return to Table of Contents ]

    ORA-00054: resource busy and acquire with NOWAIT specified
    Solutions:

  • Is there a way to stop a rollback?
  • Error trying to rebuild index after cancelled transaction
  • How long does a rollback take?
  • Identifying locks to resolve ORA-01658 and ORA-00054 errors
  • ORA-00054 error with shell scripts

    ORA-00060: deadlock detected while waiting for resource
    Solutions:

  • Deadlock error when a specific batch process runs in parallel

    ORA-00200: controlfile could not be created
    Solutions:

  • Avoiding Oracle errors
  • ORA-00235: controlfile fixed table inconsistent due to concurrent update
    Solutions:

  • Using the RMAN level 0 hot backup process

    ORA-00312: online log string thread string: 'string'
    Solutions:

  • Errors causing Oracle instance to shut down
  • Receiving ORA-313 and ORA-312 errors when trying to open database

    ORA-00313: open failed for members of log group string of thread string
    Solutions:

  • Receiving ORA-313 and ORA-312 errors when trying to open database

    ORA-00320: can not read file header from log 1 thread 1
    Solutions:

  • Getting Oracle errors -- database and Web site are down
  • ORA-00321: ORACLE_HOME Redo1.log
    Solutions:

  • Getting Oracle errors -- database and Web site are down
  • Errors causing Oracle instance to shut down

    ORA-00396: error string required fallback to single-pass recovery
    Solutions:

  • ORA-00396 and ORA-00397 while loading data

    ORA-00397: lost write detected for file string, block string
    Solutions:

  • ORA-00396 and ORA-00397 while loading data

    ORA-00406: COMPATIBLE parameter needs to be string or greater
    Solutions:

  • ORA-00406 when trying to create a function index
  • ORA-00439: feature not enabled: string
    Solutions:

  • Creating a table partition
  • Managed standby error in ARCHIVE MODE
  • Problems with installation of Partitioning

    ORA-00510: internal limit restriction exceeded
    Solutions:

  • Is the number of processes causing listener error?
  • ORA-00600: internal error
    Solutions:

  • System timing out writing to control file
  • Error when updating table in Oracle 8i
  • "Disconnection forced" message
  • ORA-00604: error occurred at recursive SQL level string
    Solutions:

  • Table update fails at recursive SQL level 2
  • Recursive SQL error when using Web app
  • Errors executing Oracle recursive query
  • Getting ORA-00604 error when connecting to database user
  • ORA-00604: error with recursive SQL
  • Unexplained daily errors

    ORA-00903: invalid table name
    Solutions:

  • Trigger error in SQL*Plus
  • ORA-00904: invalid column name
    Solutions:

  • Error accessing all SQL Server fields in Oracle environment
  • Getting invalid column name without access to system tables
  • Error viewing records in table that has abstract column datatype
  • "Invalid column name" error
  • Error on "select timestamp" command
  • SQL execution error ORA-00904

    0RA-00922: missing or invalid option
    Solutions:

  • Substitution variables
  • ORA-00932: inconsistent datatypes
    Solutions:

  • Help creating a script from a view
  • UNION of two Oracle8i views with CLOBs
  • How to get the lengths of values in "long" datatype
  • Unexplained daily errors

    ORA-00942: table or view does not exist
    Solutions:

  • Export errors on Solaris
  • Export errors on Linux
  • Oracle9i R1 allows any user to access any table
  • Errors with export command
  • Unable to select or drop a table

    ORA-00955: name is already used by exsisting object
    Solutions:

  • Installing the recovery catalog from RMAN prompt
  • ORA-00959: tablespace 'string' does not exist
    Solutions:

  • Importing a table that contains LOB segments
  • ORA-00980: synonym translation is no longer valid
    Solutions:

  • Information on ORA-00980
  • ORA-01000: Maximum open cursors exceeded
    Solutions:

  • Errors executing Oracle recursive query
  • ORA-01000 errors on Windows XP

    ORA-01002: fetch out of sequence
    Solutions:

  • ORA-01002 error when trying to describe a table
  • Resolving the ORA-01002 error #1
  • Resolving the ORA-01002 error #2
  • ORA-01017: Invalid username/password
    Solutions:

  • Error when trying to restore a specific table
  • "Invalid username/password" error
  • ORA-01017 error when connecting through Windows XP client
  • Unable to log in to database from desktop

    ORA-01031: insufficient privileges
    Solutions:

  • Trouble inserting large CLOB
  • Password file generation
  • Creating a function-based index
  • "Insufficient privileges" error
  • Logging in to a test database
  • ORA-01031: insufficient privileges trying to restore a database

    ORA-01033: ORACLE initialization or shutdown in progress
    Solutions:

  • Database stopped, showing multiple error messages
  • Getting ORA-01033 when logging in to 9i application
  • Restoring default database in 8i
  • Encountering error while cloning a production database
  • Initialization or shutdown in progress
  • ORA-01033 error when taking backup

    ORA-01034: ORACLE not available
    Solutions:

  • After starting SQL*Plus after 9i install
  • On Linux Fedora Core 2
  • When rebooting 9i
  • Errors during reboot
  • Error accessing database after migration to 9.2.0.3
  • Errors connecting Oracle through SQL*Plus
  • Domain name changes causing error
  • Trouble getting two database instances running
  • Error when starting Oracle
  • Resolving the ORA-01034 error
  • Oracle not available after installing 8i on WinXP Pro
  • ORA-01034 after upgrading to version 9.2
  • ORA-01034: Oracle not available error
  • Resolving the "ORA-01034: ORACLE not available" error
  • "Oracle not available" error
  • Can't log in to database from SQL*Plus
  • Error with tnsping
  • ORA-01034 and ORA-27101 on trying to log in to database
  • Receiving "Oracle is not available" error after restart
  • Receiving ORA-01034 error while connecting
  • Suddenly getting ORA-01034 and ORA-27101
  • Unable to connect to server with Oracle8i
  • Why won't the mount and open happen automatically?

    ORA-01039: insufficient privilege on underlying objects of the view
    Solutions:

  • Insufficient privileges error ORA-01039

    ORA-01053: user storage address cannot be read
    Solutions:

  • ORA-1053 error after 8i installation on Windows 2003

    ORA-01078: failure in processing system parameters
    Solutions:

  • Help with error ORA-01078
  • ORA-01081: cannot start already-running ORACLE - shut it down first
    Solutions:

  • Problems starting one of two databases on same server

    ORA-01089: immediate shutdown in progress - no operations are permitted
    Solutions:

  • When opening database
  • Cause of ORA-1089 error
  • Error when stopping/starting Oracle SID
  • ORA-01092: Oracle instance terminated. Disconnection forced
    Solutions:

  • Database Configuration Assistant not executing
  • Oracle installed, but error when creating db
  • ORA-01092 error during 9i installation
  • ORA-01092 error while executing database creation command
  • ORA-01092 on creating a new database

    ORA-01110: data file string: 'string'
    Solutions:

  • Database stopped, showing multiple error messages
  • Input/output errors
  • ORA-01110 error when not in archive log mode
  • ORA-01113 and ORA-01110 errors on restarting database
  • Too many open files error message

    ORA-01113: file n needs media recovery
    Solutions:

  • ORA-01113 and ORA-01110 errors on restarting database

    ORA-01115: IO error reading block from file string (block # string)
    Solutions:

  • Database stopped, showing multiple error messages
  • User datafile needs media recovery
  • Input/output errors
  • Too many open files error message

    ORA-01122: database file string failed verification check
    Solutions:

  • Database crash during hot backup
  • ORA-1122 error and huge TEMP tablespace

    ORA-01157: cannot identify/lock data file string - see DBWR trace file
    Solutions:

  • ORA-01033 error when taking backup

    ORA-01158: database %s already mounted
    Solutions:

  • Cloning a production database into a development server

    ORA-01403: no data found
    Solutions:

  • Errors during import of a dump file

    ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found
    Solutions:

  • ORA-1452 error after export/import

    ORA-01501: CREATE DATABASE failed
    Solutions:

  • Avoiding Oracle errors
  • ORA-01503: CREATE CONTROLFILE failed
    Solutions:

  • Cloning a production database into a development server

    ORA-01535: rollback segment 'name' already exists
    Solutions:

  • Errors when importing from same version
  • ORA-01543: tablespace 'TEMP' already exists
    Solutions:

  • Errors when importing from same version
  • ORA-01555: snapshot too old: rollback segment number string with name "string" too small
    Solutions:

  • Help with ORA-01555: snapshot too old
  • Help with ORA-01555 during export
  • Exporting a table that is constantly updated
  • RBS monitor to catch ORA-01555 errors
  • Can't escape ORA-01555 error!
  • Cause of "snapshot too old" error
  • Errors and slowness during export

    ORA-01593: rollback segment optimal size (string blks) is smaller than the computed initial size (string blks)
    Solutions:

  • Errors and slowness during export

    ORA-01594: attempt to wrap into rollback segment (string) extent (string) which is being freed
    Solutions:

  • Errors and slowness during export

    ORA-01630: max # extents (string) reached in temp segment in tablespace string
    Solutions:

  • Resolving the ORA-01630 error
  • ORA-01650: unable to extend rollback segment string by string in tablespace string
    Solutions:

  • Errors and slowness during export

    ORA-01652: unable to extend temp segment by string in tablespace string
    Solutions:

  • Help with ORA-01652 error -- unable to extend temp segment
  • Solving ORA-1652 error
  • High IO program is throwing ORA-01652 errors
  • ORA-01652: add or resize datafile?
  • Resolving errors ORA-01652 and ORA-04031
  • Errors during building of tables
  • ORA-01652 error when running query to delete large amount of data
  • Questions about ORA-1652 error

    ORA-01653: unable to extend table xxx by xxx
    Solutions:

  • Action can't be handled

    ORA-01658: unable to create INITIAL extent for segment in tablespace string
    Solutions:

  • Identifying locks to resolve ORA-01658 and ORA-00054 errors

    ORA-01756: quoted string not properly terminated
    Solutions:

  • Error inserting data into customer table
  • Error inserting single quote into string

    ORA-01758: table must be empty to add mandatory (NOT NULL) column
    Solutions:

  • Adding a new NOT NULL field to an existing table
  • ORA-01940: cannot drop a user that is currently connected
    Solutions:

  • Deleting a user from a tablespace


    ORA-02000 - ORA-03999
    [ Return to Table of Contents ]

    ORA-02019: connection description for remote database not found
    Solutions:

  • Why am I getting the ORA-02019 error?

    ORA-02035: illegal bundled operation combination
    Solutions:

  • When does 02035 error occur?

    ORA-02085: database link string connects to string
    Solutions:

  • Problem with dblink: ORA-02085
  • Setting GLOBAL_NAMES to false to use dblink
  • Error after creating DBLink

    ORA-02201: sequence not allowed here
    Solutions:

  • Can triggers be applied to sequence objects?
  • ORA-02266: unique/primary keys in table referenced by enabled foreign keys
    Solutions:

  • Truncate tables using PL/SQL
  • ORA-02449: unique/primary keys in table referenced by foreign keys
    Solutions:

  • Error when dropping objects
  • Find all the 'son' constraints
  • ORA-03001: unimplemented feature
    Solutions:

  • Solving ORA-03001
  • ORA-03113: end-of-file on communication channel
    Solutions:

  • Whenever the client is idle for five minutes
  • When trying to start up
  • ORA-03113 when running a query
  • Error when creating a queue table
  • Problem installing Oracle on Red Hat Linux
  • Failure installing 9i Database Configuration Assistant Tool on Win2000
  • Getting end of communication error when submitting a query
  • Solving error ORA-03113
  • Archive log files generating quickly
  • ORA-03113 error when querying table
  • ORA-03113 trying to rebuild indexes
  • What is the ORA-03113 error?
  • ORA-03114: not connected to ORACLE
    Solutions:

  • During the initializing database step
  • Resolving the ORA-03114 error
  • ORA-03121: no interface driver connected
    Solutions:

  • ORA-03121 while attaching database
  • What is the solution of the ORA-03121 error?

    ORA-03232: unable to allocate an extent of x blocks from tablespace x
    Solutions:

  • ORA-03232 error


    ORA-04000 - ORA-05999
    [ Return to Table of Contents ]

    ORA-04030: out of process memory
    Solutions:

  • Help with ORA-04030 -- out of process memory
  • RMAN process ran out of memory
  • ORA-04030: Out of process memory

    ORA-04031: unable to allocate string bytes of shared memory ("string","string","string","string")
    Solutions:

  • In the job queue process
  • Recursive SQL error when using Web app
  • Consistently getting ORA-04031 error
  • Error during patch installation
  • Need fixes for ORA-04031
  • Help with ORA-4031 error
  • Resolving errors ORA-01652 and ORA-04031
  • Error when trying to reduce temp tablespace
  • Resolving a 04031 error
  • Resolving the ORA-04031 error
  • Minimizing generation of archive logs

    ORA-04043: object string does not exist
    Solutions:

  • Workaround for ORA-04043: Can't describe object using db_link
  • ORA-04052: error occurred when looking up remote object name
    Solutions:

  • Error creating database link
  • ORA-04076: invalid NEW or OLD specification
    Solutions:

  • How to solve ORA-04076 error?

    ORA-04091: table string.string is mutating, trigger/function may not see it
    Solutions:

  • Selecting rows from the same table in the trigger
  • Resolving ORA-04091
  • Workaround for the ORA-04091 error when checking ranges
  • Resolving an ORA-04091 error
  • Timestamping all rows of some tables on insert and update
  • Writing an ON INSERT trigger without encountering mutating table error
  • ORA-04098: trigger 'SYSTEM.LOG_ERRORS_TRIG' is invalid and failed re-validation
    Solutions:

  • Trigger error in SQL*Plus



  • ORA-06000 - ORA-07999
    [ Return to Table of Contents ]

    ORA-06401: NETCMN: invalid driver designator
    Solutions:

  • When trying to connect from Dreamweaver
  • When using SQL*Plus on host computer
  • Password creation in Oracle Developer 6i
  • Error using JDBC to query local database
  • Error trying to insert record through database link
  • Resovling the ORA-06401 error
  • ORA-06508: PL/SQL: could not find program unit being called
    Solutions:

  • Resolving the ORA-06508 error
  • ORA-06512: Backtrace message as the stack is unwound by unhandled exceptions
    Solutions:

  • What is ORA-06512?
  • Errors during import of a dump file
  • Problems with exp utility after migration

    ORA-06532: Subscript outside of limit
    Solutions:

  • New user error
  • Determining the reason for the error message
  • ORA-06544: PL/SQL: internal error, arguments: [string], [string], [string], [string], [string], [string], [string], [string]
    Solutions:

  • How to resolve ORA-06544
  • ORA-06550: line string, column string:string
    Solutions:

  • Error when calling stored procedure
  • Help with ORA-06550 error
  • Resolving error ORA-06550
  • Cause of ORA-06550 error
  • Error during export of database
  • Error when executing procedures
  • Receiving error at export command
  • Receiving ORA-06550 error
  • Ways to handle an error on an INSERT statement

    ORA-06553: PLS-string: string
    Solutions:

  • Error calling stored procedure from Java
  • Removing Services entries, fixing ORA-06553
  • Problems with exporting database after modifying database characterset

    ORA-06554: package DBMS_STANDARD must be created before using PL/SQL
    Solutions:

  • Help with ORA-06554 regarding package DBMS_STANDARD
  • ORA-07445: exception encountered: core dump [10]
    Solutions:

  • SQL subquery errors



  • ORA-08000 - ORA-11999
    [ Return to Table of Contents ]

    ORA-10033: sort run information (SRD*/SRS*)
    Solutions:

  • ORA-10033 error won't let me connect

    ORA-10902: disable seghdr conversion for ro operation
    Solutions:

  • Cause of ORA-10902 error


    ORA-12000 - ORA-13999
    [ Return to Table of Contents ]

    ORA-12154: TNS-12154: TNS:could not resolve service name
    Solutions:

  • No connection to run Forms
  • Copying tables from one DB to another via database link
  • Configuring the TNSNAMES.ORA file
  • Connecting to 10g database after rebooting server

    ORA-12203: TNS-12203: TNS:unable to connect to destination
    Solutions:

  • On home computer
  • After installing 7.3
  • Unable to install Developer 2000
  • Unable to connect to destination
  • Resolving the PDE-POCO11 ORA-12203 error
  • Problem connecting to a remote database
  • Database crash during hot backup
  • Problems connecting to database after installing Forms

    ORA-12502: TNS-12502: TNS:listener received no CONNECT_DATA from client
    Solutions:

  • Resolving the TNS-12502 error
  • ORA-12505: TNS-12505: TNS:listener could not resolve SID given in connect descriptor
    Solutions:

  • Resolving the ORA-12505 TNS error
  • ORA-12514: TNS-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor
    Solutions:

  • When trying to create db link
  • Error connecting through SQL*Plus
  • Resolving the ORA-12514 TNS listener error
  • Resolving the ORA-12514
  • Accessing an Oracle instance with SQL*Plus
  • ORA-12514 error when connecting through SQL*Plus
  • Problems accessing 10g through SQL*Plus and Enterprise Manager
  • Problems connecting after installation of 10g

    ORA-12528: TNS:listener: all appropriate instances are blocking new connections
    Solutions:

  • ORA-12528 after shutting down and restarting instance

    ORA-12531: TNS-12531: TNS:cannot allocate memory
    Solutions:

  • No new connections allowed

    ORA-12533: TNS-12533: TNS:illegal ADDRESS parameters
    Solutions:

  • ORA-12533 during installation
  • ORA-12535: TNS-12535: TNS:operation timed out
    Solutions:

  • Timed out error and slow computer performance
  • Error since converting to 9.2
  • Getting ORA-12535 since upgrade
  • "TNS: Operation timed out" error
  • Error in ODBC connections
  • TNS-12535 error connecting to remote machine

    ORA-12537: TNS connection closed
    Solutions:

  • "TNS:connection closed" error
  • ORA-12537 error when trying to connect

    ORA-12541: TNS: no listener
    Solutions:

  • Causes
  • Connecting to database through forms builder
  • No listener error when logging in to Oracle8
  • No listener error after install on XP
  • Receiving ORA-12541 error trying to connect through Forms/Reports
  • ORA-12542: TNS: address already in use
    Solutions:

  • Error affecting nightly batch jobs
  • ORA-12545: TNS-12545: Connect failed because target host or object does not exist
    Solutions:

  • Error accessing 9i on Linux
  • Error in Oracle connection
  • Resolving error ORA-12545
  • Resolving error ORA-12545
  • Error message ORA-12545 during remote connect
  • ORA-12545 error trying to open forms in Oracle 8i on Windows 2000
  • ORA-12545 error when connecting to database via client

    ORA-12546: TNS: permission denied
    Solutions:

  • DBA cannot connect to database
  • Help with listener error
  • ORA-12560: TNS-12560: TNS:protocol adapter error
    Solutions:

  • When connecting to Oracle 9.0.2 on Win2K
  • When logging in to svrmgr after install
  • When connecting over dial-up
  • When installing 8.1.7 on Windows 2000
  • When creating new database
  • When running exp
  • Trouble connecting to listener after install
  • Error running a form in a browser
  • Connection problem with Forms/Reports
  • Resolving ORA-12560 error
  • Uninstalling Oracle9i
  • "TNS:Could not resolve Service name" error
  • Oracle 9i login error
  • Receiving "TNSListener protocol adapter error" during installation
  • Unable to connect to 9i on Windows 98
  • Unable to log in after installing Oracle Client 9i

    ORA-12571: TNS-12571: TNS:packet writer failure
    Solutions:

  • Resolving the "ORA-12571: TNS:Packet writer failure" error
  • ORA-12571 error with Oracle 8i on Windows XP

    ORA-12638: Credential retrieval failed
    Solutions:

  • Another Oracle server from a different LAN
  • "TNS: Operation timed out" error
  • ORA-12638 and ORA-01031 on Windows cluster
  • Problems with Oracle applications after upgrading to XP

    ORA-12640: TNS-12640: Authentication adapter initialization failed
    Solutions:

  • Backup batch jobs not running
  • Error creating database link
  • Database link works for a few days, then ORA-12640
  • ORA-12663: TNS-12663: Services required by client not available on the server
    Solutions:

  • Error using DESC across dblink
  • ORA-12801: error signaled in parallel query server string
    Solutions:

  • Errors during building of tables


    ORA-14000 - ORA-23999
    [ Return to Table of Contents ]

    ORA-1650: unable to extend rollback segment R05 by 512 in tablespace RBS Failure to extend rollback segment 6 because of 1650 condition.
    Solutions:

  • Solving the ORA-1650 error message



  • ORA-24000 - ORA-25999
    [ Return to Table of Contents ]

    ORA-24008: queue table string.string must be dropped first
    Solutions:

  • How to drop the example schemas from Oracle9i
  • ORA-24801: illegal parameter value in OCI lob function
    Solutions:

  • Export/import on table with clob datatype column

    ORA-25143: default storage clause is not compatible with allocation policy
    Solutions:

  • Error inserting new record in table
  • ORA-25150: ALTERING of extent parameters not permitted
    Solutions:

  • Error inserting new record in table



  • ORA-26000 - ORA-27999
    [ Return to Table of Contents ]

    ORA-27038: skgfrcre: file exists
    Solutions:

  • Avoiding ORA-27038 when creating a tablespace in 8i
  • Avoiding Oracle errors
  • ORA-27041: unable to open file
    Solutions:

  • Errors causing Oracle instance to shut down
  • Too many open files error message

    ORA-27072: skgfdisp: I/O error
    Solutions:

  • Database stopped, showing multiple error messages
  • Input/output errors

    ORA-27091: skgfqio: unable to queue I/O
    Solutions:

  • Getting Oracle errors -- database and Web site are down
  • Errors causing Oracle instance to shut down
  • Input/output errors

    ORA-27101: shared memory realm does not exist
    Solutions:

  • When trying to connect to the database
  • Errors during reboot
  • Unable to login after installation
  • Trouble getting two database instances running
  • Error when starting Oracle
  • "Oracle not available" error
  • Can't log in to database from SQL*Plus
  • ORA-01034 and ORA-27101 on trying to log in to database
  • ORA-27101 error after moving DB to new domain
  • Suddenly getting ORA-01034 and ORA-27101
  • Why won't the mount and open happen automatically?

    ORA-27123: unable to attach to shared memory segment
    Solutions:

  • Error accessing database after migration to 9.2.0.3
  • Error after upgrading to 9i Data Server patch set
  • ORA-27123 while trying to create database after Red Hat Linux installation
  • ORA-27125: unable to create shared memory segment
    Solutions:

  • When creating Oracle database on Fedora Core 2



  • ORA-28000 - ORA-30100
    [ Return to Table of Contents ]

    ORA-28030: Server encountered problems accessing LDAP directory service
    Solutions:

  • Using dblink to access a different server

    ORA-28547: connection to server failed, probable Net8 admin error
    Solutions:

  • ORA-28547 trying to set up practice database

    ORA-29516: Aurora assertion failure: string
    Solutions:

  • Hit an error
  • "Aurora assertion failure" error
  • ORA-30036: unable to extend segment by string in undo tablespace 'string'
    Solutions:

  • Error loading data into target
  • ORA-30036 error when executing update query


    Other error messages
    [ Return to Table of Contents ]

    SQL*Plus error messages

    SP2-0678: Column or attribute type can not be displayed by SQL*Plus
    Solutions:

  • What is error SP2-0678?

    Import error messages

    IMP-00009: abnormal end of export file Solutions:

  • Dump file error
  • Error during import from 9i to 10g
  • Errors during import of dump file

    IMP-00010: not a valid export file, header failed verification
    Solutions:

  • Create tablespace to resolve IMP-00010 error?

    IMP-00015: following statement failed because the object already exists
    Solutions:

  • Which IMP messages are warnings and which are errors?

    IMP-00022: failed to process parameters, type 'IMP HELP=Y' for help
    Solutions:

  • Which IMP messages are warnings and which are errors?

    IMP-00028: partial import of previous table rolled back
    Solutions:

  • Dump file error
  • Error during import from 9i to 10g
  • Errors during import of dump file

    Export error messages

    EXP-00002: error in writing to export file
    Solutions:

  • Errors with character set in export

    ORADIM command syntax errors

    DIM-00019: Create Service Error
    Solutions:

  • "Create service" error when starting DBCA


    SOURCE : http://searchoracle.techtarget.com/news/article/0,289142,sid41_gci933283,00.html?mo=1&Offer=PRbur0506fg

  •