配置Oracle网络环境


当客户端通过网络以"connect 用户名/密码@连接字符串"的形式连接Oracle数据库时,需要监听程序的协助,当连接建立后,即使监听程序挂掉也不会影响已经建立好的连接。 

用户连接oracle数据库服务器主要有两种方式:专有服务器连接和共享服务器连接

  • 在专用服务器模式中,对于每个运行数据库应用程序的用户进程都由执行Oracle 数据库服务器代码的专用服务器进程提供服务。

每个服务器进程都有自己专用的PGA,这个PGA 在服务器进程启动时创建,对PGA 的访问权限仅限于该服务器进程,并且只能由代表该服务器进程的Oracle 代码对PGA 进行读写。

  • 在共享服务器模式中,不必为每个连接都提供一个专用服务器进程。分派程序将多个传入网络会话请求引到共享服务器进程池。共享服务器进程为所有客户机请求提供服务。

多个客户端用户共享服务器进程,且UGA被转移到SGA(如果配置了共享池或者大型池),PGA将只剩下栈空间。 

配置和管理Oracle Net 的工具主要有dbconsole、netca、netmgr、和命令行工具(vi) 

Oracle Net支持多种连接解析方式:

  • Easy Connect(EZCONNECT)

使用简便连接时,可提供Oracle Net 连接所需的所有信息作为连接字符串的一部分。简便连接的连接字符串采用以下形式:

username/password@hostname[:port][/service_name]

监听程序端口和服务名为可选项。如果未提供监听程序端口,Oracle Net 假定使用的是默认端口1521。如果未提供服务名,Oracle Net 假定连接字符串中提供的数据库服务名与主机名是相同的。

SQL> conn hr/hr@192.168.0.90:1521/orcl.example.com

  • 本地命名(TNSNAMES)

使用本地命名时,用户可提供Oracle Net 服务的别名。Oracle Net 会根据本地已知服务的列表来检查别名,如果发现匹配名称,会将别名转换为主机、协议、端口和服务名。

本地命名的一个优势是,数据库用户仅需要记住简便连接所需的短别名,而不必记住很长的连接字符串。

如果组织的Oracle Net 服务配置不经常更改,则适合使用本地命名。

SQL> conn hr/hr@orcl

  • 目录命名和外部命名 

Oracle 网络相关的文件位于$TNS_ADMIN目录下,其中主要有sqlnet.ora、listener.ora、tnsnames.ora三个文件

sqlnet.ora :位于数据库服务器上,用于定义连接解析方式(默认连接方式为TNSNAMES, EZCONNECT)

listener.ora :位于数据库服务器上,用于监听器的配置文件

tnsname.ora :位于客户机上,包含网络服务器名,并映射到连接字符串

默认可能不存在sqlnet.ora、listener.ora两个文件,但监听程序仍然可以以默认方式启动。此时,Oracle将自动在解析地址为计算机主机名,端口为1521的地址上启动一个名为"LISTENER"的监听器。

$ cat sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /u01/app/oracle
$ cat listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora11g.example.com)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent
$ cat tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.90)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl.example.com)
    )
  )
$ lsnrctl service
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-SEP-2013 22:11:58
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora11g.example.com)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
        LOCAL SERVER
Service "orcl.example.com" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
        LOCAL SERVER
Service "orclXDB.example.com" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:972 state:ready
        DISPATCHER <machine: ora11g.example.com, pid: 5008>
        (ADDRESS=(PROTOCOL=tcp)(HOST=ora11g.example.com)(PORT=56668))
The command completed successfully

Oracle网络配置和连接管理  

Oracle网络服务端配置

三架马车保障Oracle网络的连通性

Oracle网络应用结构

 

更多详情见请继续阅读下一页的精彩内容

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容