在Oracle Data Pump(impdp)中,如果一个导入任务(Job)的状态是`STOP PENDING`,这意味着该任务已经请求停止,但可能还在等待资源释放或其他清理操作完成。要让这个impdp的job继续运行,可以尝试以下步骤:
1. **确认停止状态:**
首先检查作业是否确实已经完全停止,并没有在进行任何后台处理。可以通过查询`DBA_DATAPUMP_JOBS`视图来获取作业的最新状态。
2. **清除遗留状态:**
如果作业长时间处于`STOP PENDING`状态,可能是由于某种原因未能正常关闭。这时,您可以尝试强制结束该作业:
```sql
EXECUTE DBMS_DATAPUMP.ABORT_JOB(job_name => 'SYS_IMPORT_FULL_0', job_mode => 'SCHEMA');
```
请确保替换上述命令中的`SYS_IMPORT_FULL_0`为实际的作业名称。
3. **重新启动导入作业:**
清除或确认作业已完全停止后,可以根据原始的impdp命令行参数重新发起导入任务。如果需要从上次失败的地方恢复,可以使用`ATTACH`选项连接到原有的导入作业:
```shell
impdp system/password@db_service attach=SYS_IMPORT_FULL_0 ...
```
在这里,用适当的数据库用户、密码、服务名以及其他的impdp命令行参数替换相应的占位符。
4. **查看日志和错误信息:**
在重新开始之前,务必查看上一次作业的日志文件,以了解为何作业被挂起以及是否有需要解决的问题。
5. **空间检查与清理:**
检查磁盘空间和其他资源限制,确保有足够的资源支持导入任务继续执行。
6. **监控作业:**
在重启导入任务之后,持续监控其状态,确保它能够顺利执行至完成。