同事在测试环境误删数据(还好只是测试环境),让我帮忙从昨晚的备份中找几个表的数据。
这套系统的权限,还没交到我手里,我查了一下有没有闪回,select flashback_on from v$database;
显示NO,没法用闪回了。还是从昨天的备份中先exp,再到测试环境imp吧。
exp还算比较顺利
exp bpm/bpm******@192.168.101.97:1521/dev**** file=/home/oracle/01.dmp indexes=y tables=ORIGINAL_NAME
导出dmp文件后,传到了测试环境。
imp bpm/bpm******@192.168.101.97:1521/dev**** file=/home/oracle/01.dmp indexes=y IGNORE=Y tables=ORIGINAL_NAME
问题来了,显示:
IMP-00058: ORACLE error 12541 encountered
ORA-12541: TNS:no listener
IMP-00000: Import terminated unsuccessfully
搜索了百度,都说要去修改tnsname.ora,把localhost改成实际IP。
其实原因很明白,就是他不认IP了,所以,你写的IP他找不到了,所以,监听肯定不通,才出现了ORA-12541
让我去修改配置文件,把localhost改成真实IP。
我是一个不想修改配置文件的人,除非迫不得已。你改配置文件,不小心打个中文空格,完了出错了,你还很难排查。
何不把IP改成localhost呢?try
imp bpm/bpm******@localhost:1521/dev**** file=/home/oracle/01.dmp indexes=y IGNORE=Y tables=ORIGINAL_NAME
果然可以!
搞定!收工!
ps:localhost只限直接在服务器上操作。如果是远程,还是要乖乖地修改tnsname.ora




