IMPDP 使用比预期更多的磁盘 space

IMPDP uses more disk space than expected

背景:

我的任务是将大量数据从生产数据库导入测试数据库(RHEL 上的 Oracle 12c 第 2 版 运行ning)并且我正在使用 Data Pump。

我第一次导入表时,表已按计划创建并导入了数据,但是 - 由于我的数据泵参数文件中的问题 - 未导入约束。

然而,我随后的尝试并不顺利。数据泵开始部分冻结,STATUS 命令显示没有字节被处理。

我的解决方案尝试

我尝试使用 TABLE_EXISTS_ACTION=REPLACE 并在尝试后直接删除表格。我还删除了无法从该实用程序终止的任何数据泵作业的主表。

尽管如此,它似乎在我不断尝试导入表的过程中越来越早地挂起。 df -h 每次挂起时都返回 100% 的磁盘使用率。

转储文件本身位于单独的驱动器上,因此不再占用空间。我一直在尝试清除 space,但当我 运行 一份工作时它一直在填满,我不知道在哪里。 Oracle 闪回被禁用,我确保清除了 oracle 回收站。

tl;博士

运行 impdp 作业似乎用完了磁盘 space 除了添加的表和作业主表。此内存在哪里用完了?我该怎么做才能清除它以成功导入?

我发现问题了:

数据库在 archivelog mode 中,以便设置流和恢复管理器备份。结果,impdp 导致大量存档数据库更改。

为了清除旧档案,我 运行 在 rman 中为服务器上 noarchivelog mode 中的每个数据库执行以下操作。

connect target /
run { 
allocate channel c1 type disk; 
delete force noprompt archivelog until time 'SYSDATE-30'; 
release channel c1; 
} 

这清理了 60 GB。我还将参数 transform=disable_archive_logging:Y 添加到我的 impdp 参数文件中。这会在 运行 数据泵导入时抑制存档创建。