重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 29|回复: 0
打印 上一主题 下一主题

[Oracle] Data Pump 导出报错 ORA-31634 & ORA-31664

[复制链接]
跳转到指定楼层
楼主
发表于 前天 22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
expdp 数据库全库或用户导出脚本时,突然收到以下报错,导致备份脚本直接中断:

[oracle@esb01 scripts]$ ./expdp.sh

Export: Release 11.2.0.4.0 - Production on 星期三 6月 3 17:18:05 2026

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

ORA-31634: 作业已存在


ORA-31664: 如果采用默认值, 将无法构造唯一的作业名

原因分析
Oracle Data Pump(数据泵)在运行时,会在数据库内部创建一个临时的主表(Master Table)来追踪进度。如果我们没有显式指定 JOB_NAME 参数,Oracle 会默认自动命名为 SYS_EXPORT_FULL_01、SYS_EXPORT_FULL_02 这种格式。
如果之前的导出任务经常被异常终止(如手动 Ctrl+C、被系统 Kill、或者内存不足崩溃),这些临时表就不会被自动清理。Oracle 每次重试都会把数字往上加,当数字累加到 99 达到上限后(_99),系统无法再递增生成唯一的作业名,就会彻底罢工并抛出 ORA-31664 错误

解决办法(手动清理僵尸作业)
1. 查询当前残留的作业
以 DBA 身份登录数据库,查询当前的状态:
SELECT owner_name, job_name, operation, state FROM dba_datapump_jobs;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-6-28 23:15 , Processed in 0.253615 second(s), 22 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表