导dmp感想

本文探讨了在数据库导库过程中遇到的常见问题,包括大量数据处理、Oracle配置错误、版本不兼容、网络问题及对象失效等,并提供了相应的解决方法。

导库的问题与感想

1、 如果用户下的数据很多,直接删用户时间非常久,具体时间不知道,所以可以先把该用户下的相关表,对象删除

注意:删除该用户的表、对象时必须用该用户登录,而不能用sys用户,用sys用户登录这样所查找的表关于sys用户都会删除,会导致数据库出问题

2、 直接采用Oracle的Database Configuration Assistant进行删除数据库后最好把该数据库的相关文件也删除,否则相关文件还在,可能是导致导库的时候出现问题,出现如下提示:

IMP-00015: following statement failed because the object already exists:

"CREATE PUBLIC SYNONYM "G3E_AA_ELEM_TYPE" FOR "G3E_AA_ELEM_TYPE""

3、用导出库的模板进行创建数据库,创建时会提示:ORA-01078:failure in processing system parameters

具体原因不知,可能是数据库本身的参数与模板的有冲突,原本以为是版本不一致的问题,可后来有同事也是用的同一版本仍有该问题

4、 不同版本导致的问题,数据库和用户都创建好了,进行imp的时候提示如下错误:


刚开始以为是数据库字符集的问题,可是查了我的数据库和导出的数据库的数据库

字符集是一样的。在看看感觉应该是版本不一致的问题(我的Oracle是10.1,而导出库是10.2),imp只是支持向上兼容,即Oracle9可以导入Oracle8的dmp,但是版本不能相差太多。后来重新装了一个Oracle10.2版本的,终于可以导入了。

很不解的是之前我也到过一次dmp,导出库的版本也是10.2,怎么就成功的导入了,这也是我一直没敢断定是版本的问题。

5、 导库中导了不就又出现如下错误:

IMP-00058: 遇到 ORACLE 错误 3135

ORA-03135: 连接失去联系

IMP-00058: 遇到 ORACLE 错误 3114

ORA-03114: 未连接到 ORALCE

原因:经网上查找说是网络原因,所以我还是把用户删了再重建用户,然后再导,这次导是成功完成了。

不解的是自己的机子数据库进行导库跟网络有关系?

6、 dmp导成功了,但是登录数据库却发现有很包、过程什么的都是失效的,所以直接进行编译无效对象。

7、 打开gcomm,却发现什么功能也不能用,最后问了同事才知道原来登录gcomm的用户要在sys.user$表中对登录用户的SPARE4字段进行权限配置(SH_LR)。

Dmp终于到成功了。第二次导库竟然折腾了我一天两晚上。

