oracle 表空间 重名,警惕数据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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值