Monday 7 March 2016

EXP-00003: no storage definition found for segment(0, 0)

I experienced this when exporting data from an oracle database.

I need to use EXP, because dpump writes to dirs on the database server and I do not have access to the database server.

Once I own the server, I use expdp / impdp - but exp is my friend before then.

EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                       FF34S001
EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                       FF34S002
EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                       FF34S003
EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                       FF34S01W
EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                        T76B001
EXP-00003: no storage definition found for segment(0, 0)
. . exporting table                        T76B002
EXP-00003: no storage definition found for segment(0, 0)

When running the commands, you can see the above errors.

This is generally for the empty tables, so this is not the worst thing in the world, but I want the table definitions.  This is a bug in oracle that seems to affect tables that have not had any rows inserted.

My client was on 11.2.0.1
H:\data\backups>sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 7 10:51:53 2016

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

Enter user-name:

I note that the client I'm using is 11.2.0.1 and the database server is linux 11.2.0.4 - there is a known bug with this combination of client and server.   Don't bother with trying COMPRESS=Y in your command, it is not going to work.

H:\data\backups>exp PRODDTA/PASSWORD@DB01 ROWS=N COMPRESS=Y FILE=PRODDTA_NODATA_COMP.exp

As you can see, I tried with the above.

This sent me on a search for the 11.2.0.4 patch set.

1339067711.2.0.4.0 PATCH SET FOR ORACLE DATABASE SERVER 
Goto MOS for this, use the patches tab and you'll see a ton of downloads.

Eventually I found the correct client download:

p13390677_112040_WINNT_3of6.zip

Note, that this is 3of6

After downloading and applying this patch, all started working well!  It was not quite that easy.  The exp command was only available in the e1local directory, which was not a client install - but a full database install.  The client on the machine was a 32 bit client, but did not have the utilities installed, which exp is part of - so therefore this client did not have exp and could not be upgraded.

So, I had to install a new client (using the download above), only selecting utilities.  I then needed to create network\admin\tnsnames.ora in the new installation dir and exp work...  No more errors.




No comments: