我从本地PC上与表空间用户相关的用户导出db,在server....my上导入到与表空间相关的用户中,问题是:数据是存储在表空间中还是用户表空间存储在服务器上?我用的是标准的imp命令。我担心如果进入用户表空间,在时间流逝和db变成big....please answer....just之后,我将没有足够的空间来提到服务器上的用户在创建时与DATATAB表空间有关,而甲骨文的版本是11gr2.....thank you。
发布于 2014-08-21 02:45:53
为什么要使用原导出和导入实用程序(分别为imp和exp ),这些实用工具是不推荐的,而由于10g Oracle提供了一个新的、更高效的工具--数据泵?
您可以使用带有REMAP_TABLESPACE参数的数据泵导入来为正在导入的对象指定新的表空间名称:
$ impdp hr REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpump_dir1 \
DUMPFILE=employees.dmp 需要使用原始导入的一件事是,您已经拥有由原始导出生成的文件,并且无法访问源数据库来使用数据泵导出,因为根据数据库升级指南:
数据泵导出实用程序生成的转储文件与原始导出实用程序生成的转储文件不兼容。因此,由原始导出(
exp)实用程序生成的文件不能使用数据泵导入(impdp)实用程序导入,反之亦然。
在这种情况下,您可以(在我看来)遵循数据库实用程序中的重新组织表空间部分,其中描述了该过程:
如果用户的配额允许,则将用户的表导入到导出表的相同表空间中。但是,如果表空间不再存在,或者用户没有必要的配额,则系统将使用该用户…的默认表空间。
基本上,您需要在导入期间将用户的默认表空间设置为包含导入对象的表空间。
SQL> alter user spongebob default tablespace newtbs;其中newtbs是新表空间的名称。
另请参阅:
REMAP_*https://dba.stackexchange.com/questions/74506
复制相似问题