如何imp到不同于原表空间的表空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何imp到不同于原表空间的表空间相关的知识,希望对你有一定的参考价值。

参考技术A 大概的思路是: 将用户 的 system(或者其他不允许使用的) 的表空间权限取消, 指定用户 的 可用表空间 执行导入 然后再将system的表空间恢复给用户 如下:示例: alter user abc QUOTA 0 on system alter user abc default tablespace xxx QUOTA unlimited imp abc/password alter user abc QUOTA unlimited on system

oracle导入dmp 各种表空间不存在

报了一堆警告。。。所幸的是好像大多数都导入成功了?

参考技术A 如果你是自己学习用或者测试用,可以考虑把原本存在不同表空间的数据都导入到相同的表空间。
具体做法是remap_tablespace=tablespace1:tablespace2
上面的tablespace1就是你导入过程中提示不存在的表空间, tablespace2是你用来存放数据的表空间。
参考技术B 用sys或system用户登入,创建不存在的表空间,再进行导入。追问

表空间怎么创建? cmd界面下和plsql界面哪个容易点,讲清楚点呗

追答

在PLSQL建。
CREATE [SMALLFILE|BIGFILE] TABLESPACE tablespace_name
DATAFILE datefile_clause1 [,datefile_clause2] ……
[ EXTENT MANAGEMENT LOCAL ]
[ UNIFORM SIZE nnnnK|M ]
[ AUTOALLOCATE ]
[ SEGMENT SPACE MANAGEMENT AUTO|MANUAL ]
[ BLOCKSIZE nnnnK|M ]
[ ONLINE|OFFLINE ]
[ LOGGING|NOLOGGING ];
其中:
SMALLFILE|BIGFILE -- 小文件|大文件,省略为小文件;
tablespace_name — 表空间名
Datafile_Clause — 完整语法如下:
path\file_nameSIZEnnnnK|M REUSE
[AUTOEXTEND OFF|ON NEXT nnnnK|M MAXSIZE nnnnK|M|UNLIMITED ]
其中:
path\file_name — 数据文件的存储路径和文件名;
SIZE nnnn K|M -- 文件大小;
REUSE — 如果File 已经存在,用原文件新Size,原来无File,则忽略REUSE;
AUTOEXTEND — 文件空间自动增加,缺省等于AUTOEXTEND OFF;
ON NEXTnnnnK|M — 文件空间自动增加大小;
MAXSIXE nnnnK|M — 最大空间;
UNLIMITED — 无限制。
EXTENT MANAGEMENT LOCAL — 代表本地化表空间,可以缺省;
UNIFORM -- 区大小相同,默认为1M
AUTOALLOCATE — 区大小系统动态自动分配。缺省等于AUTOALLOCATE。
SEGMENT SPACE MANAGEMENT — 段空间分配方式;
BLOCKSIZE — 创建非标准块表空间。如果创建16K块标准的表空间,则需要设置参数
DB_16K_BLOCK_SIZE=16384。缺省时块大小按参数DB_BLOCK_SIZE创建;
ONLINE|OFFLINE — 表空间联机/脱机。缺省等于ONLINE;LOGGING|NOLOGGING — 创建日志/不创建日志。缺省等于LOGGING。

参考技术C 新建表空间

以上是关于如何imp到不同于原表空间的表空间的主要内容,如果未能解决你的问题,请参考以下文章

oracle的表如何跨表空间存储

ora-00959表空间 不存在 oracle imp 导入问题

如何把dmp导入到指定用户指定的表空间 [转]

Oracle修改表Table所属表空间及ClobBlob字段的处理

oracle导入表结构时报表空间不存在,该怎么解决?

oracle导入dmp 各种表空间不存在