首先检查作业状态,使用SQL查询SELECT * FROM dba_datapump_jobs WHERE job_name='你的作业名'; 如果状态是NOT STARTED,可以尝试重启dp_job=DBMS_DATAPUMP.ATTACH('作业名'); dp_job=DBMS_DATAPUMP.START_JOB(dp_job); 如果是EXECUTING状态,则停止作业后再重启。远程处理时,确保网络稳定,使用expdp/impdp的DIRECTORY参数指向共享路径。
CSDN博客
ORA-39016: operation not supported (job is currently in 字符串状态). 这个错误通常发生在Data Pump作业试图执行不支持的操作时,比如在作业已经启动或停止后试图附加。解决方法:1. 查询作业状态 dba_datapump_jobs 视图。2. 如果状态为DEFINED,使用DBMS_DATAPUMP.START_JOB启动。3. 远程方案:通过dblink或网络链路传输dump文件,避免本地操作冲突。
Oracle社区论坛
遇到ORA-39016时,作业状态是NOT STARTED,直接attach后start即可。代码示例:DECLARE h1 NUMBER; BEGIN h1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL'); DBMS_DATAPUMP.ADD_FILE(h1,'imp.dmp','DATA_PUMP_DIR'); DBMS_DATAPUMP.START_JOB(h1); END; / 远程处理:使用expdp as sysdba@远程db parfile=...
博客园文章
故障修复步骤:1. 停止作业:DBMS_DATAPUMP.STOP_JOB(handle,1,0); 2. 删除作业:DBMS_DATAPUMP.DETACH(handle); 3. 重新创建作业。字符串状态常见为'EXECUTING'或'NOT STARTED'。远程方案:在控制端脚本中监控作业日志,结合scp传输文件。
IT技术网
ORA-39016错误修复:查看V$SESSION_LONGOPS确认作业进度。如果卡住,kill session后清理。远程处理:配置tnsnames.ora,使用impdp directory=... dumpfile=... network_link=远程db。
知乎讨论
实际案例:作业处于STOP_PENDING状态,无法操作。解决方案:等待状态变化或强制detach。远程:通过Grid Control或EM监控多实例作业,避免状态冲突。
Oracle官方文档片段
The ORA-39016 error indicates that the operation is not supported for the current job state. Possible states: DEFINED, NOT STARTED, EXECUTING, STOPPING, STOPPED. To resolve, ensure the job is in a compatible state before calling the procedure.
Stack Overflow中文翻译
重启Data Pump作业:先DROP JOB IF EXISTS,然后重新OPEN和START。对于远程,推荐使用PARALLEL参数优化传输。
FAQ
Q: 作业状态查询怎么做?
A: SELECT owner_name, job_name, state FROM dba_datapump_jobs;
Q: 远程传输dump文件安全吗?
A: 使用HTTPS或VPN,确保directory权限正确。
Q: 为什么频繁出现这个错误?
A: 多会话并发操作同一作业导致。
Q: 强制停止作业的风险?
A: 可能丢失部分数据,建议先STOP_JOB再处理。