你可以通过查询 DBA_DATAPUMP_JOBS 视图快速查看所有数据泵任务的状态。你不能获得 STATUS 命令所给出的详细信息,但你可以快速查看到哪些任务在执行、哪些处于空闲状态等。另一个需要了解的视图是 DBA_DATAPUMP_SESSIONS ,它列出了所有活跃的数据泵工作进程。
从故障中恢复
重启动任务的能力使你可以从某些类型的故障中恢复过来。例如, 清单 5 显示了一个用完了转储文件空间的导出任务的日志文件的结尾部分。然而,什么也没有丢失。该任务只是进入了一个空闲状态,当你连接到该任务并查看状态输出时就可以看到这一点。这个状态不显示任务空闲的原因。要确定这是因为转储文件的空间不够了,则你需要查看日志文件。
连接到因转储文件空间不够用了而停止的任务后,你可以在两个操作中选择其一:你可以使用 KILL_JOB 命令来中止该任务,或者增加一个和多个转储文件来继续该任务的运行。如果空间不够的问题是因为磁盘空间不足,则当然你要确保你增加的文件是在另一个有可用空间的磁盘上。你也许需要创建一个新的 Oracle 目录对象来指向这一新位置。
清单 6 使用 ADD_FILES 命令为我的空闲任务增加两个文件。这两个文件位于不同的目录中,它们都不同于为该任务的第一个转储文件所指定的目录。我使用 START_JOB 命令来重新启动该任务,然后使用 CONTINUE 查看屏幕上滚动的其余日志输出。
导入任务不会受到卸载( dump )文件空间不足的影响。但是,它们可能会受到数据表空间不足或无法扩展表空间的影响。导入的恢复过程和导出任务的基本上相同。首先,通过向表空间增加一个数据文件、扩展一个数据文件或其他方法来提供可用空间。然后连接到该任务,执行 START_JOB 命令。导入任务将从它中断的地方继续执行。
导入选定的数据
本文中的例子到目前为止显示的是对用户 GENNICK 拥有的所有对象进行模式( schema )数据库级别的导出。为了展示数据泵的一些新的功能,我要导入那些数据,而且为了使问题更有意思,我列出了以下要求:
仅导入 GNIS 数据表