exp - EXP-00003: no storage definition found for segment(xx, yy)

Wireless
Дата: 01.06.2006 16:44:37
Что означает ошибка
автор
EXP-00003: no storage definition found for segment(хх, уу)
?

Делаю экспорт одной схемы. Множество объектов нормально экспортируются,
а иногда вот такие ошибки возникают... :(
__mike__
Дата: 01.06.2006 16:47:23
EXP-00003 no storage definition found for segment(number, number)

    Cause: Export could not find the storage definitions for a cluster, index, or table.

    Action: Record the accompanying messages and report this as an Export internal error to Oracle Support Services.
Viewer
Дата: 01.06.2006 17:01:40
Wireless, sorry, но давно уже пора привыкнуть пользоваться поиском
Wireless
Дата: 01.06.2006 17:03:55
Посмотрел дамп-файл. Таблицы нормально экспортнулись, но у таких таблиц отсутствует фраза STORAGE в описании.

Какой-либо зависимости не нашел почему большинство таблиц нормально прошло, а у некоторых такая ошибка... :(
Alexey Yatsenko
Дата: 02.06.2006 12:56:41
Мне в свое время помогла статья 274076.1:

This problem during export has been introduced with the 9.2.0.5 patchset. In that patchset, a fix has been included for Bug 2948717 "Queries against DBA_SEGMENTS can be slow accessing BYTES/BLOCKS/EXTENTS columns". Note that this fix has also been implemented in Oracle10g Release 1 (10.1.0.2.0).
...
As a result of that fix, an export from the 9.2.0.5.0 or any higher release database (e.g. 9.2.0.6.0 or 10.1.0.4.0) with a lower release export utility, e.g. 9.2.0.4.0 or 8.1.7.4.0 will now produce the EXP-3 error.

The EXP-3 error only occurs when the export from the 9.2.0.5.0 or any higher release database (e.g. 9.2.0.6.0 or 10.1.0.4.0) is done with a lower release export utility, e.g. 9.2.0.4.0. The reason to run an export from a 9.2.0.5.0
or any higher release database (e.g. 9.2.0.6.0 or 10.1.0.4.0) with a 9.2.0.4.0 export utility, is to import the export dump file later into a target database of that lower release.

...
Workaround 2
-------------

a. Make a note of the export definition of exu9tne from $ORACLE_HOME/rdbms/admin/catexp.sql

b. Copy this to a new file and add:
"UNION ALL select * from sys.exu9tneb"
to the end of the definition

e.g. In the 9.2.0.5.0 or any higher release source database (e.g. 9.2.0.6.0 or 10.1.0.4.0), the workaround view would be:

CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT * from sys.exu9tneb
/

c. Run this as the SYS user (!) against the database that needs to be exported.

d. Re-run the export as required.

e. Put back the original definition of exu9tne as obtained in step a.

Note: only use this workaround when absolutely necessary, and don't forget to put back the original definition of the view SYS.exu9tne as mentioned in step e.