Tnsping 通但是报ORA-12505错误

来源:互联网 发布:大乐透,简单公式算法 编辑:程序博客网 时间:2024/05/20 23:31
Tnsping 通但是报ORA-12505错误,监听程序无法识别SID






另参考:

Oracle静态监听和动态监听

 

链接:http://www.xifenfei.com/1008.html

一、静态注册
静态注册指实例启动时读取listener.ora配置文件,将实例和服务注册到监听程序。无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务。

SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC= 
     (GLOBAL_DBNAME= rman)
     (ORACLE_HOME= /u01/oracle)
     (SID_NAME= rman)
    )
   (SID_DESC=
     (GLOBAL_DBNAME= xienfei)
     (ORACLE_HOME= /u01/oracle)
     (SID_NAME= xff)
     )
  )
LISTENER =
  (DESCRIPTION_LIST=
    (DESCRIPTION=
      (ADDRESS= (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521))
    )
  )

说明:
1)(ORACLE_HOME = /u01/oracle) oracle_home目录,测试不加也行
2)本静态监听两个数据库实例,每个实例的静态监听写到SID_DESC中
3)在数据库未open状态中,就可以远程连接到数据库,对数据库进行操作
4)使用静态监听时,客户端的tns最好配置为SERVICE_NAME,当然也可以同时配置SID和SERVICE_NAME,等数据库启动后,tns中无论是sid还是SERVICE_NAME均能访问数据库

二、动态注册
动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册到listerer中。如果没有设定instance_name,将使用db_name初始化参数值。如果没有设定service_names,将拼接db_name和db_domain参数值来注册监听。

SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC=
      (SID_NAME= PLSExtProc)
      (ORACLE_HOME= /u01/oracle)
      (PROGRAM= extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST=
    (DESCRIPTION=
      (ADDRESS= (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521))
      (ADDRESS= (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

说明:
1)不需要人工干预在lsnrctlstart后,会自动注册数据库的instance_name,service_name,然后tns不论使用SID和SERVICE_NAME均可以连接上来
2)修改了SERVICE_NAME或者SID不用修改listener.ora文件

0 0
原创粉丝点击