博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DBA1 第十一章:配置Oracle 网络环境

Posted on 2011-09-08 20:42  little健健  阅读(1131)  评论(0编辑  收藏  举报

Oracle Net Services

  • 建立网络会话之后,Oracle Net 充当客户机应用程序与数据库服务器的数据信使。
  • 在客户机计算机上,Oracle Net 是一个用于连接到数据库的后台组件。
  • 在数据库服务器上,Oracle Net 包括一个称为监听程序的活动进程。
  • Oracle Net Listener 负责协调数据库与外部应用程序之间的连接。
  • Oracle Net Services 最常见的用法是允许传入数据库连接,将oracle实例连接到非oracle数据源


Oracle Net Listener

  • Oracle Net Listener 是所有非本地用户连接到 Oracle 实例的网关。


建立连接过程

  • 建立网络连接
    • 运行监听程序的主机
    • 监听程序监视的端口
    • 监听程序使用的协议
    • 监听程序处理的服务名
  • 建立连接
    • Oracle Net Names Resolution 完成之后,连接请求会从用户或中间层应用程序(此后称为用户进程)传递到 Oracle Net Listener。监听程序会接收一个连接数据包,之后会检查这个连接数据包请求的 Oracle Net 服务名是否有效。
    • 如果未请求服务名,监听程序会通知连接请求,此外不执行任何其它操作。如果请求的服务名无效,监听程序会向用户进程传输一个错误代码。
  • 用户会话
    • 如果连接数据包请求的服务名有效,监听程序会衍生一个新进程来处理连接。这个新进程被称为“服务器进程”(PGA)。监听程序会连接到此服务器进程,并向其传递初始化信息,其中包括用户进程的地址信息。此时,监听程序不再处理连接,所有工作都会传递到服务器进程。服务器进程会检查用户的验证身份证明(通常为口令),如果身份证明有效,就会创建一个用户会话。
    • PGA的作用
      • 分析和运行通过应用程序发布的任何 SQL 语句。
      • 检查数据块执行 SQL 语句所需的数据库缓冲区高速缓存。
      • 从磁盘数据文件读取必要的数据块,如果 SGA 中尚未存在数据块,就将其传入系统全局区 (SGA) 的数据库缓冲区高速缓存部分。
      • 管理所有排序活动。所谓的程序全局区 (PGA) 是服务器进程的一部分,其中包含一个称为排序区域的内存区,这个内存区用于处理排序。
      • 以某种方式将结果返回到用户进程,使应用程序可以处理信息。
      • 读取审计选项并将用户进程报告给审计目标。

配置和管理 Oracle Network 的工具

  • Enterprise Manager
  • Oracle Net Manager
  • Oracle Net Configuration Assistant
  • 命令行

监听程序控制实用程序

  • 如果没有指定其它监听程序名称或执行 SET CURRENT_LISTENER 命令,这个命令就充当默认的监听程序(名为“LISTENER”)
  • UNIX 或 Linux 命令行语法
    • $ lsnrctl start
    • $ lsnrctl status
  • 提示符语法
    • $ lsnrctl  进入LSNRCTL
    • LSNRCTL> start
    • LSNRCTL> status
    • 监听名不是LISTENER的情况
      • LSNRCTL> set cur backup
      • LSNRCTL> stop 

监听程序主页

 单击 Enterprise Manager 中的“Database(数据库)”主页上的“Listener(监听程序)”链接来访问“Listener(监听程序)”主页。

网络服务管理页

  • 监听程序:可以添加、删除、启动和停止监听程序,还可更改其跟踪特性和事件记录特性。
  • 目录命名:可以定义简单的名称和连接标识符,并将定义的内容映射至连接描述符以确定网络位置和服务标识。
  • 本地命名:将网络服务名称保存在 tnsnames.ora 文件中。
  • 概要文件:配置 sqlnet.ora参数
  • 文件位置:更改 Net Services 配置文件的位置
创建监听程序
数据库服务注册
  • 动态服务注册
  • 静态服务注册
    • 单击“Edit Listener(编辑监听程序)”页上的“Static Database Registration(静态数据库注册)”,然后单击“Add(添加)”按钮
    • 重新加载或重启监听服务

Oracle Net命名方法

  • 简便连接:CONNECT username/password@host[:port][/service_name] (默认port1521,不提供服务名则默认服务名与主机名相同)
    • 默认情况下处于启用状态
    • 不需要进行客户端配置
    • 仅支持 TCP/IP(无 SSL)
    • 不支持高级连接选项
  • 本地命名
    • 本地命名方法将连接描述符(由其网络服务名标识)存储在客户机中名为tnsnames.ora的本地配置文件中(默认位置<oracle_home>/network/admin/tnsnames.ora。)
    • 需要客户端名称解析文件
    • 支持所有 Oracle Net 协议
    • 支持高级连接选项
    • 数据库管理员 (DBA) 必须首先分发更新的 tnsnames.ora 文件,用户才能连接到新服务或修改过的服务
  • 目录命名:将连接标识符存储在符合轻型目录访问协议 (LDAP) 的集中式目录服务器中
    • 新服务名添加到LDAP 目录后,即可供用户连接使用
    • 需要加载了 Oracle Net 名称解析信息的 LDAP
    • 支持所有 Oracle Net 协议
  • 外部命名:类似于目录命名
    • 使用支持的非 Oracle 命名服务
  • 配置服务别名
  • 高级连接选项
    • 连接时故障转移:则别名中会列出两个或多个监听程序地址。如果第一个地址不可用,则尝试使用第二个地址。
    • 负载平衡:Oracle Net 会随机从地址列表中选择一个地址
    • 源路由

测试 Oracle Net 连接性

  • 确保客户机与 Oracle Net 监听程序之间的连接性
  • 不验证所请求的服务是否可用
  • 支持简便连接名称解析
    • tnsping db.us.oracle.com:1521/dba10g
  • 支持本地和目录命名
    • tnsping orcl

专用服务器和和共享服务器

  • 专用服务器
    • 服务器进程和用户进程之间是一对一的关系
    • 每个服务器进程都使用系统资源,包括 CPU 周期和内存。(所以占用的内存比较高)
  • 共享服务器
    • 共享服务器体系结构的每个服务至少有一个(通常为多个)分派程序进程
    • 连接请求到达时,维护一个列表,此列表提供了可用于每个服务名的分派程序,以及每个分派程序的连接负载
    • 单个分派程序可以管理成百上千个用户会话
    • 通常存储在 PGA 中的大部分内存结构必须位于共享内存位置(默认情况下,在共享池中)
  • SGA 和 PGA
    • 用户会话数据存储在 SGA 中
  • 共享服务器:连接共享
  • 不能使用共享服务器的情况
    • 数据库管理
    • 备份和恢复操作
    • 批处理和批量加载操作
    • 数据仓库操作