最近在导入导出dmp文件上费了一番周折。总结了点经验,和大家分享一下:
目的:将一个表空间的数据导入另一个表空间。
情况:1、两个表空间在一个数据库上,表都导入了原来的表空间。
2、要导入的数据库上没有原来的表空间,部分导入了导入用户的默认表空间,部分无 法导入,假如用户没有设置默认表空间则导入users表空间。
解决:
方法一:可以将导出的dmp文件用UE打开,用16进制编辑器编辑,将原来的表空间名换成将要导入的表空间名并保存,然后通过imp进行导入,假如导出用户和导入用户不同,在导入时要指定fromuser,touser (当然直接在dmp文件中替换了也是可以的),这种方法比较简单,经测试成功,但对于较大的dmp文件就不适用了。
方法二:可以先导入建表的sql(这里需要注意导出sql时不支持clob字段,用pl/sql dev导出nvarchar2(225)又无法导出,所以建议使用pl/sql dev导出用户对象),然后将sql中的表空间名,用户名替换执行即可建表。然后再导入dmp文件,导入时可以忽略错误,但不知道为什么一些因为有外键的会无法导入(这个导入顺序上个人觉得orcle不会这么傻啊),没办法,只能导两次了。
导入时遇到的问题:
问题一:
imp导入中报错:
IMP-00058: 遇到 ORACLE 错误 12592
ORA-12592: TNS: 包错误
IMP-00058: 遇到 ORACLE 错误 1013
ORA-01013: 用户请求取消当前的操作
然后imp报异常退出。
当时是远程导入的,最终没有知道是为什么,在本地导没有出现这种情况,而且当时导了六个,只有这一个会出现这种错误,求解。
问题二:
导入中途净报表空间不够,表导出之前都是清过的。dmp总共大小不超过50m,当时感到这个错误很莫名其妙,几次周折终于发现有的表创建时的初始大小就超过1G,索引也有几百兆,shit!!改小了,成功导入(好像oracle就这么规定的吧,表的大小会按增长到最大的时候的大小,即使数据删了它也会保留这个大小)
问题三:
导入后发现少了几个表,但在导入导出时都没有发生错误,后来发现没导出的表都是没有数据的,经过google知道这是oracle11的特性,当表无数据时,不分配segment,以节省空间
解决方法:
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
3、用impdp呵expdp工具导吧,怎么导看这吧:
http://space.itpub.net/119501/viewspace-623472
OK,这是最近遇到的问题。有错误希望大家提出,共同进步!
分享到:
相关推荐
假设需要将一个名为`EXPDAT.dmp`的DMP文件从用户`qfyx`的`qfyx_ts`表空间导入到新用户`qctyx`下的`qctyx_ts`表空间中,可以按照以下步骤操作: 1. **创建表空间和用户**: - 创建表空间`qctyx_ts`。 - 创建用户`...
Linux 下向 Oracle 数据库中导入 dmp 文件需要按照一定的步骤进行,包括登录 Linux 系统、创建用户表空间、创建用户、赋予权限、创建临时表空间和导入 dmp 文件等。只有按照正确的步骤进行,才能成功地将 dmp 文件...
### Oracle导入时表空间不一致解决方法 在Oracle数据库管理中,经常会出现因表空间不一致而导致的数据导入失败的问题。本文将详细介绍如何解决这一常见问题,并确保数据能够顺利地从一个环境迁移到另一个环境中。 ...
这是因为不同的表空间可能会有不同的存储需求和限制。 2. **创建表空间**:根据了解到的信息,在目标Oracle数据库中创建相应的表空间。这一步非常关键,因为接下来导入的数据将被存储在这个表空间中。 #### 导入...
通过编写脚本或其他工具,将所有数据导入到Oracle数据库中新建的表空间中。 **9. 数据迁移** 最后,使用达梦数据迁移工具将数据从Oracle数据库中的表空间迁移到达梦数据库。 - 打开达梦数据迁移工具并新建工程。 ...
根据给定的文件信息,我们可以总结出以下关于...上述内容涵盖了Oracle数据库中创建与删除用户、授予权限、导入DMP文件以及网络配置和监听器管理的基础操作。掌握这些技能对于Oracle数据库的日常管理和维护至关重要。
在Oracle数据库环境中,数据导入是常见的操作,尤其是在不同的用户名和表空间之间进行迁移时。这通常涉及到用户权限、数据导出、表空间映射以及数据的重新组织。下面将详细介绍如何在Oracle中实现这一目标。 首先,...
在实际工作中,有时需要将exp导出的历史备份dmp文件进行恢复,若之前的建表语句及表空间名无法找到,则直接用imp语句进行导入的话可能报错表空间不存在,且导入数据占用空间可能会非常大。使用本文方法可将exp导出的...
Oracle数据库管理系统是企业级广泛应用的关系型数据库,它提供了丰富的功能来管理数据,包括创建和管理表空间、用户、数据导入导出以及密码策略等。在"Oracle-建表空间-用户-导入DMP-设置密码不过期等工具"这个主题...
### Oracle数据库命令行导入DMP文件详解 #### 一、Oracle数据库及DMP文件简介 在深入了解如何通过命令行方式导入DMP文件之前,我们首先需要对Oracle数据库以及DMP文件的基本概念有所了解。 - **Oracle数据库**:...
在Oracle数据库管理中,导入`.dmp`文件是一项常见的任务,通常用于数据迁移、备份恢复等场景。为了确保导入操作能够顺利进行,并且不会对现有系统造成不必要的影响,需要在导入`.dmp`文件之前做好一系列准备工作。...
### 向Oracle中导入DMP文件 在Oracle数据库管理中,导出与导入数据是非常重要的操作之一,这对于备份恢复、数据迁移等场景有着至关重要的作用。本文将详细介绍如何通过Oracle的`exp`与`imp`工具来实现Dmp文件的导出...
oracle备份出来的数据可以导入到另一表空间.txt
### Oracle利用传输表空间导出导入数据的步骤详解 #### 一、背景介绍 在数据库管理领域,Oracle作为一款广泛使用的数据库管理系统,在企业级应用中占据着重要地位。随着业务的发展和技术的进步,数据库间的迁移需求...
6. **错误处理**:在导入过程中可能会遇到错误,如表空间不足、权限问题等,需要及时解决。 总结来说,"oracle DMP版本修改 (12C 导入 10G)"是一个涉及跨版本数据迁移的复杂任务,需要对Oracle数据库有深入理解,...
`directory`指向Oracle Data Pump目录对象,`dumpfile`是dmp文件名,`logfile`用于记录导入日志,`remap_tablespace`用于指定表空间重映射。 4. **imp-test.sql和imp-test2.txt**:这两个文件可能包含SQL脚本或...
在Oracle数据库管理中,导入DMP文件和对用户授权是两个关键操作,它们涉及到数据库的数据迁移和安全性。这里我们将详细探讨这两个主题。 首先,Oracle DMP(Data Pump Export)文件是一种用于导出数据库对象和数据...
Oracle 导入导出 DMP 文件详解 ...Oracle 导入导出 DMP 文件需要了解 Oracle 数据库的基本知识,包括创建数据库、创建表空间、导入 DMP 文件等步骤。此外,解决中文乱码问题也需要了解注册表修改字符集的方法。