SlideShare una empresa de Scribd logo
1 de 15
Oracle Networking
Overview
• 这一章讲述oracle数据库网络相关的配置和
  管理, 以及oracle共享服务器架构. 包含如下
  内容:
 – Oracle Net(之前被称为sqlnet)
   Oracle Net是oracle数据库CS架构(client-server)的
   关键组成部分, 有专门的工具用于设置和管理
   Oracle Net.
 – 专用服务器模式 vs. 共享服务器模式
   在专用服务器模式下, 一个客户进程与一个服务
   端进程进行交互; 而在共享模式下, 服务端进程
   被池化并且被客户端共享使用.
Oracle Net
                - Overview
• Oracle Net作用在如下方面:
 – 建立客户端到服务端的会话连接;
 – CS端的交互通过oracle net进行, 比如执行sql语句.
• Oracle Net通信协议是建立在当前操作系统所
  支持的通信协议之上的, 在11g版本之前oracle
  net几乎可以建立在任何流行的通信协议之上,
  在11g中为了遵循行业标准仅支持如下协议:
 –   TCP [with SSL]
 –   NMP(windows named pipes)
 –   SDP(sockets direct protocol)
 –   IPC
     客户进程与服务进程在同一台服务器.
Oracle Net
                 - Connect to Local
• 下面解释Oracle Net是如何建立会话的, 当客户端执行如
  下命令:
    CONNECT STORE/ADMIN123@ORCL11G
 该命令可以分解为:
  – connect        连接命令
  – STORE/ADMIN123 账户名和密码
  – @ORCL11G 连接到TNS名指定的数据库
  如果不指定@及后面的字符串那么则认为是连接到一个
  本地的数据库.
• Connect to a Local Instance
  按照上面的说明, 使用如下命令会建立到一个本地数据
  库的连接: CONNECT STORE/ADMIN123
  即使是连接到一个本地的数据库, 也需要使用到oracle
  net, 此时是基于IPC实现的. 连接到本地数据库是唯一不
  需要通过oracle监听器的. 通过环境变量ORACLE_SID决定
  具体连接到哪一个实例.
Oracle Net
                   - Connect Remote
• 使用connect进行连接时如果指定@TNSNAME时则会连接到一个远程数据
  库, 客户端需要从TNSNAME中得到远程数据库监听器的IP(或者
  hostname), 端口以及实例或者服务的名称, 之后才能开始建立连接. 通
  常而言使用tnsnames.ora文件进行配置, 客户端(eg, sqlplus)会通过环境
  变量TNS_ADMIN指定的位置找到该文件(在linux环境下首先会检查是否
  设置了ORALCE_HOME环境变量, 如果设置了则会在
  $ORACLE_HOME/network/admin目录下面查找该文件). TNS名通常配置
  如下(注意加粗体的部分):
   OCPDEMO =
       (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
        (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = ocpdemo.localhost)))
  按照如上配置之后, 就可以通过conn user/passwd@OCPDEMO连接到指定的数
  据库了.
• tnsping
  此命令用于验证TNS名称配置是否正确, 它会连接到指定IP/HOST的端口, 并提
  示连接是否成功.
Oracle Net
         - Launch a Server Process
• 当数据库监听器(Listener)收到客户端的连接请
  求时, 在专用服务器模式下(dedicated server),
  监听器将会启动一个服务端进程并分配一个端
  口, 该端口号将被返回给客户端. 自此监听器的
  工作完成, 并开始等待下一个会话连接.
  Tip: 数据库监听器被停止时, 新的数据库会话
  无法被建立, 但是不会影响到已经建立的会话.
• Drill down
  使用下面的sql查看某个会话的操作系统进程号:
 select a.program, a.SPID from v$process a, v$session b where
 a.ADDR = b.PADDR and b.machine like 'CN%‘
Oracle Net
              - Create a Listener
• 监听器配置文件listener.ora存放在
  $ORACLE_HOME/network/admin目录下面, 该文
  件应该包含至少一个监听器的配置, 该配置需
  要指定监听器使用的协议, 主机以及端口信息,
  默认监听的端口是1521端口. 可以使用Net
  Configuration Assistant(netca)工具配置监听器.
  典型的监听器配置如下:
   LISTENER =
     (DESCRIPTION_LIST =
       (DESCRIPTION =
         (ADDRESS = (PROTOCOL = TCP)(HOST =
       localhost.localdomain)(PORT = 1521))
       )
     )
Oracle Net
              - Database Registration
