Oracle数据库导入时发生错误 IMP-00058: ORACLE error 12170 encountered TNS连接超时 怎么回事
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库导入时发生错误 IMP-00058: ORACLE error 12170 encountered TNS连接超时 怎么回事相关的知识,希望对你有一定的参考价值。
错误提示连接超时,首先确认实例能连接上,此外指定file时加上绝对路径试试,有问题再追问。追问实例可以用PLSQL连上 SQLplus也没问题 我在当前目录操作 是Linux系统
追答确定ORCL和tnsnames.ora中的service_name是一致的么?
将file文件改成/home/oracle/.../acad1021.dmp这样的绝对路径试试。
tnsnames.ora这个文件好像不对劲,
HOST 应该是主机名? SID应该是orcl? GLOBAL_NAME 是什么啊?
service names就是要向别人提供服务,每个oracle数据库或者是oracle服务都要有一个服务名以区分其他数据库或者服务,一般情况都是该数据库的全局数据库名,其他应用通过这个service name就可以得到该数据库的服务。sid同样是一个标识符identifier,在UNIX平台中,sid和ORACLE_HOME通过hash算法得到一个唯一的key,这个key就是sid实例的sga标识。 你这里的@后面的名称要与service_name一致,你的问题是连接超时,明显就是连接配置的问题。
追问说得好抽象 这个key我们应该不知道具体是什么吧? servicename就是ORCL了 数据库的Sid也是ORCL 多谢你的提醒 的确是tnsnames.ora这个文件出了问题 问题已经解决了
参考技术A 我觉得可能是因为你添加了ORACLE_SID这个环境变量,你在imp命令中去掉@ORCL就可以了。oracle IMP导入错误 IMP-00003: ORACLE error 2298
一个项目:需要将数据库从老服务器迁移到新服务器,用exp导出的数据
imp导入exp导出备份时遇到下面错误提示:
IMP-00017: following statement failed with ORACLE error 2298:
"ALTER TABLE "RESERVATION" ENABLE CONSTRAINT "RESERVATION_FK31252591893468""
IMP-00003: ORACLE error 2298 encountered
ORA-02298: cannot validate (RESERVATION.RESERVATION_FK31252591893468) - parent keys not found
Import terminated successfully with warnings.
产生错误原因以及解决办法:
出现上面的原因有可能是在导出的时间某个表已经被导出了,可是他外键关联系有数据变化了,导致不一致,所以报错。exp不能保证事务的完整性。如果你导出主表。随后有人在主表增加记录,然后在子表增加记录,提交。
不能鉴定上面说的是否正确,应该也会发生,不过查了很多资料后又发现,应该是exp导出时少了一个参数。所以解决办法是在导出备份的脚本中加入这个参数consistent=y 默认为no .为的是保持一致的作用。$ exp rh/124 file=/home/oracle/rh201804260920.dmp owner=rh grants=no consistent=y
GRANTS参数表示导出时否要导出数据库对象上的授权(no不导出)
在导入就不会有报错了:$ imp rh/jkj file=/home/oracle/rh201804260920.dmp ignore=y full=y
以上是关于Oracle数据库导入时发生错误 IMP-00058: ORACLE error 12170 encountered TNS连接超时 怎么回事的主要内容,如果未能解决你的问题,请参考以下文章
我用sqoop从oracle导入数据到hdfs时,总是报 表或视图不存在错误,求解答...
Spark SQL - 从 oracle 导入时将 oracle 日期数据类型错误转换为时间戳(java.sql)