<think>好的,用户想了解如何将Oracle DMP文件入到数据库中。我需要根据提供的引用资料整理出一个清晰的步骤指南。首先,我应该先回顾一下用户提供的四个引用,看看里面有没有具体的入方法。 引用1提到通过Window Powershell将dmp文件中的某个表入数据库,这可能涉及使用impdp或imp工具。引用3和4也提到了具体的命令行操作,比如复制文件、修改表空间路径,以及进入bin目录执行命令。引用2虽然主要是关于Oracle转MySQL,但可能涉及导出步骤,不过暂时可能用不上。 首先,DMP文件通常使用Oracle的imp或impdp工具。需要确认用户是否有合适的权限,比如DBA权限,这在引用1的问题(4)中提到了权限不足的问题,所以步骤中需要提醒用户检查权限。 然后,步骤可能包括准备DMP文件的位置、确保Oracle服务运行,尤其是监听程序(引用1的问题3提到无监听程序的问题),所以需要确保监听器启动。接着是使用命令行工具执行入,可能需要指定用户名、密码、文件路径等参数。引用3中的示例用了cp命令复制数据文件,并修改了表空间路径,这可能是在处理表空间不足的情况,所以入时可能需要调整表空间或处理存储路径问题。 另外,引用4提到进入Oracle的bin目录执行命令,所以需要指用户找到正确的路径,比如cd到bin目录下运行impdp。还需要注意DMP文件的版本兼容性,比如是否是从高版本导出到低版本,这可能引发问题,如引用1中的IMP-00010错误,因此需要提醒用户注意版本一致。 可能的问题包括权限不足、表空间不足、路径错误、监听程序未启动等,需要在步骤中给出解决方法或注意事项。例如,在步骤中提示如何检查监听器状态,或者如何处理表空间不足的情况,比如引用3中的修改表空间指向地址。 最后,用户可能需要示例命令,比如impdp或imp的具体用法,包括指定用户、文件、日志等参数。还需要提到使用Powershell或命令行工具执行,以及可能的错误处理,比如ORA-39143,可能需要使用DATA_ONLY参数或检查导出方式。 总结步骤应该是:准备环境、执行入命令、处理常见问题。同时要提醒注意事项,如权限、版本、表空间等。可能还需要提到图形化工具如Navicat的使用,但引用1提到Navicat用于连接Oracle,但DMP可能需要命令行,所以可能不适用,但可以提及其他工具。 现在需要把这些整理成结构化的步骤,确保每个步骤清晰,并包含常见问题的解决方法,引用对应的引用来源。</think>### Oracle DMP文件入数据库方法教程 #### 一、入前准备 1. **确认DMP文件来源** - 检查DMP文件是否与当前Oracle数据库版本兼容(高版本导出DMP文件可能无法直接入低版本)。 - 确保文件路径无特殊字符或空格(例如:建议存放在`/oracle/data/`或`C:\oracle\data\`)。 2. **启动监听服务** - 若出现`ORA-12541: TNS:无监听程序`错误,需启动监听服务: ```bash lsnrctl start ``` 3. **权限与表空间检查** - 确认当前用户具有`IMP_FULL_DATABASE`或DBA权限(避免`ORA-01031: insufficient privileges`错误)[^1]。 - 检查表空间是否充足(若不足需扩展或新建表空间)[^3]。 --- #### 二、命令行入步骤 1. **使用`impdp`工具(推荐)** `impdp`(Data Pump)支持并行入和更灵活的过滤。 ```bash # 进入Oracle安装目录的bin文件夹 cd /db/app/oracle/product/11.2.0/db_1/bin/ # 执行入命令(示例) impdp username/password@service_name DIRECTORY=data_pump_dir DUMPFILE=example.dmp REMAP_SCHEMA=source_user:target_user ``` - **参数说明**: - `DIRECTORY`: 指定DMP文件存放的逻辑目录(需提前通过`CREATE DIRECTORY`创建)。 - `REMAP_SCHEMA`: 若需切换用户模式,指定原用户与目标用户[^4]。 2. **使用`imp`工具(旧版本兼容)** ```bash imp username/password@service_name FILE=example.dmp FULL=Y ``` 3. **入指定表** ```bash impdp username/password@service_name TABLES=table_name DUMPFILE=example.dmp ``` --- #### 三、常见问题解决 1. **错误`IMP-00010:不是有效的导出文件`** - 原因:DMP文件损坏或版本不兼容。 - 解决:尝试使用`DATA_ONLY=Y`参数入数据(跳过元数据)。 2. **表空间不足** - 扩展表空间: ```sql ALTER TABLESPACE users ADD DATAFILE '/oracle2/datafile/users03.dbf' SIZE 500M; ``` - 或修改数据文件路径(如引用[3]示例)[^3]。 3. **权限不足** - 联系DBA授权: ```sql GRANT DBA TO username; ``` --- #### 四、图形化工具辅助 - **Navicat**:支持通过“数据传输”功能间接DMP文件(需先转换为SQL格式)[^2]。 - **Oracle SQL Developer**:内置数据泵工具,可图形化配置入任务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值