今天实践了一下oracle的导入和导出

将一个oracle9i中的数据导到另一个服务器中

需要导出数据的服务器称为服务器A

需要导入数据的服务器称为服务器B

1.在服务器A上进行数据的导出

在DOS窗口中执行:exp 用户名/密码@服务名(rz_dlcs/hbsdlcs@orcl)file=文件所在文位

exp rz_dlcs2008/hebsdlcs@orcl file=d:\dlcs.dmp

2.在服务器A上设置连接服务器B

在orcale net manager中,根据向导增加一个新的服务,增加的服务名为orcl_20_dlcs

3.在服务器B上进行数据的导入

 在dos窗口中执行:imp 用户名/密码@服务名 file=文件所在位置 full=y log=log文件所在位置  ignore=y

4.导入过程中遇到的问题

在导入的过程中,出现下面的错误

IMP-00058: 遇到 ORACLE 错误 1653
ORA-01653: 表RZ_DLCS2009.DYCS_SBTZ_DLYX2007无法通过8(在表空间HEBSDLCS中)扩展
IMP-00028: 上一个表的部分导入已回退: 回退 498 行
IMP-00017: 由于 ORACLE 的 1658 错误,以下的语句失败

经查,发现是由于表空间大小给得过小造成的。

在通常的导入过程中,一般是由于大字段的问题造成的。

解决办法:

(1)将日志文件中的错误提示信息以及导入信息全部清除掉,只保留greate table语句的信息;

(2)将10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "HEBSDLCS" LOGGING NOCOMPRESS;信息注释掉(使用--注释),并在末尾处加上分号;

(3)将已导入的数据表全部删除,在sqlplus中拷入修改后的语句并执行;

(4)在dos窗口中执行导入语句,即可。在导入的过程中,忽略所有错误。

导出数据或者导入数据时,系统提示IMP-00003: ORACLE error 20001 encountered,此时在语句中增加 statistics=none,可解决此问题statistics:表示不导出分析数据

删除表空间中所有表的方法

1.在sqlplus中执行 select table_name from tabes;

2.将查询出的表名拷贝到文本文件中,在所有的表名前加上 drop table ,在表名后加上;的信息;

3.再将修改完成的语句拷贝到sqlplus中执行。

 

posted on 2009-04-09 10:29  雪竹莲  阅读(1270)  评论(0编辑  收藏  举报