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
参数文件中。这会在 运行 数据泵导入时抑制存档创建。
背景:
我的任务是将大量数据从生产数据库导入测试数据库(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
参数文件中。这会在 运行 数据泵导入时抑制存档创建。