• 监听器在接收到连接实例的请求时, 首先需要对该实例进行定位, oracle是
  通过注册的方式实现监听器对实例的识别的. 可以有两种注册方式:
  – 静态注册
    在listener.ora文件中为监听器指定实例列表. 示例为LIST2监听指定了ocp11g实
    例:
      LIST2 = ......
      SID_LIST_LIST2 =
                     (SID_LIST =
                     (SID_DESC =
                     (ORACLE_HOME = /u01/oracle/app/product/11.1.0/db_1)
                                 (SID_NAME = ocp11g)))
  – 动态注册
  这种情况下, 数据库实例自动注册到某个指定的监听器, 监听器的名称通
  过初始化参数local_listener指定, 如果没有指定则注册到监听1521端口的
  监听器. 数据库在启动时或者每隔一分钟会进行监听器的注册操作, 也可
  以使用如下命令手动注册: alter system register; 使用如下方式修改监听器
  参数配置:
     alter system set local_listener=list2;
  或者hard-code:
  alter system set local_listener='(address=(protocol=tcp)(host=127.0.0.1)(port=1522))';
Oracle Net
 - Techniques for Name Resolution
• 前面介绍了使用tnsnames.ora文件对远程数
  据库服务进行连接, 下面介绍一些其他的方
  法:
 – Easy Connect
 这种方式是在10g版本中引入的, 仅支持TCP协议,
 无需任何配置. 示例:
 connect store/admin123@jwlnx1.bplc.co.za:1522/ocp11g
 connect store/admin123@jwlnx1.bplc.co.za
 – Directory Naming and External Naming
 使用这种方式需要配置额外的LDAP服务器.
Oracle Net
             - Net Manager
• Net Manager工具用于管理Oracle Net相关的配置,
  包括: 监听器(listener.ora)/TNS配置(tnsnames.ora)
  以及网络配置(sqlnet.ora), 其中sqlnet.ora文件不是
  必须的.以oracle用户登录之后通过netmgr命令启
  动, 工具界面如下(红色部分表示该节点修改的文
  件):
Oracle Net
- A simple diagram
Oracle Shared Server
• 默认情况下oracle处在共享服务器模式, 在这种模式下会为每一
  个会话启动一个服务端进程, 这样就带来了可扩缩性的问题.
  oracle提供了共享服务器模式(老版本被称为MTS server)以缓解
  这个问题.
• Share Server Architecture
  共享服务器模式完全基于服务端实现. 在实例启动时, 分派进程
  (dispatcher)和共享服务器(shared server)进程被启动, 同时在SGA
  分配了相应的对象内存(queue memory), 另外在接收会话请求时
  监听器的处理方式也有相应的变化(在共享服务器模式下客户端
  进程与服务端分派进程进行通讯). 共享服务典型的处理方式如
  下:
     • 客户端发送SQL语句
     • 分派进程将该SQL放入到输入队列(input queue)中
     • 共享服务器从输入队列中读取, 执行该SQL语句并将执行结果被放入到响
       应队列(response queue)中
     • 分派器进程读取相应对象并将结果返回给客户端.
  所有的分派器进程共享一个输入队列, 每个分配器进程有各自的
  响应队列.
Oracle Shared Server
                 - UGA
• 在专用服务器模式下, 会为每个会话分配对应的PGA内存;
  在共享服务器模式下, PGA内存则不再被使用, 会话数据将
  会保存在称为UGA(user global area)的内存区域中, UGA是大
  池(large pool)中的内存区域, 可以通过large_pool_size参数
  配置大池的内存大小. 下图描述了共享服务器的工作方式:
Oracle Shared Server
                    - Configuration
• 需要配置如下参数以启动oracle共享服务器模式:
  – dispatchers
  启动的分派器进程个数, 通常设置为2
  – max_dispatchers
  最大的分派器进程个数, 需要通过手动的方式启
  动额外的分派器进程
  – share_servers
  启动的共享服务器进程个数, 如果没有设置默认为1
  – max_shared_servers
  共享服务器进程个数的最大值, oracle会自动启动额外
  的共享服务器进程以应对突发的大量连接.
  使用如下命令对上述参数进行设置:
  alter system set dispatchers='(dispatchers=2)(protocol=tcp)';
  alter system set shared_servers=20;
• When to use
  共享服务器模式应用于OLTP系统, 以应付大量并发的短时间事务.
  如果并发事务数超过了100, 那么可以考虑使用共享服务器模式.
END

Más contenido relacionado

La actualidad más candente

Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangOrclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangmaclean liu
 
Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Chien Chung Shen
 
