代码之家  ›  专栏  ›  技术社区  ›  NobodyMan

尝试使用exp命令导出时出现ora-00980错误

  •  2
  • NobodyMan  · 技术社区  · 16 年前

    我正在尝试使用exp命令导出Oracle10数据库中的模式。让我们称之为“myschema”模式和tns名称“mydb”,以保护无辜者的姓名。总之,这是我使用的命令行

    exp myschema/mypassword@mydb file=myschema.dmp grants=y
    

    当我尝试在其他实例上运行导出时,这是有效的,但是当我尝试“mydb”时,会得到以下错误。

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    
    Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    server uses UTF8 character set (possible charset conversion)
    . exporting pre-schema procedural objects and actions
    . exporting foreign function library names for user MYSCHEMA
    . exporting PUBLIC type synonyms
    EXP-00008: ORACLE error 980 encountered
    ORA-00980: synonym translation is no longer valid
    EXP-00000: Export terminated unsuccessfully
    

    有人有什么想法吗?如果需要进一步的信息,请告诉我,我会相应地编辑这个问题。

    1 回复  |  直到 16 年前
        1
  •  1
  •   DCookie    16 年前

    如果JVM安装已损坏,则可能发生这种情况。尝试:

    SELECT comp_id, schema, status, version, comp_name
      FROM dba_registry
     ORDER BY 1;
    

    如果用JavaVM的COMPUIDID返回具有“无效”状态的行,则需要重新安装Java VM。

    metalink文档276554.1具有这样做的过程。如果可以轻松恢复,则重新创建数据库并重新加载数据库可能会更容易。

    编辑:我找到了 Oracle-base link 如果海报声称这将卸载并重新安装JVM(在Unix上),我认为它可以在Windows上使用一些小的mods:

    ( 警告! 如果这里出了问题,可以认真地清理数据库。 先备份! )

    cd $ORACLE_HOME/javavm/install
    sqlplus / as sysdba
    @rmjvm.sql
    @initjvm.sql
    
    -- Recompile invalid objects
    @?/rdbms/admin/utlrp
    

    metalink的注释要复杂得多。