我们使用的系统是windows经过优化后oracle数据库出现了问题本地客户端不能连接但远程连接是没有问题的
经过检查原来是oracle的TNSListener服务没有起动用服务起动或者net start 起动均失败检查结果是注册表中的TNSListener的执行文件路径已经被删除了所以我们只要从其它安装oracle服务器的电脑上将部分注册表文件导出然后导入到本机就OK了
下面是我本机的导入的注册表内容
Windows Registry Editor Version
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Services\OracleOraHomeTNSListener]
Type=dword:
Start=dword:
ErrorControl=dword:
ImagePath=hex():acfccfcecece
DisplayName=OracleOraHomeTNSListener
ObjectName=LocalSystem
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Services\OracleOraHomeTNSListener\Security]
Security=hex:aaccffffdcfffdbcfd
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Services\OracleOraHomeTNSListener\Enum]
=Root\\LEGACY_ORACLEORAHOMETNSLISTENER\\
Count=dword:
NextInstance=dword:
将上面的内容拷贝到txt文件中然后将txt改成reg文件双击该文件即可
注意:我oracle执行文件安装在D盘如果不一样的话要将注册表中的键值修改成正确就可以的了