zcl_ccc 发表于 2018-9-9 12:32:26

Oracle 的网络配置

  普通网络应用中会涉及3种进程:服务器端监听进程、服务器端服务进程、客户端进程。
  1、服务器启动监听进程,在一个固定IP地址和端口上监听请求。
  2、一个用户进程向监听进程发起请求。
  3、监听进程收到请求后,立刻派生一个服务进程。(创建或从进程池选取)
  4、监听进程把请求转发给派生出的服务进程。监听进程退出该请求活动。
  NET8协议
  Oracle提供了一个网络互连服务,叫做Oracle Net Service,叫做NET8服务。
  它实现了OSI中的上三层。其中Oracle客户端的OCI(Oracle call Interface)和服务器端的OPI(Oracle Program Interface)组成了会话层。这一层用来维护客户端服务器之间的完整SQL会话:
  1、解析SQL语句,进行语法分析
  2、为SQL语句申请并分配Cursor
  3、为SQL语句提供绑定变量
  4、从服务器的数据字典中获得记录集的元数据信息
  5、执行SQL语句
  6、返回结果
  7、关闭Cursor
  NET8由3个组件构成:Net Interface、Routing/Naming/Auth和TNS(Transparent Network Substrate),Net Interface进行数据传输,RNA和TNS透明支持底层协议。
  Oracle网络配置支持多种底层协议,包括TCP、TCPS、PIPE、SDP(Sockets Direct Protocol),NET8悉数支持这些协议。
  有两种连接方式:专有模式(Dedicated Server)和共享模式(Shared Server)
  专有模式为每个用户连接启动一个单独进程(影子进程)。共享模式是多个用户连接共享一个进程。
  服务器配置:
  静态注册
  $ORACLE_HOME/network/admin/listener.ora
  LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS =
  (PROTOCOL = TCP)
  (HOST= ORAServer)
  (PORT = 1521)
  (QUEUESIZE=20)(监听等待队列,默认为5)
  )
  )
  )
  (SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = ORCL)
  (ORACLE_HOME = /oracle/product/10.2.0/)
  (SID_NAME = ORCL)
  )
  )
  动态注册:(推荐使用)
  首先要在参数文件中设置两个参数:
  SERVICE_NAME和INSTANCE_NAME(SID)
  如果没有定义SERVICE_NAME参数,则DB_NAME和DB_DOMAIN会组成一个全局数据库名称,注册到监听器里。
  PMON会自动定期向监听进程注册、更新信息
  也可以强制:
  SQL>alter system register;
  动态配置结果准确,推荐使用。而且在RAC环境中,动态注册还包括每个实例的负载。这也是RAC可以实现负载均衡和故障转移的基础。
  $lsnrctl status
  READY:实例可以接受连接。
  BLOCKED:实例目前不能接受连接。
  UNKNOWN:静态注册,状态未知。
  客户端配置:
  客户端要连接到服务器,需要提供连接描述符,包括:
  服务器网络地址、端口号;数据库服务名称。
  $ORACLE_HOME/network/admin/tnsnames.ora
  mydb = (连接标识符)
  (DESCRIPTION = (连接描述符)
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = orcl)
  )
  )
  一共有4中连接方式:
  Local Naming:利用tnsnames.ora完成翻译过程。
  Easy Connect Naming:不需要配置文件。Oracle 10g, 11g才可以支持。
  External Naming:在网络上集中记录连接信息。
  Directory Naming:在LDAP目录中保存这些信息。
  tnsnames.ora也可以通过$TNS_ADMIN来指定目录
  查找顺序:
  $TNS_ADMIN
  /var/opt/oracle
  $ORACLE_HOME/network/admin

页: [1]
查看完整版本: Oracle 的网络配置