0

I use the command exp parfile=/opt/p.par to export the database, the content of the p.par file is

userid=system/sys123
file=/opt/exp.dat
log=/opt/exp.log
compress=no
direct=y
full=y
rows=no

This is the error Log

About to export the entire database ...
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting roles
. exporting resource costs
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces
. exporting foreign function library names
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions
. exporting system procedural objects and actions
. exporting pre-schema procedural objects and actions
. exporting cluster definitions
. about to export AUDSYS's tables via Direct Path ...
. about to export SYSTEM's tables via Direct Path ...
. . exporting table              AQ$_KEY_SHARD_MAP
...
. about to export SYS$UMF's tables via Direct Path ...
. about to export MDDATA's tables via Direct Path ...
. exporting synonyms
. exporting views
. exporting referential integrity constraints
. exporting stored procedures
. exporting operators
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting triggers
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
EXP-00061: unable to find the outer table name of a nested table 
EXP-00000: Export terminated unsuccessfully

I queried the meaning of EXP-00061 is

Error code: EXP-00061
Description: unable to find the outer table name of a nested table
Cause: While exporting a bitmap index or posttable action on an inner nested table, the name of the outer table could not be located, using the NTAB$ table.
Action: Verify the table is properly defined.

but this information is beyond my comprehension. I tried to change full=y to owner=system, the export works fine. If it is a full database export, there will be an EXP-00061 error. How can I avoid this problem please? (try not to use expdp)

kldd
  • 39
  • 5
  • Why not use expdp? That said, there appears to be some invalid objects in your application schema, which prevents the export from working. You'll have to identify and fix the underlying object problems before the export will work. It could also be that you've encountered an object type that `exp` doesn't support, and you will have to use datapump regardless. Do you get the same error with `expdp`? – pmdba Aug 17 '22 at 15:24
  • @pmdba expdp will not have this error, there are the following reasons for not using expdp 1) The directory needs to be created in the database in advance. In fact, the par file is created by the user, so the export directory cannot be known in advance. 2) The dump file and log file exported by expdp are in the "directory" directory, and the directory cannot be specified to store the files separately. 3) The files exported by expdp can only be used by impdp, which means that the imp command needs to be modified. – kldd Aug 18 '22 at 07:24
  • @pmdba If the error is caused by the new features of 19c, why does the exp command work normally when exporting the specified schema, but is wrong when exporting the full database? – kldd Aug 18 '22 at 07:27
  • A full database export includes *all* schemas. Apparently you've got at least one that has invalid objects. Specifying the `system` schema should pretty much always succeed because `system` doesn't (or certainly *shouldn't*) own any objects to export. That said, Oracle has de-supported the `exp` utility for general use as of Oracle 11g. It may not even be included in future releases, so you really need to reconsider the use of it in your architecture. https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-original-export-utility.html – pmdba Aug 18 '22 at 10:42
  • @pmdba Created a new database test exp command also had this problem. I saw this sentence in the link ```original Export is desupported for general use as of Oracle Database 11g``` Does it mean that exp can handle all database objects in 11g, However, it cannot handle some of the newly added database objects in 19c, so an error will be reported. If that's the case, I can only think about changing the code – kldd Aug 20 '22 at 03:17
  • That means, as I said in my earlier comment, that exp is unsupported for anything *including* 11g or later versions - basically for almost 20 years now. I highly recommend that you change your code. – pmdba Aug 20 '22 at 04:59

0 Answers0