警惕数据IMP导入的表空间是EXP同名的表空间,而不是用户默认的表空间-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

警惕数据IMP导入的表空间是EXP同名的表空间,而不是用户默认的表空间

简介:

场景:某日应测试要求从生产导出一批数据用于测试,单个表多在1G以上,为此专门在测试环境新建了表空间和测试用户,预留了足够的空间。可是没想到imp时老提示表空间不够,通过表空间查询语句默认表空间利用率不足1%,最终突然想到虽然导入时指定了fromuser\touser,但是表空间未必会指定到默认的表空间,上网查了下果然如此。

机器环境:P550小型机\ORACLE10G

此前操作步骤:

--建立LV
mklv -y  TEST_DAT -T O -w n -s n -r n oradatavg 80 
--权限设置
chown oracle:dba /dev/rTEST_DAT
chmod 777 /dev/TEST_DAT
--SQLPLUS下建立表空间
create tablespace T_TEST datafile '/dev/rTEST_DAT' size 20000M;
--SQLPLUS下建立用户
create user test identified by test default tablespace TEST_DAT TEMPORARY TABLESPACE TEMP;
grant dba to test; 
--CMD下导入数据

C:\Documents and Settings\ad>imp test/test@apple file=c:\tmp_20101117.dmp fromuser=dev touser=test

Import: Release 10.2.0.1.0 - Production on 星期五 11月 19 13:10:20 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Produc
tion
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 DEV 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 DEV 的对象导入到 TEST
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE TABLE "CONTROL" ("ID" NUMBER NOT NULL ENABLE, "MSG_ID" V"
 "ARCHAR2(1000), "CONTENT" CLOB, "MSG_TYPE" VARCHAR2(50), "STATE" VARCHAR2(4)"
 ", "ERR_CODE" VARCHAR2(255), "ERR_MSG" VARCHAR2(255), "ERR_TRACE" CLOB, "ERR"
 "_DATE" DATE, "MODI_DATE" DATE, "ARCHIVE_DATE" DATE, "DELETED_FLAG" CHAR(1),"
 " "TRY_TIMES" NUMBER, "CREATE_DATE" DATE, "SEND_DATE" DATE, "TARGET" VARCHAR"
 "2(50))  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 98146"
 "7136 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "IN_ADCP"
 "HC_DATA" LOGGING NOCOMPRESS LOB ("CONTENT") STORE AS  (TABLESPACE "USERS" E"
 "NABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING  STORAGE(INIT"
 "IAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)) LOB ("ERR_TRA"
 "CE") STORE AS  (TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERS"
 "ION 10 NOCACHE LOGGING  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1"
 " BUFFER_POOL DEFAULT))"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: unable to allocate MINEXTENTS beyond 41 in tablespace TEST
成功终止导入, 但出现警告。
---猛然发现错误提示中有“unable to allocate MINEXTENTS beyond 41 in tablespace TEST”,
---这个tablespace不是之前我新建的表空间,而是此前测试环境的一个表空间,而这个表空间利用率已经达到99%.
---接下来大家都知道了,扩之前存在的表空间

mklv -y  test_add -T O -w n -s n -r n oradatavg 40 
chown oracle:dba /dev/rtest_add
chmod 777 /dev/rtest_add
---SQLPLUS下执行如下命令
alter tablespace TEST add datafile '/dev/rtest_add' size 1000M;
---扩表空间后再次执行命令成功
C:\Documents and Settings\ad>imp test/test@apple file=c:\tmp_20101117.dmp fromuser=dev touser=test

Import: Release 10.2.0.1.0 - Production on 星期五 11月 19 13:25:44 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Produc
tion
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 DEV 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 DEV 的对象导入到 TEST
. . 正在导入表           "CONTROL"
....................
导入了                                                        203333 行
成功终止导入, 没有出现警告。

C:\Documents and Settings\ad>

 



本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/427495,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章