IMP导入数据 出现ORA-01691问题 解决办法

本文详细介绍了当使用IMP导入数据到Oracle时遇到错误1691的原因及解决方法,主要涉及到表空间容量不足的问题,并提供了通过EM控制台和SQL语句增加表空间的方法。

问题描述:今天通过imp导入数据时,遇到 ORACLE 错误 1691


ORA-01691: Lob 段MID.SYS_LOB0000032765C00002$$无法通过1024(在表空间MID中)扩展

问题原因:在网上搜罗了一下,了解到出现
这种情况是由于表空间的容量不够引起的


解决办法:扩大表空间


附加备注:增大表空间可以通过em控制台设置,当然也可以用sql完成


select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'MID';

可以看到autoextensible = NO


然后执行sql语句

alter database datafile '/ORACLE/ORACLEDATA/ORCL/MID.ORA' autoextend on;


最后再尝试imp,问题得到解决



当通过Ctrl+C强行中断导入操作时,可能会导致一些不可预见的问题,如ORA-39171和ORA-01691错误。以下是恢复步骤: ### 1. 检查当前会话 首先,检查当前是否有任何会话正在执行导入操作。如果有,尝试终止这些会话。 ```sql SELECT sid, serial#, username, status FROM v$session WHERE username = 'YOUR_USERNAME'; ``` 终止会话: ```sql ALTER SYSTEM KILL SESSION 'SID,SERIAL#'; ``` ### 2. 检查表空间 检查表空间的使用情况,确保表空间有足够的空间来扩展LOB段。 ```sql SELECT tablespace_name, bytes_used, bytes_free FROM dba_tablespace_usage_metrics WHERE tablespace_name = 'NNG_DATA01'; ``` 如果表空间不足,可以通过添加数据文件来扩展表空间: ```sql ALTER TABLESPACE NNG_DATA01 ADD DATAFILE '/path/to/datafile.dbf' SIZE 10G; ``` ### 3. 检查LOB段 检查LOB段的状态,确保没有损坏。 ```sql SELECT segment_name, tablespace_name, bytes FROM dba_lobs WHERE tablespace_name = 'NNG_DATA01'; ``` ### 4. 恢复导入操作 如果表空间和LOB段都没有问题,可以尝试重新启动导入操作。建议使用`IMP`或`IMPDP`工具重新启动导入操作,并确保使用正确的参数。 ```sh impdp username/password@database dumpfile=your_dump.dmp logfile=import.log ``` ### 5. 检查日志 导入完成后,检查日志文件以确保没有其他错误。如果有其他错误,根据日志信息进行相应的处理。 ### 6. 清理临时文件 如果导入操作创建了临时文件,确保在导入完成后清理这些文件。 ```sql SELECT file_name FROM dba_temp_files WHERE tablespace_name = 'NNG_DATA01'; ``` 根据需要删除临时文件: ```sql ALTER TABLESPACE NNG_DATA01 DROP TEMPFILE '/path/to/tempfile.dbf'; ``` 通过以上步骤,应该能够恢复由于强行中断导入操作导致的ORA-39171和ORA-01691错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值