ITPub博客

首页 > Linux操作系统 > Linux操作系统 > EXP-00003: no storage definition found for segment(9, 907)

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

原创 Linux操作系统 作者:zhanglei_itput 时间:2009-03-10 15:20:06 0 删除 编辑

今天在用9.2.0.1客户端exp导出9.2.0.7的source数据库时,遇到一个错误:
EXP-00003: no storage definition found for segment(9, 907),查了一下metalink
原因为:9.2.0.7上的db中的表有lob对象,夸了1个以上的区,这样的对象在用低于9.2.0.5 client 端exp时候,会出现这种问题。
Symptoms
Your Portal is installed in a custom database version 9.2.0.5 or higher.
You are running the export script. from your transport set from the MIDTIER_HOME.
The export log file generated by the export from the command line shows the following error:
EXP-00003: no storage definition found for segment(%lu, %lu)

Cause
The error is caused by a database bug as explained in the following note:
Note 3291851.8  Bug 3291851 - EXP-3 exporting LOB from 9205 or higher DB with <9205 export >
Table being exported is in Oracle9i 9.2.0.5.0 or any higher source database.
Table itself or Large Object (LOB) in table has more than one extent allocated.
The version of the Export utility is Pre-9.2.0.5.0.
Export can be either table level or schema level or database level.
Solution
Workaround 1
Run the export script. from the DATABASE_HOME.(在数据库服务器上运行exp)
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: (在目标数据库使用sys用户,执行如下SQL创建新的view,执行完后,记得要还原):
   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.
参考地址:http://www.eygle.com/archives/2009/02/oracle_exp_00003.html

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9252210/viewspace-566589/,如需转载,请注明出处,否则将追究法律责任。

下一篇: what is ORACLE ACE
请登录后发表评论 登录
全部评论

注册时间:2009-02-10

  • 博文量
    400
  • 访问量
    1117006