0
点赞
收藏
分享

微信扫一扫

本地访问VM中orcle 12c 时报错 ora12170



  • step 1 ping vm机 看能否成功
  • step 2 tnsping 远程实例
  • step 3 检查服务器即虚拟机中的监听状态
  • step4 配置监听文件 listener.ora
  • step 5 修改服务器 tnsnames.ora
  • step 6 重启服务器监听
  • step 7 配置本地tnsnames.ora
  • step 8 检查服务器防火墙
  • step 9 再次连接 成功
  • 总结


虚拟机中安装好oracle12c 后,在本地通过sqlplus连接时报错ORA-127170 TNS:Connect timeout occurred

本地访问VM中orcle 12c 时报错 ora12170_oracle

step 1 ping vm机 看能否成功

本地访问VM中orcle 12c 时报错 ora12170_oracle_02


看到正常ping通

step 2 tnsping 远程实例

tnsping  orcl

看到本地无法ping通远程的实例监听 ,还报错TNS-12541: TNS:no listener

本地访问VM中orcle 12c 时报错 ora12170_服务器_03

step 3 检查服务器即虚拟机中的监听状态

lsnrctl
status

本地访问VM中orcle 12c 时报错 ora12170_服务器_04

看到服务器监听也是正常的。

step4 配置监听文件 listener.ora

cd $ORACLE_HOME/network/admin
vi  listener.ora

修改后内容如下 把localhost 改为虚拟机IP,同时加上SID_LIST_LISTENER,
注意SID_NAME = orcl 是cdb,而SID_NAME = orclpdb是pdb容器

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.8.128 )(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER=
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /home/oracle/app/oracle/product/12.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
        (SID_DESC =
      (GLOBAL_DBNAME = orclpdb)
      (ORACLE_HOME = /home/oracle/app/oracle/product/12.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
)

本地访问VM中orcle 12c 时报错 ora12170_TCP_05

step 5 修改服务器 tnsnames.ora

vi tnsnames.ora
添加如下内容

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.128)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
ORCLPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb)
    )
  )

本地访问VM中orcle 12c 时报错 ora12170_服务器_06

step 6 重启服务器监听

lsrnctl stop
lsrnctl start

step 7 配置本地tnsnames.ora

本地 tnsnames.ora文件在TNS_ADMIN 环境变量中

orcl_128 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.128)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME= orcl)

)

(HS = OK)

)

本地访问VM中orcle 12c 时报错 ora12170_oracle_07

但是再次ping orcl_128 还是报一样的错

本地访问VM中orcle 12c 时报错 ora12170_服务器_08

就在快绝望时,检查服务器防火墙,才发现1521端口是关闭的

step 8 检查服务器防火墙

firewall-cmd --zone=public --query-port=1521/tcp

本地访问VM中orcle 12c 时报错 ora12170_TCP_09

firewall-cmd --permanent --zone=public --add-port=1521/tcp
systemctl restart firewalld.service # 重启防火墙 使设置生效

–permanent:表示设置为持久; 如果去掉–permanent: 表示临时生效
再次检查1521 端口,防火墙已经开放该断开

firewall-cmd --zone=public --query-port=1521/tcp

本地访问VM中orcle 12c 时报错 ora12170_服务器_10

step 9 再次连接 成功

再次在本地ping 时 终于能ping通

本地访问VM中orcle 12c 时报错 ora12170_linux 开放1521端口_11


然后也能正常连接

conn sys/123456@192.168.8.128:1521/orclpdb as sysdba
select sys_context('userenv','con_name') from dual;

本地访问VM中orcle 12c 时报错 ora12170_TCP_12

总结

1、先本地ping服务器ip看能否ping通
2、tnsping 实例,如果ping不通 需要检查下面
2.1 检查服务器监听是否启动
2.2 检查服务器防火墙是否开放1521端口
2.3 检查下服务器两个监听文件tnsnames.ora与listener.ora
2.4 检查本地


举报

相关推荐

0 条评论