将数据导入oracle(impdb)时出现问题

时间:2016-03-09 17:06:55

标签: sql oracle

我在将dump导入orcle时获取这两个语句:

ORA-39171: Job is experiencing a resumable wait. 
ORA-01653: unable to extend table DATA_TABLE  by 8192 in tablespace TABLE_DATA

如果您知道,请告诉我解决方案。

2 个答案:

答案 0 :(得分:2)

当你用完表空间时,impdp非常礼貌地暂停,并通知你需要扩展表空间。完成后,impdp将继续导入,无需额外干预。

在您的情况下,您需要扩展表空间TABLE_DATA。登录到另一个会话,并提高与TABLE_DATA关联的文件的限制,或添加文件。假设您的数据文件为table_data_01.DBF,其最大大小为500M。您可以使用以下内容将其扩展为1G:

ALTER DATABASE 
  DATAFILE 'D:\ORACLE\ORADATA\xxxx\table_data_01.DBF  AUTOEXTEND ON
  NEXT 256M
  MAXSIZE 1G;

如果要将另一个数据文件添加到表空间,可以使用以下命令:

ALTER TABLESPACE TABLE_DATA
  ADD DATAFILE 'D:\ORACLE\ORADATA\xxxx\CIS_DATA_02.DBF'
  SIZE 256M
  AUTOEXTEND ON
  NEXT 16M
  MAXSIZE 1G;

请务必根据您的环境调整路径和尺寸。

答案 1 :(得分:0)

尽管上述方法确实起作用,但是在使用Oracle 12c(12.1.0.2.0)时,我将导入保持为可恢复状态,并打开了另一个sqlplus窗口。从那里,我跑了:

ALTER TABLESPACE DATA1   添加数据文件
  大小52428800   下一步8388608的自动扩展   最大大小30720M;

这将第四个数据文件添加到我们的表空间并创建了名称,因为它是oracle管理的文件名。创建数据文件后,Oracle导入立即从其可恢复状态继续。当然,如果您对该导入不满意,只需删除架构并进行整个重新导入。您创建的新表空间将仍然存在,因此您不会再次遇到“可恢复等待”错误。 还要注意,SIZE,AUTOEXTEND ON NEXT和MAXSIZE的参数是不同的,因为我使用的参数与表空间中已经存在的数据库文件相同。