可能是表空间不足,检查一下是不是有表空间满了从而导致不能导入。
创新互联公司是一家专注于成都网站建设、成都网站设计与策划设计,措美网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:措美等地区。措美做网站价格咨询:18980820575
另外,去看看Alert日志有没有报错信息
1、类似于这样的大表一般是需要创建分区的,表需要分区,索引也需要分区,这里只提到分区就是子表,一个子表ORACLE内部就是一个段的概念,我的博客内部正好刚写了一篇关于分区的介绍,你也可以参考其他的资料帮你提供参考,这个需要对分区专门研究,然后根据实际情况去做分区(因为从题目上也不是太明确你的要求),不然有些时候往往适得其反。
2、ORACLE快照就不是解决这个问题的了,他主要是对回滚段的一些处理记录,当你删除增加数据,即使提交了,也可以通过快照找到近期的数据,但是如果回滚段较小,被冲掉了,那就没办法了,就像做一个大型统计需要很长时间,中途若对统计的表进行增删改查操作即使COMMIT也不会在统计中运算,因为ORACLE会自己创建在执行SQL前给与一个时间戳TIMESTAMP和对应SCN号码,这个是绝对唯一的,如果出现脏块,就会到回滚段去找数据,若回滚段被冲掉,这个统计会报错。
3、在这样大数据量的转存过程中,建议使用分批转存(不要一次转存过来),并自己去编写日志,转存过程中,将目标表使用Hint中的/*+append*/进去并后带NOLOGGING,如:INSERT /*+append*/ INTO table_name NOLOGGING SELECT .. FROM ...;这样会以最小的日志编写方式进行高水位线插入,另外如果是同步数据可以使用到MERGE,自定义分表快速一次性插入使用INSERT ALL。
4、如果是一个表内部就有这么多数据,目标表需要进行分区,而且根据实际情况可以的话建议是二级分区,分区一定要找好下手点,不能乱分,不然往往分后的性能不如不分的情况,至于如何分区,这些都要依据实际情况而定,没有完全的定论,不过只要分区,最基本的就是你的分区字段是99%的情况都要用以查询条件,并可以迅速定位分区的字段,一个分区内部的数据不要太多,各个分区的数据较为均匀分布。
5、分区基础上创建分区索引,有全局索引和本地索引,据实际情况可以参考使用,保证通过分区索引快速定位数据范围和查找数据(针对提取少量数据,而不是全盘扫描)。
6、至于如何将高版本的数据同步到低版本,尤其跨越两个大版本,本来ORACLE 10后有一个数据泵,但是ORACLE 9I用不了,但是用SQL无益是最慢的,DMP就算是小版本的区别也可能会有点问题,SQL*LOADER是人工去完成导入导出工作,外部表是文件结构也需要先导出去而且对于大数据量的性能不容乐观,就我个人来说在可能的情况下用DB-LINK链接过去,可进行双数据库操作,不过DB-LINK转存过程注意分布式事务的一致性问题。
可用图形界面或者命令导入:
图形界面需要借助第三方工具plsql,方法如下:
1、登录到要导入的数据库及用户。
2、依次点击“工具”——“导入表”。
3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。
命令导入:
1、win键+R键,进入命令提示符。
2、进到.dmp文件所在文件夹:
3、输入如下命令:
imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户
输入后按回车键,等待导入完成即可。
说明:第三点中中文部分,请根据实际情况填写。
Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
当使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象所对应的OS目录中,面不能直接指定转储文件所在的OS目录。因此,当使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象的权限。
例:SQLconn sys/manager
SQLCREATE DIRECTORY dump_dir AS '/u01/app/dump';
SQLGRANT READ,WRITE ON DIRECTORY dump_dir to scott;
确认备份泵出文件的位置
========================
SQL set linesize 180
SQL col directory_path format a60
SQL select * from dba_directories
下面介绍的是exp/imp导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以”00″打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=” where filed1 like ‘00%’”
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@TEST full=y file=d:\datanewsmgnt.dmp ignore=y
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;