oracle数据库imp导入失败,错误imp-00085

作者&投稿:枕斧 (若有异议请与网页底部的电邮联系)
oracle数据库用imp命令导入数据库时报1659的错误,怎么解决?~

oracle在导入数据时报1659的错误的原因主要是数据库表空间剩余空间不足引起的。分析原因
1、表空间剩余空间不足。
使用下面语句,查看表空间剩余空间
select Upper(f.tablespace_name) "表空间名",
d.tot_grootte_mb "表空间大小(M)",
   d.tot_grootte_mb - f.total_bytes "已使用空间(M)",
to_char(round((d.tot_grootte_mb - f.total_bytes) /
d.tot_grootte_mb * 100, 2),'990.99') || '%' "使用比",
  f.total_bytes "空闲空间(M)",
  f.max_bytes "最大块(M)"
from (select tablespace_name,
round(sum(bytes) / (1024 * 1024), 2) total_bytes,
round(max(bytes) / (1024 * 1024), 2) max_bytes
from sys.dba_free_space
group by tablespace_name) f,
(select dd.tablespace_name,
round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
from sys.dba_data_files dd
group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name
order by f.tablespace_name;
表空间剩余空间不足时,可以根据原数据库表空间大小增加表空间。
alter tablespace 表空间名 add datafile '数据文件名' size 数据文件大小;
2、剩余表空间还很多。
使用下面语句查看原数据库表表定义,找到initial_extent值大的表,将这些表的
创建语句导出后修改initial_extent值,在目标数据库中创建后再导入数据,导入时
增加参数ignore=y。
select table_name, initial_extent
from user_tables
where initial_extent is not null
order by initial_extent desc
如果找不到原数据库,可以使用
imp userid/userid@service_name file=dmp文件名 indexfile=index文件名 rows=n full=Y
命令将dmp文件中创建表的语句导入到indexfile文件中,查看indexfile如下:
REM CREATE TABLE "TEST"."DM_KJKM_COPY" ("KJZDMB_DM" VARCHAR2(100)
REM ENABLE, "KMID" NUMBER(20, 0), "KMBM" VARCHAR2(100), "KMMC"
REM VARCHAR2(500), "KMQC" VARCHAR2(1000), "KMLB_DM" VARCHAR2(100),
REM ...
使用文本编辑工具,查找INITIAL将过大的初始值改为65536后,将REM去除后,在数据库中创建后再使用exp导入数据,导入时增加参数ignore=y。

imp odm/odm@odm file=I:\odm.dmp fromuser=odm touser=odm ignore=y
这样写的话忽略数据库对象存在的报错,不过你的数据可能会有重复。不想重复的话:
1、导出时使用query选项,将你需要的更新的数据导出(前提是你的数据能有分辨是否是更新项的字段)。
2、在你的电脑中将数据删除(delete或truncate,个人建议truncate),那样导入的都是最新的数据了。
3、drop你电脑中odm的所有对象,用在imp时会自动建立。

Oracle数据库导入时遭遇IMP-00085,原来是FULL/Y对决
Oracle数据库导入时遭遇IMP-00085,原来是FULL/Y与 FROMUSER/TOUSER对决

问题:帮忙数据库从一个环境迁移到另一个环境
导出:exp username/password@OracleID File=Oracle.dmp,正确导出,拿到别的地方去导入
导入:imp username/password@OracleID File=Oracle.dmp FULL/Y 时报
IMP-00085:指定的多个输入文件为无界导出文件 IMP-00000:为成功终止导入

操作步骤及问题有
1、imp username/password@OracleID File=Oracle.dmp
数据库的用户username居然设置为了DBA权限,晕倒。因此在导入到对应的数据库时也需要授予DBA权限,如果没有授予DBA权限则会报错
IMP-00013: 只有 DBA 才能导入由其它 DBA 导出的文件
IMP-00000: 未成功终止导入

2、imp username/password@OracleID File=Oracle.dmp
在目标数据库将要导入的用户也授予DBA权限后,则报告错误
IMP-00031: 必须指定 FULL=Y 或提供 FROMUSER/TOUSER 或 TABLES 参数IMP-00000: 未成功终止导入

3、imp username/password@OracleID File=Oracle.dmp FULL/Y
导入时加上FULL/Y参数
IMP-00085: 指定的多个输入文件为无界导出文件IMP-00000: 未成功终止导入

4、imp username/password@OracleID File=Oracle.dmp FromUser=username ToUser=username
根据2的提示,将 ULL/Y参数 换成 FROMUSER/TOUSER 的方式后,可以正确导入

总结:
1、如果没有其它需要,普通用户没有必要授予为DBA权限
2、导入导出时还真的得注意提示信息,呵呵:)

导出版本为11G,确认下导入版本是否正确,否则导出时加入参数compatible=10.xxx / 9.xxx(导入端版本)
另外导出的字符集和导入的字符集尽量一致,设置NLS_LANG后执行导入导出.
如windows : set NLS_LANG=Ameircan_America.AL32UTF8
或set NLS_LANG=AMERICAN_AMERICA.ZHS16BGK

附IMP 00085报错信息及建议处理方法
00085, 0000, "multiple input files specified for unbounded export file"
// *Cause: You specified multiple file names for the FILE parameter when
// doing an import, but the header in the export file indicates that
// that the export operation could create only one file. Specifying
// multiple file names is valid for an import operation only if the
// export files were created by an export operation in which the user
// specified a non-zero value for the FILESIZE parameter.
// *Action: If you believe the export contains multiple files, verify that
// you have specified the correct files. If you believe the export
// should be in only one file then try the import operation again,
// but specify only one value for the FILE parameter.

imp system/123456@orcl file=D:\databack\backup.dmp fromuser=s
ystem touser=system commit=y ignore=y rows=y indexes=y buffer=102400

试试


ORACLE 中英文对照表
导出公用程序是 Oracle 关系型数据库管理系统的一部分。 export file(导出文件) 导出公用程序在您的目录中创建的文件。导出文件扩展名为 .dmp。对导出文件命名将可以标识数据库表中的数据。例如,如果您要保存 1994 会计年度的 Fremont 帐套,则可以将导出文件命名为 FY94FR.dmp。 F factor(系数) 您通过它执行某些...

oracle 索引什么时候重建和重建方法讨论
每次索引访问的读取数:是指利用索引读取一数据行时所需要的逻辑I\/O操作数,逻辑读取不必是物理读取,因为索引的许多内容已经保存在数据缓冲区,然而,任何数据大于10的索引都需要重建。1. B-tree(B树)索引 是现代关系型数据库中最常用的索引。除了存储索引数据外,还存储一个行ID,用来指出该行其余数...

电商erp软件前十名都有哪些?
电商erp软件前十名分别是用友、SAP、金蝶、O RACLE(甲骨文)、浪潮、鼎捷软件、I NFOR、Aisino、Microsoft(微软)、NEWGRAND(新中大)。1、用友 用友创立于1988年,总部位于中国北京,是中国企业数智化服务和软件国产化自主创新品牌。用友云E RP:用友云ERP,包括大型企业数字化平台NC Cloud,中型及中...

Java培训班一般都教什么内容?
Java培训一般会教下面四种内容:1、掌握Java语言的使用:语言语法、程序逻辑,OOP(面向对象)思想,封装、继承、多态,集合框架、泛型、File I\\O技术,多线程技术、socket网络编程,XML技术。编程有关的操作系统基本使用,HTML5规范、HTML5文档结构、HTML5元素、Web语义化;CSS3规范、CSS3选择器、层叠与...

隆昌县17773996944: Oracle数据库,imp命令数据导入时出错. -
国质烟酸: IMP-00017: 由于 ORACLE 错误 6550, 以下语句失败:"DECLARE SREC DBMS_STATS.STATREC; BEGIN SREC.MINVAL := NULL; SREC.MAXVAL :="" NULL; SREC.EAVS := 0; SREC.CHVALS := NULL; " IMP-00003: 遇到 ...

隆昌县17773996944: oracle用imp导入 报错
国质烟酸: 这个应该是你机器的问题啊,内存溢出了.在你执行imp导入时你的电脑需要分配一块内存来使用,但是你机器内存不够用了.问题可能是硬件导致的,也可能是软件导致的,具体是什么原因没有现场考察,那就不知道了. 建议你先分析你硬件是否正常,比如内存条,或者主板的插槽等等;软件问题建议你网上找一下内存溢出的产生原因和解决办法.我的回答可能解决不了你的问题 ,但是我认为这不是oracle的问题,建议你从别的方面去找原因.

隆昌县17773996944: 求人看看:oracle数据库导入imp 文件出错. -
国质烟酸: 错误原因: 表空间不足,导致无法写入数据 解决办法:1. 以SYS账号登陆DB2. 执行以下命令select file_name from dba_data_files where tablespace_name='**table';得到表空间数据文件存放的路径(例如D:/Oracle/datafile/datafile_001.ora)3. 执行以下命令添加表空间:alter tablespace **table add datafile 'D:/Oracle/datafile/datafile_002.ora' size 1G autoextend on;datafile的名字跟已存在的不一样就就行了.4. 表空间扩展完毕

隆昌县17773996944: 往oracle里导数据导入失败,报错IMP - 00013只有DBA才能导入由其他DBA导出的文件 -
国质烟酸: 报错解释:当前用户权限不足,必须通过dba(系统管理员)权限才能导入文件. 解决办法: 办法一:直接切换用户为sysdba;例如“exp sysdba /sysdba file =文件路径” 办法二:先登录dba权限后,通过grant给当前登录的用户赋权sysdba权限;执行语句“grant dba to username”;之后再回来执行exp语句.

隆昌县17773996944: 求助ORACLE IMP导入错误 -
国质烟酸: 2. IMP-00003: 遇到 ORACLE 错误 604 ORA-00604: error occurred at recursive SQL level 1 ORA-01655: unable to extend cluster SYS.C_OBJ#_INTCOL# by 128 in tablespace SYSTEM ORA-06512: at "SYS.DBMS_STATS", line 4858 ORA-06512: at "SYS.DBMS_STATS", line 5081 ORA-06512: at line 1 IMP-00017: 由于 ORACLE 错误 604, 以下语句失败:

隆昌县17773996944: Oracle导入数据时出现这个错误 IMP - 00015: 由于对象存在, 以下语句 失败: -
国质烟酸: 对象已经存在, 如果你不确定哪些对象已经在数据库创建了, 建议你导入的时候加上参数 ignore=Y

隆昌县17773996944: oracle imp 导入错误是不是数据都没导入?
国质烟酸: 有时候出错也会导入一部分数据,有的时候完全导入不了,看导入的log里是否有记录数的提示,imp里有commit=y时 数据分步提交.希望能帮助你.

隆昌县17773996944: oracle imp 导入出错,请求帮助 非常着急 -
国质烟酸: 首先确认你的磁盘空间还够不够使.如果磁盘空间没问题,加大你的temp表空间容量如: ALTER TABLESPACE temp ADD TEMPFILE 'temp_add.dbf' SIZE 500M AUTOEXTEND ON;然后清空目标库,重新执行导入.

隆昌县17773996944: oracle使用imp导入数据库为什么有些表导不进来 -
国质烟酸: 1、数据库版本是否一致(大版本号).2、用户权限是否足够.3、表空间是否足够.4、临时表空间是否足够.导入前不用删用户,把里面的表全部删除就可以了,之后再导入.希望对你有用.

隆昌县17773996944: oracle数据库用imp命令导入数据库时报1659的错误,怎么解决?
国质烟酸: 数据库分成3个表空间:big, medium 和 normal 当把生产环境中的表结构导入开发环境的时候收到IMP-00003: ORACLE error 1659 encountered的错误.问题主要出自于当我们需要把big表空间的表导入其他环境时,初始化分配表空间的值过大造成.解决方案: 1.在导出表结构的时候exp命令后加上compress=n 2.导入的时候仍然报该错误.使用imp file=xxx.dmp indexfile=indxxx.sql生成sql文件,然后使用记事本打开工具打开sql文件.把初始化参数的值设置为最小然后去掉rem的注释.最后运行该语句.最终表结构成功建立.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网