oracle 指定表空间进行导入
来源:互联网 发布:索多玛的120知乎 编辑:程序博客网 时间:2024/05/17 21:53
昨天导数据,出现如下问题:
建立用户:create user dvboss_bak identified by passwd default tablespace dvbcetus temporary tablespace temp;
授权:grant resource,connect to dvboss_bak;
grant dba to dvboss_bak;
导入表数据:imp dvboss_bak/passwd file=ow_iptv_bill20071106.dmp fromuser=dvbcetus touser=dvboss_bak;
在导入完成后,发现在指定的用户的表空间下没有增长任何数据。
查看该表导入的实际表空间:select t.table_name, t.tablespace_name from dba_tables t where t.table_name = 'OW_IPTV_BILL';
却发现在dvboss表空间中。突然想起来以前也发生或类似的情况,不过当时是drop原表空间的。但这次不可以了,原表空间还是有用的,而且目前空间已经不足以存放这个表的数据了。所以得从根本上想办法了。网上找了很多资料,发现有一种方法很多人介绍,但却缺乏实际的步骤,让我这个菜鸟不懂怎么做。于是只好自己边找资料边摸索。以下是我具体执行的步骤:
bash[oracle@cetus1:/oracle/dvbossbak/sqlfile]=>sqlplus '/ as sysdba'
SQL*Plus: Release 8.1.7.0.0 - Production on 星期三 11月 14 08:41:15 2007
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.0.0 - 64bit Production
SQL> drop user dvboss_bak cascade;
drop user dvboss_bak cascade
*
ERROR 位于第 1 行:
ORA-01940: 无法删除当前已连接的用户
SQL> drop user dvboss_bak cascade;
用户已丢弃
SQL> create user dvboss_bak identified by passwd default tablespace dvbcetus temporary tablespace temp;
用户已创建
SQL> grant connect,resource to dvboss_bak;
授权成功。
SQL> grant dba to dvboss_bak;
授权成功。
SQL> revoke unlimited tablespace from dvboss_bak;
撤销成功。
SQL> alter user dvboss_bak quota 0 dvboss;
alter user dvboss_bak quota 0 dvboss
*
ERROR 位于第 1 行:
ORA-00969: 缺少 ON 关键字
SQL> alter user dvboss_bak quota 0 on dvboss;
用户已更改。
SQL> alter user dvboss_bak quota unlimited on dvbcetus;
用户已更改。
SQL> exit
从Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.0.0 - 64bit Production中断开
bash[oracle@cetus1:/oracle/dvbossbak/sqlfile]=>ls
20071113.out createindex.sql createtbs.sql createuser.sql
bash[oracle@cetus1:/oracle/dvbossbak/sqlfile]=>cd ../dmpfile/
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>ls
20071113.out imp.sh ow_iptv24_20071106.dmp.Z
20071113_2.out iptvbill0610.dmp.Z ow_iptv_bill20071106.dmp
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>ls
20071113.out imp.sh ow_iptv24_20071106.dmp.Z
20071113_2.out iptvbill0610.dmp.Z ow_iptv_bill20071106.dmp
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>imp dvboss_bak/passwd file=ow_iptv_bill20071106.dmp fromuser=dvbcetus touser=dvboss_bak grants=n > 20071114.out 2>&1 &
[1] 24728
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>ps -fe|grep imp
oracle 24731 24681 0 08:47:18 pts/2 0:00 grep imp
oracle 24728 24681 4 08:47:04 pts/2 0:04 imp dvboss_bak/passwd file=ow_iptv_bill20071106.dmp fromuser=dvbcetus touser=dv
bash[oracle@cetus1:/oracle/dvbossbak/dmpfile]=>sqlplus dvboss_bak/passwd
SQL*Plus: Release 8.1.7.0.0 - Production on 星期三 11月 14 08:49:31 2007
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.0.0 - 64bit Production
SQL> set linesize 800
SQL> select * from dba_tables dt where dt.table_name = 'OW_IPTV_BILL';
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOG B NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LO SAMPLE_SIZE LAST_ANALY PAR IOT_TYPE T S NES BUFFER_ ROW_MOVE GLO USE DURATION SKIP_COR MON CLUSTER_OWNER
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- ---------- -------------- ----------- ----------- ----------- ------------ ---------- --------------- --- - ---------- ---------- ------------ ---------- ---------- ----------- ------------------------- ------------------- --------------------- --------------------- ----------- -------- ----------- ---------- --- ------------ - - --- ------- -------- --- --- --------------- -------- --- ------------------------------
DVBOSS_BAK OW_IPTV_BILL DVBCETUS 10 40 1 255 65536 251682816 1 249 50 1 1 YES N 1 1 N ENABLED NO N N NO DEFAULT DISABLED NO NO DISABLED NO
可以发现,表已经存在于dvbcetus表空间中。
这样就从根本上解决了对已经存在的表空间的问题了。
但是问题还没有就此停止,由于表实在大(15G),想要不出个问题真的是很难。
导入是正常导入到指定的表空间了,但是由于参数设置上的问题。导了几次都是到
8G或4G的时候imp就断了。提示的错误是:
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.0.0 - 64bit Production
. . 正在导入表 "OW_IPTV_BILL"
IMP-00058: ORACLE 错误1653出现
ORA-01653: 表DVBOSS_BAK.OW_IPTV_BILL无法通过1574802(在表空间DVBCETUS中)扩展
IMP-00028: 上一个表的部分导入已回退: 回退 56087788 行
我晕啊,尝试修改表空间的参数:
initextents 100M; --alter tablespace dvbcetus default storage(initextents 100)
nextextents 100M; --alter tablespace dvbcetus default storage(nextextents 100)
maxextents 250; --alter tablespace dvbcetus default storage(maxextents 250)
pctincrease 0 --alter tablespace dvbcetus default storage(pctincrease 0)
再次导入,数据增长很快,到晚上12点的时候搞定了。哎,好了。
select 一下也正常。
该建索引和约束了!问题再次出现。速度很慢。=:(
- oracle 指定表空间进行导入
- oracle导入表时指定表空间
- Oracle imp导入数据指定表空间
- oracle dmp导入到指定表空间
- Oracle imp导入数据指定表空间
- Oracle imp导入数据指定表空间
- Oracle imp导入数据指定表空间
- ORACLE数据导入到指定的表空间
- Oracle imp命令导入数据到指定表空间(转贴)
- Oracle imp命令导入数据到指定表空间
- Oracle中imp导入数据指定表空间方法介绍
- oracle imp导入库到指定表空间
- oracle 10g 导入数据指定表空间
- Oracle将数据库导入到指定表空间
- oracle imp导入库到指定表空间
- oracle imp导入库到指定表空间
- window oracle 导入表至指定的工作空间
- Oracle 导入指定表
- session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
- English Articles-I
- 技能
- Oracle里时间的应用 ---网上找的,有时间好好看看
- 从追MM谈Java的23种设计模式
- oracle 指定表空间进行导入
- VC项目文件说明
- MySQL索引分析和优化
- 转载:中国经济酷似日泡沫时代:股市上涨和楼价疯涨
- Gphone令互联网为手机疯狂 巨头搏杀
- XRuby:享用JVM上的Ruby
- CSDN剪影产品页
- MYSQL数据备份/恢复简易方法
- 第一篇CSDN文章