Home » RDBMS Server » Server Utilities » Error using sqlloader
Error using sqlloader [message #160758] Tue, 28 February 2006 04:40 Go to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member
Does anyone know what these errors mean? i recieved this during last nights load. (We upgraded to 9.2.0.5 yesterday)

SQL*Loader-951: Error calling once/load initialization
ORA-00604: error occurred at recursive SQL level 1
ORA-00054: resource busy and acquire with NOWAIT specified
icon8.gif  Re: Error using sqlloader [message #160764 is a reply to message #160758] Tue, 28 February 2006 05:03 Go to previous messageGo to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member
In addition to the above... the index has become in an unusable state... Mad
Re: Error using sqlloader [message #160789 is a reply to message #160764] Tue, 28 February 2006 06:31 Go to previous messageGo to next message
orausern
Messages: 826
Registered: December 2005
Senior Member
What that error means is: -from the docs:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96525/e0.htm#1001560

ORA-00054 resource busy and acquire with NOWAIT specified

Cause: The NOWAIT keyword forced a return to the command prompt because a resource was unavailable for a LOCK TABLE or SELECT FOR UPDATE command.

Action: Try the command after a few minutes or enter the command without the NOWAIT keyword.

So the table, to which you are trying to add the records, got locked...so check if anyone else has locked the table, -if so then ask that user to end his transaction and ensure that the table is no more locked (check this out querying v$locked_object etc)
and try to rerun the sql loader commands.

also rebuild the index first.
Re: Error using sqlloader [message #160790 is a reply to message #160789] Tue, 28 February 2006 06:37 Go to previous messageGo to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member
I tried that but the index becomes unusable everytime i try to reload the data (after rebuilding the index)

[Updated on: Tue, 28 February 2006 06:38]

Report message to a moderator

Re: Error using sqlloader [message #160794 is a reply to message #160790] Tue, 28 February 2006 06:47 Go to previous messageGo to next message
orausern
Messages: 826
Registered: December 2005
Senior Member
Ok, but has anyone else locked this table? to find out try:

select object_name from user_objects where object_id in (select object_id from v$locked_object);

Re: Error using sqlloader [message #160795 is a reply to message #160794] Tue, 28 February 2006 06:49 Go to previous messageGo to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member
No i just rebooted it. and im the only user using it.
Re: Error using sqlloader [message #160796 is a reply to message #160795] Tue, 28 February 2006 06:50 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
Is this a direct load?
Re: Error using sqlloader [message #160797 is a reply to message #160796] Tue, 28 February 2006 06:53 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
If so this is an expected behaviour.

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch09.htm#1007759
Re: Error using sqlloader [message #160801 is a reply to message #160758] Tue, 28 February 2006 07:04 Go to previous messageGo to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member

It looks like that is the case. Is there a way i can avoid this without changing the load method from Direct to Conventional?
Re: Error using sqlloader [message #160804 is a reply to message #160801] Tue, 28 February 2006 07:19 Go to previous messageGo to next message
orausern
Messages: 826
Registered: December 2005
Senior Member
thanks to Mahesh..I was not aware about the indexes getting unusable behavior...now one question is: after rebooting also you get these errors?:

SQL*Loader-951: Error calling once/load initialization
ORA-00604: error occurred at recursive SQL level 1
ORA-00054: resource busy and acquire with NOWAIT specified
Re: Error using sqlloader [message #160806 is a reply to message #160801] Tue, 28 February 2006 07:23 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
>> Is there a way i can avoid this without changing the load method from Direct to Conventional
Depends ( Universal answer for any question in Oracle Smile ).
The most frequent reason for unusable indexes are duplicate keys on unique contraint column. Can you avoid it? Most probably no. In most cases the pre-process /post-process for sqlldr takes more time the load itself.If this is scripted environment, you can check for such indexes and rebuild them. Else, disabe constraints, load,enable constraints.
With direct load, you by-pass a certain RDBMS layers. So the duplicated data is NOT seen until the load is done. when sql*loader re-enables those constraints , finds some data are duplicated and so leaves the index in UNUSABLE state.
For a few certain cases, you use SKIP UNSABLE INDEXES (But not for all. Your business may not allow it).

[Updated on: Tue, 28 February 2006 07:30]

Report message to a moderator

Re: Error using sqlloader [message #160813 is a reply to message #160806] Tue, 28 February 2006 08:04 Go to previous messageGo to next message
ziggy25
Messages: 206
Registered: July 2005
Senior Member
Mahesh Rajendran wrote on Tue, 28 February 2006 07:23

>>Else, disabe constraints, load,enable constraints.



Do you mean disable constraints, run the load then enable them? When i re-enable the constraints wouldnt the same thing happen?
Re: Error using sqlloader [message #160817 is a reply to message #160813] Tue, 28 February 2006 08:17 Go to previous message
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
>> constraints wouldnt the same thing happen
I take it back. My statement was ambiguous and very trivial.
It is not in context here ( Becuase sqlldr direct load does it for you. Disable certain thingies, load, enable them back).
As said before, you cannot avoid this index maintenance in all cases ( unless you can fix the data before you are loading).

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch09.htm#1008056

[Updated on: Tue, 28 February 2006 08:18]

Report message to a moderator

Previous Topic: Connection Failed
Next Topic: export/import and files size
Goto Forum:
  


Current Time: Fri Jul 05 18:46:35 CDT 2024