You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 12C执行expdp全库导出失败,请求技术排查

问题与解决方法

执行的导出命令

expdp SHELAZ/SHELAZ full=Y directory=dpump_dir dumpfile=SHELAZ20221215.dmp logfile=logfile.log

报错信息(中文翻译)

已连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
带有分区、OLAP、高级分析和实时应用测试选项

ORA-31626: 作业不存在
ORA-31633: 无法创建主表 "SHELAZ.SYS_EXPORT_FULL_90"
ORA-06512: 在 "SYS.DBMS_SYS_ERROR" 第 95 行
ORA-06512: 在 "SYS.KUPV$FT" 第 1048 行
ORA-01658: 无法在表空间 SHELAZDISTDATA 中为段创建初始区

查询结果

执行查询语句:select * from dba_datapump_jobs
返回85条记录,所有作业状态均为未运行(NOT RUNNING)


解决步骤

1. 清理残留的Data Pump作业

大量未运行的残留作业可能导致命名冲突或资源占用,需清理:

  • 方式一:通过PL/SQL停止并删除作业
    DECLARE
      v_jobname VARCHAR2(100);
      CURSOR c_jobs IS
        SELECT job_name FROM dba_datapump_jobs WHERE state = 'NOT RUNNING' AND owner = 'SHELAZ';
    BEGIN
      OPEN c_jobs;
      LOOP
        FETCH c_jobs INTO v_jobname;
        EXIT WHEN c_jobs%NOTFOUND;
        DBMS_DATAPUMP.STOP_JOB(DBMS_DATAPUMP.ATTACH(v_jobname, 'SHELAZ'));
        DBMS_DATAPUMP.DETACH(v_jobname);
      END LOOP;
      CLOSE c_jobs;
    END;
    /
    
  • 方式二:直接删除对应的主表(确认作业无用时使用)
    DROP TABLE SHELAZ.SYS_EXPORT_FULL_90 PURGE;
    -- 若存在其他SYS_EXPORT_FULL_xx格式的残留主表,可同理删除
    

2. 解决表空间空间不足问题

核心错误ORA-01658表明表空间SHELAZDISTDATA无足够空间创建初始段,可通过以下方式处理:

  • 添加新数据文件并开启自动扩展
    ALTER TABLESPACE SHELAZDISTDATA ADD DATAFILE '/oradata/new_shelazdistdata.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
    
  • 扩展现有数据文件
    -- 调整现有数据文件大小
    ALTER DATABASE DATAFILE '/oradata/existing_shelazdistdata.dbf' RESIZE 500M;
    -- 开启自动扩展
    ALTER DATABASE DATAFILE '/oradata/existing_shelazdistdata.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
    

3. 重新执行导出命令

完成上述操作后,重新运行初始的expdp命令即可。


内容的提问来源于stack exchange,提问作者Shelton Tapiwanashe Ndindana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:20:29