【发布时间】:2019-06-08 00:04:01
【问题描述】:
背景:
我的任务是将大量数据从生产数据库导入到测试数据库(在 RHEL 上运行的 Oracle 12c 第 2 版),我正在使用 Data Pump。
我第一次导入表时,创建了表并按计划导入了数据,但是 - 由于我的数据泵参数文件中存在问题 - 未导入约束。
然而,我随后的尝试并不顺利。数据泵开始部分冻结,STATUS 命令显示没有字节正在处理。
我的解决方案尝试:
我尝试使用TABLE_EXISTS_ACTION=REPLACE 并在尝试后直接删除表。我还删除了无法从实用程序终止的任何数据泵作业的主表。
不过,当我不断尝试导入表格时,它似乎在此过程中越来越早地挂起。 df -h 每次挂起时返回 100% 的磁盘使用率。
转储文件本身位于单独的驱动器上,因此不再占用空间。我一直在尝试清理空间,但是当我运行工作时它一直在填满,我不知道在哪里。 Oracle 闪回已禁用,我确保清除了 oracle 回收站。
tl;dr:
运行 impdp 作业似乎会耗尽添加的表和作业主表之外的磁盘空间。这段内存在哪里用完了,我可以做些什么来清除它以成功导入?
【问题讨论】:
-
检查来自
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';的跟踪目录和转储目录SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Cdump'; -
很遗憾 cdump 目录是空的,trace 目录只使用了 355Mb。转储文件总大小约为 40G。不过感谢您的建议。
标签: oracle oracle12c rhel datapump impdp