背景:
我的任务是将大量数据从生产数据库导入测试数据库(在RHEL上运行的Oracle 12c第2版),并且正在使用数据泵。
我第一次导入表时,将创建表并按计划导入数据,但是-由于我的数据泵参数文件中的问题-约束未导入。
但是,我随后的尝试并不顺利。数据泵开始冻结,并且STATUS
命令显示没有字节正在处理。
我的解决方案尝试:
我尝试使用TABLE_EXISTS_ACTION=REPLACE
并在尝试后直接删除表。我还删除了无法从实用程序终止的任何数据泵作业的主表。
不过,在我不断尝试导入表的过程中,它似乎挂得越来越早。 df -h
每次挂起时都会返回100%的磁盘使用情况。
转储文件本身位于单独的驱动器上,因此不再占用空间。我一直在尝试清理空间,但是当我从事一项工作时,空间一直在填满,我不知道在哪里。 Oracle闪回已禁用,我确保清除了Oracle回收站。
tl;博士:
正在运行的impdp作业似乎会耗尽已添加的表和作业主表之外的磁盘空间。该内存在哪里用完了,该如何清除才能成功导入?
答案 0 :(得分:0)
我发现了问题:
该数据库位于archivelog mode
中,以便设置流和Recovery Manager备份。结果,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
。这样可以在运行数据泵导入时禁止创建存档。