为10g rac cluster添加节点
为10g rac cluster添加节点为10g rac cluster添加节点
为10g rac cluster添加节点maclean liu
 
11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delaymaclean liu
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定Chien Chung Shen
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recoveryted-xu
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作maclean liu
 
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识maclean liu
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿yiditushe
 
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...Zhaoyang Wang
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述xlight
 
分区表基础知识培训
分区表基础知识培训分区表基础知识培训
分区表基础知识培训maclean liu
 
Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作zhubin885
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)acqua young
 
Installation and configuration 11g r2 asm using job role separation(grid & or...
Installation and configuration 11g r2 asm using job role separation(grid & or...Installation and configuration 11g r2 asm using job role separation(grid & or...
Installation and configuration 11g r2 asm using job role separation(grid & or...Zhaoyang Wang
 

La actualidad más candente (20)

Oracle 索引介紹
Oracle 索引介紹Oracle 索引介紹
Oracle 索引介紹
 
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangOrclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
 
Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹
 
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
 
为10g rac cluster添加节点
为10g rac cluster添加节点为10g rac cluster添加节点
为10g rac cluster添加节点
 
11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作
 
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识
 
Openstack网络规划
Openstack网络规划Openstack网络规划
Openstack网络规划
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Oracle SGA 介紹
Oracle SGA 介紹Oracle SGA 介紹
Oracle SGA 介紹
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿
 
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述
 
分区表基础知识培训
分区表基础知识培训分区表基础知识培训
分区表基础知识培训
 
Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
 
Installation and configuration 11g r2 asm using job role separation(grid & or...
Installation and configuration 11g r2 asm using job role separation(grid & or...Installation and configuration 11g r2 asm using job role separation(grid & or...
Installation and configuration 11g r2 asm using job role separation(grid & or...
 

Destacado

6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle securityted-xu
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rmanted-xu
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashbackted-xu
 
11, exceptions
11, exceptions11, exceptions
11, exceptionsted-xu
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rmanted-xu
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storageted-xu
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert systemted-xu
 

Destacado (7)

6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle security
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashback
 
11, exceptions
11, exceptions11, exceptions
11, exceptions
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rman
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
 

Similar a 4, OCP - oracle networking

1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍Zhaoyang Wang
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten TrainingLi Chen
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制maclean liu
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用hugo
 
第一讲 My sql初步
第一讲 My sql初步第一讲 My sql初步
第一讲 My sql初步hjl888666
 
Oracle Security 101
Oracle Security 101Oracle Security 101
Oracle Security 101Dahui Feng
 
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptjames tong
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]NetworkArBing Xie
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 maclean liu
 
MySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 ReviewMySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 Review郁萍 王
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换mysqlops
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解Yong Luo
 
MySQL自动切换设计与实现
MySQL自动切换设计与实现MySQL自动切换设计与实现
MySQL自动切换设计与实现orczhou
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0jinqing zhu
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Ethan M. Liu
 

Similar a 4, OCP - oracle networking (20)

1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
第一讲 My sql初步
第一讲 My sql初步第一讲 My sql初步
第一讲 My sql初步
 
Oracle Security 101
Oracle Security 101Oracle Security 101
Oracle Security 101
 
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]Network
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
MySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 ReviewMySQL5.6&5.7 Cluster 7.3 Review
MySQL5.6&5.7 Cluster 7.3 Review
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解
 
MySQL自动切换设计与实现
MySQL自动切换设计与实现MySQL自动切换设计与实现
MySQL自动切换设计与实现
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要
 

Más de ted-xu

12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuningted-xu
 
7, business event system
7, business event system7, business event system
7, business event systemted-xu
 
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneousted-xu
 
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activityted-xu
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & apited-xu
 
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebsted-xu
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflowted-xu
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow introted-xu
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & apited-xu
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notested-xu
 
5, sed
5, sed5, sed
5, sedted-xu
 
4, grep
4, grep4, grep
4, grepted-xu
 
3, regular expression
3, regular expression3, regular expression
3, regular expressionted-xu
 
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplifiedted-xu
 
1, shell intro
1, shell intro1, shell intro
1, shell introted-xu
 
6, awk
6, awk6, awk
6, awkted-xu
 
8, lamp
8, lamp8, lamp
8, lampted-xu
 
6, vim
6, vim6, vim
6, vimted-xu
 
5, system admin
5, system admin5, system admin
5, system adminted-xu
 
4, files & folders
4, files & folders4, files & folders
4, files & foldersted-xu
 

Más de ted-xu (20)

12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
 
7, business event system
7, business event system7, business event system
7, business event system
 
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneous
 
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activity
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
 
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebs
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflow
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & api
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notes
 
5, sed
5, sed5, sed
5, sed
 
4, grep
4, grep4, grep
4, grep
 
3, regular expression
3, regular expression3, regular expression
3, regular expression
 
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplified
 
1, shell intro
1, shell intro1, shell intro
1, shell intro
 
6, awk
6, awk6, awk
6, awk
 
8, lamp
8, lamp8, lamp
8, lamp
 
6, vim
6, vim6, vim
6, vim
 
5, system admin
5, system admin5, system admin
5, system admin
 
4, files & folders
4, files & folders4, files & folders
4, files & folders
 

4, OCP - oracle networking

  • 2. Overview • 这一章讲述oracle数据库网络相关的配置和 管理, 以及oracle共享服务器架构. 包含如下 内容: – Oracle Net(之前被称为sqlnet) Oracle Net是oracle数据库CS架构(client-server)的 关键组成部分, 有专门的工具用于设置和管理 Oracle Net. – 专用服务器模式 vs. 共享服务器模式 在专用服务器模式下, 一个客户进程与一个服务 端进程进行交互; 而在共享模式下, 服务端进程 被池化并且被客户端共享使用.
  • 3. Oracle Net - Overview • Oracle Net作用在如下方面: – 建立客户端到服务端的会话连接; – CS端的交互通过oracle net进行, 比如执行sql语句. • Oracle Net通信协议是建立在当前操作系统所 支持的通信协议之上的, 在11g版本之前oracle net几乎可以建立在任何流行的通信协议之上, 在11g中为了遵循行业标准仅支持如下协议: – TCP [with SSL] – NMP(windows named pipes) – SDP(sockets direct protocol) – IPC 客户进程与服务进程在同一台服务器.
  • 4. Oracle Net - Connect to Local • 下面解释Oracle Net是如何建立会话的, 当客户端执行如 下命令: CONNECT STORE/ADMIN123@ORCL11G 该命令可以分解为: – connect 连接命令 – STORE/ADMIN123 账户名和密码 – @ORCL11G 连接到TNS名指定的数据库 如果不指定@及后面的字符串那么则认为是连接到一个 本地的数据库. • Connect to a Local Instance 按照上面的说明, 使用如下命令会建立到一个本地数据 库的连接: CONNECT STORE/ADMIN123 即使是连接到一个本地的数据库, 也需要使用到oracle net, 此时是基于IPC实现的. 连接到本地数据库是唯一不 需要通过oracle监听器的. 通过环境变量ORACLE_SID决定 具体连接到哪一个实例.
  • 5. Oracle Net - Connect Remote • 使用connect进行连接时如果指定@TNSNAME时则会连接到一个远程数据 库, 客户端需要从TNSNAME中得到远程数据库监听器的IP(或者 hostname), 端口以及实例或者服务的名称, 之后才能开始建立连接. 通 常而言使用tnsnames.ora文件进行配置, 客户端(eg, sqlplus)会通过环境 变量TNS_ADMIN指定的位置找到该文件(在linux环境下首先会检查是否 设置了ORALCE_HOME环境变量, 如果设置了则会在 $ORACLE_HOME/network/admin目录下面查找该文件). TNS名通常配置 如下(注意加粗体的部分): OCPDEMO = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ocpdemo.localhost))) 按照如上配置之后, 就可以通过conn user/passwd@OCPDEMO连接到指定的数 据库了. • tnsping 此命令用于验证TNS名称配置是否正确, 它会连接到指定IP/HOST的端口, 并提 示连接是否成功.
  • 6. Oracle Net - Launch a Server Process • 当数据库监听器(Listener)收到客户端的连接请 求时, 在专用服务器模式下(dedicated server), 监听器将会启动一个服务端进程并分配一个端 口, 该端口号将被返回给客户端. 自此监听器的 工作完成, 并开始等待下一个会话连接. Tip: 数据库监听器被停止时, 新的数据库会话 无法被建立, 但是不会影响到已经建立的会话. • Drill down 使用下面的sql查看某个会话的操作系统进程号: select a.program, a.SPID from v$process a, v$session b where a.ADDR = b.PADDR and b.machine like 'CN%‘
  • 7. Oracle Net - Create a Listener • 监听器配置文件listener.ora存放在 $ORACLE_HOME/network/admin目录下面, 该文 件应该包含至少一个监听器的配置, 该配置需 要指定监听器使用的协议, 主机以及端口信息, 默认监听的端口是1521端口. 可以使用Net Configuration Assistant(netca)工具配置监听器. 典型的监听器配置如下: LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) )
  • 8. Oracle Net - Database Registration • 监听器在接收到连接实例的请求时, 首先需要对该实例进行定位, oracle是 通过注册的方式实现监听器对实例的识别的. 可以有两种注册方式: – 静态注册 在listener.ora文件中为监听器指定实例列表. 示例为LIST2监听指定了ocp11g实 例: LIST2 = ...... SID_LIST_LIST2 = (SID_LIST = (SID_DESC = (ORACLE_HOME = /u01/oracle/app/product/11.1.0/db_1) (SID_NAME = ocp11g))) – 动态注册 这种情况下, 数据库实例自动注册到某个指定的监听器, 监听器的名称通 过初始化参数local_listener指定, 如果没有指定则注册到监听1521端口的 监听器. 数据库在启动时或者每隔一分钟会进行监听器的注册操作, 也可 以使用如下命令手动注册: alter system register; 使用如下方式修改监听器 参数配置: alter system set local_listener=list2; 或者hard-code: alter system set local_listener='(address=(protocol=tcp)(host=127.0.0.1)(port=1522))';
  • 9. Oracle Net - Techniques for Name Resolution • 前面介绍了使用tnsnames.ora文件对远程数 据库服务进行连接, 下面介绍一些其他的方 法: – Easy Connect 这种方式是在10g版本中引入的, 仅支持TCP协议, 无需任何配置. 示例: connect store/admin123@jwlnx1.bplc.co.za:1522/ocp11g connect store/admin123@jwlnx1.bplc.co.za – Directory Naming and External Naming 使用这种方式需要配置额外的LDAP服务器.
  • 10. Oracle Net - Net Manager • Net Manager工具用于管理Oracle Net相关的配置, 包括: 监听器(listener.ora)/TNS配置(tnsnames.ora) 以及网络配置(sqlnet.ora), 其中sqlnet.ora文件不是 必须的.以oracle用户登录之后通过netmgr命令启 动, 工具界面如下(红色部分表示该节点修改的文 件):
  • 11. Oracle Net - A simple diagram
  • 12. Oracle Shared Server • 默认情况下oracle处在共享服务器模式, 在这种模式下会为每一 个会话启动一个服务端进程, 这样就带来了可扩缩性的问题. oracle提供了共享服务器模式(老版本被称为MTS server)以缓解 这个问题. • Share Server Architecture 共享服务器模式完全基于服务端实现. 在实例启动时, 分派进程 (dispatcher)和共享服务器(shared server)进程被启动, 同时在SGA 分配了相应的对象内存(queue memory), 另外在接收会话请求时 监听器的处理方式也有相应的变化(在共享服务器模式下客户端 进程与服务端分派进程进行通讯). 共享服务典型的处理方式如 下: • 客户端发送SQL语句 • 分派进程将该SQL放入到输入队列(input queue)中 • 共享服务器从输入队列中读取, 执行该SQL语句并将执行结果被放入到响 应队列(response queue)中 • 分派器进程读取相应对象并将结果返回给客户端. 所有的分派器进程共享一个输入队列, 每个分配器进程有各自的 响应队列.
  • 13. Oracle Shared Server - UGA • 在专用服务器模式下, 会为每个会话分配对应的PGA内存; 在共享服务器模式下, PGA内存则不再被使用, 会话数据将 会保存在称为UGA(user global area)的内存区域中, UGA是大 池(large pool)中的内存区域, 可以通过large_pool_size参数 配置大池的内存大小. 下图描述了共享服务器的工作方式:
  • 14. Oracle Shared Server - Configuration • 需要配置如下参数以启动oracle共享服务器模式: – dispatchers 启动的分派器进程个数, 通常设置为2 – max_dispatchers 最大的分派器进程个数, 需要通过手动的方式启 动额外的分派器进程 – share_servers 启动的共享服务器进程个数, 如果没有设置默认为1 – max_shared_servers 共享服务器进程个数的最大值, oracle会自动启动额外 的共享服务器进程以应对突发的大量连接. 使用如下命令对上述参数进行设置: alter system set dispatchers='(dispatchers=2)(protocol=tcp)'; alter system set shared_servers=20; • When to use 共享服务器模式应用于OLTP系统, 以应付大量并发的短时间事务. 如果并发事务数超过了100, 那么可以考虑使用共享服务器模式.
  • 15. END