Chinaunix首页 | 论坛 | 博客
  • 博客访问: 863944
  • 博文数量: 72
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 435
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-27 20:07
个人简介

郭一军,网名guoyJoe,尖峰在线培训创始人、Oracle OCM、ITPUB论坛Oracle认证版版主、2013最佳精华贴、Senior DBA、Oracle OCT、 ACOUG MEMBER、CSDN 认证专家、RHCE、在线技术分享的倡导者和实践者。 http://www.jianfengedu.com http://jianfengedu.taobao.com

文章分类
文章存档

2014年(72)

分类: Oracle

2014-06-19 10:34:15

一丶客户端与服务端建立网络连接过程:



二丶专用连接的网络配置


参考官方文档:Books => NET => Net Services Reference =>

 1丶监听器的启用与配置(listener.ora)

 (1)动态监听与静态监听

 ①默认listener动态注册

   a.协议必须为TCP

  b.端口必须为1521

  c.对于监听的名称无要求

 

 ②  非默认listener动态注册(端口非1521)

  A丶配置listener.ora

LSNR =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST =ocm)(PORT = 1522))

    )

  )

 

  B丶alter system set local_listener=\'(ADDRESS = (PROTOCOL = TCP)(HOST =10.2.60.43)(PORT = 1522))\';

 

   C丶alter systemregister;

   --或着在tnsnames.ora中添加如下内容

   --LISTENERS_ORADB =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.132)(PORT = 1522))

--alter systemset local_listener=\'LISTENERS_ORADB\'

 

 ③  态监听

  A丶 配置listener.ora

LSNR2=

  (DESCRIPTION=

    (ADDRESS_LIST=

     (ADDRESS=(PROTOCOL=tcp)(HOST=ocm)(PORT=1521))

      ))

 SID_LIST_LSNR2=

  (SID_LIST=

    (SID_DESC=

      (GLOBAL_DBNAME=oca)

     (ORACLE_HOME=/u01/app/oracle/product/11.2.0)

      (SID_NAME=ocm))

     )

 

  B丶 启动监听LSNR2

  lsnrctl start lsnr2

     

 (2)动态监听和静态监听的区别

    ①动态注册的为readly,静态注册的状态为unknow

    ②动态是由PMON进程将服务注册到监听中:service_names/instance_name,

     静态注册是将服务写入listener.ora文件中global_dbname/sid_name

  ③动态修改不需要重启,静态每次修改都要重启监听

  ④动态重启不能马上注册服务,静态重启马上注册服务

  ⑤动态有相关的视图v$service_event/v$service_stats可以查等待事件及物理读逻辑读,而静态监听不能

   

 (3)既然有动态监听为什么还要静态监听呢?原因如下:

  ①监听器不是最早启动,oracle实例先启动

  ②监听器重启

  ③ oracle实例没有open

 

2丶客户端连接方式

参考官方文档:Books => NET => Net Services Reference =>

 (1)简易连接命名(EasyConnect):使用TCP/IP连接字符串

    ①sqlplus gyj/gyj@192.168.0.100:1521/test  --(sqlnet.ora:EZCONNECT)在windows下能看到密码

    ②sqlplusgyj@192.168.0.100:1521/test   --这种方法不行

    ③sqlpus gyj

     口令:gyj@192.168.0.100:1521/test     --用这个可以

 

(2)本地命名(Local Naming):使用本地命名配置,将网络服务名称保存在tnsnames.ora文件中

  ①sqlplus gyj/gyj@asm                  (sqlnet.ora:TNSNAMES)--在windows下能看到密码

    ②sqlplusgyj@asm 

     口令:gyj

 

从客户端到服务器端连接配置:


(4)目录命名(Directory Naming):使用符合LDAP的集中式目录服务器

   ①需要加载了OracleNet名称解析信息的LDAP:

      Oracle Internet Directory

      Microsoft Active Directory Services

     ②支持所有OracleNet协义

     ③支持高级连接选项

     ④Oracle Net配置文件

     ②  conn hr/hr@orcl

 

(5)外部命名(External Naming Method):使用支持的非Oracle命名服务

    ①网络信息服务(NIS)外部命名

    ②分布计算环境(DCE)单元目录服务(CDS)

     LISTENER.ORA和TNSNAMES.ORA

 

 

3丶sqlnet.ora

 参考官方文档:Books=> NET => Net Services Reference =>

  (1)认证方式

  (2)连接方式

    

三丶共享服务器


1丶共享服务器的工作方式

专用服务器进程中,每一个客户连接,都要开启一个专用的服务器进程,来为客户程序完成各种数据库请求。如果现在连接数据库的客户端比较多,而服务器上的内存等硬件资源已经达到了限制。这时,我们就可以考虑使用共享服务器模式,让一个服务器进程,能为多个客户程序提供服务。共享服务器模式的工作方式如下:


2丶共享服务器的配置

gyj@OCM> alter system setshared_server_sessions =10;

 

System altered.

 

gyj@OCM> alter system set shared_servers=3;

 

System altered.

 

gyj@OCM> alter system setmax_shared_servers=10;

 

System altered.

 

gyj@OCM> alter system setdispatchers=\'(PROTOCOL=TCP)(DISPATCHERS=3)\';

 

System altered.

 

gyj@OCM> alter system set max_dispatchers=5;

 

System altered.

 

oca =

 (DESCRIPTION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST = ocm)(PORT = 1521))

    )

   (CONNECT_DATA =

      (SERVER = SHARED)

     (SERVICE_NAME = ocm)

    )

  )

 

注意:共享服务模式客户端要连动态监听 ,如连静态监听会报这个报错:

gyj@OCM> conn gyj/gyj@oca;

ERROR:

ORA-12523: TNS:listener could not findinstance appropriate for the client connection

 

3丶共享服务器相关视图

 v$shared_server

 v$shared_server_monitor

 v$dispatcher

 

四丶排错流程

1丶  可以用LINUX的Strace命令跟踪监听的整个连接过程。

(1)[oracle@ocm~]$ ps -ef |grep tns

  oracle   10169     1  015:17 ?        00:00:00/u01/app/oracle/product/11.2.0/bin/tnslsnr lsnr2 -inherit

(2)strace -rf-o /gyj/lsnr.log -p 10169

 (3)gyj@OCM>conn gyj/gyj@ocp

 Connected.

(4)gyj@OCM>exit

(5)分析/gyj/lsnr.log跟踪日志

 

2丶常用的排错命令

 ping

 tnsping

 lsnrctl

 netstat -atulnp|grep 1521

 listener.ora

 tnsnames.ora

 sqlnet.ora

 show parameter service_names 




**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:        252803295

Email:    oracledba_cn@hotmail.com

Blog:      http://blog.csdn.net/guoyJoe

ITPUB:   http://www.itpub.net/space-uid-28460966.html

OCM:    
 _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036



     
阅读(948) | 评论(0) | 转发(0) |
0

上一篇:Oracle体系结构概述

下一篇:存储管理

给主人留下些什么吧!~~