ORACLE Listener

一台服务器对应一个listener
一个listener可以有多个监听端口
监听器基于的协议:
TCP; TCPS; IPC(内部通信协议)
建立客户端与数据库连接:
IP;端口;SID;协议
图形化配置:netmgr
查看监听器:
lsnrctl 参数:status / stop / start / load
配置多个端口,形成负载均衡(图形):
netmgr
1. 配置listener,添加端口1521,1522....
ORACLE 监听器 - thomas_shen - 系统工程师
  
2. 配置Service Naming,针对数据库添加端口1521,1522....
ORACLE 监听器 - thomas_shen - 系统工程师
3. 设置方式:
ORACLE 监听器 - thomas_shen - 系统工程师
 
ORACLE 监听器 - thomas_shen - 系统工程师
4. 查看具体配置文件
/$ORACLE_HOME/network/admin/tnsnames.ora
修改为如下内容:
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rhel_2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = rhel_2)(PORT = 1522))
      (LOAD_BALANCE = yes)
      (FAILOVER = true) 说明:failover --> connect-time failover
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
5. 重启监听器 
6. 客户端可以配置如下信息在tnsname.ora中,均可连接数据库。
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 11.11.0.104)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
或者
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 11.11.0.104)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
启动监听器后报错
lsnrctl start
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNS-12537: TNS:connection closed
 TNS-12560: TNS:protocol adapter error
  TNS-00507: Connection closed
   Linux Error: 29: Illegal seek
可能原因是没有配回环地址
vi /etc/hosts
添加内容:127.0.0.1 localhost
客户端无法连接到ORACLE
1. 检查服务器端是否可以用输入用户密码的方式连接
例如:
sqlplus sys/password@orcl as sysdba
2. 如果也不可以,说明可以监听器中没有注册数据库服务
3. 在服务器端使用简单登录sqlplus / as sysdba
4. 输入:alter system register;
5. 检查lsnrctl信息:lsnrctl status
6. 确认服务器端可以登录,客户端可以登录
客户端tnsping通,但是无法登录数据库
1. 确定tnsname.ora配置正确;
2. 确定数据库是否在listener中注册完成。
如果没有注册:alter system register;
ORACLE11g,数据库始终无法注册监听器
手工修改文件listener.ora
修改后:
SID_LIST_LISTENER = 
  (SID_LIST =
    (SID_DESC =
        (GLOBAL_NAME=orcl10g)
        (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
        (SID_NAME=orcl10g)
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = RHEL10G)(PORT = 1521))
    )
  )
使用lsnrctl status查看就可以看到数据库

监听器密码设置,目的是防止被用户非正常关闭。

Comments

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error