环境如下:

源数据库主机:AIX oracle10.2.0.1 表空间A,因为历史原因,只有一个数据文件,(big file tablespace) 约为100G

目标数据库主机:Linux oracle11.2.0.1 表空间A(事先创建好了多个数据文件,每个数据文件2G,名称为a01.dbf,a02.dbf,....)

使用expdp/impdp迁移

导出命令为:

expdp "sys/password as sysdba" directory=dir_dp dumpfile=A.%U.dmp logfile=A_exp_01.log schemas=A parallel=4

导入命令为:

impdp "sys/password as sysdba" directory=dir_dp dumpfile=A.%U.dmp logfile=A_imp_01.log schemas=A parallel=4

expdp过程无报错,

导入时发现卡在Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX不动了,好几个小时

查alert日志,发现错误如下:

statement in resumable session 'SYSTEM.SYS_IMPORT_SCHEMA_15.1' was timed out

statement in resumable session 'SYSTEM.SYS_IMPORT_SCHEMA_15.1' was suspended due to

ORA-01652: unable to extend temp segment by 128 in tablespace A

错误提示A表空间不能自动扩展了

看了一下A表空间对应的数据文件,发现

第一个数据文件a01.dbf 大小为32G,从第二个数据a02.dbf开始,大小仍为创建时的2G

也就是说,导入数据时,源主机上A表空间的数据都被导入到目标主机上A表空间的第一个数据文件a01.dbf中,并且自动扩展到了最大值32G,但是继续导入数据时,不会自动使用A表空间的第二个,第三个数据文件,请问这个是为什么?怎样解决这个问题?收起

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