Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1143419
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-08-19 14:28:22

网络配置文件有:
1.概要文件sqlnet.ora
2.监听文件listener.ora
3.本地命名参数文件tnsnames.ora
4.连接管理参数文件cman.ora
5.目录服务器文件ldap.ora
常用的是前3种。

概要文件sqlnet.ora

sqlnet.ora的配置有多种作用,如trace,认证服务,黑白名单等。sqlnet.ora的配置没有特定格式要求,需要的配置项,逐条增加即可,但最好是一个配置参数只有一行,比如配置白名单时,一行可能很长,确保是一行内容。
以下是其中配置的一些重要参数说明:

 

 参数  用途   默认值及取值范围  示例
 BEQUEATH_DETACH  控制是否打开unix系统中信号处理(signal handling  默认值为no
 yes
表示关闭
 no
表示打开
 BEQUEATH_DETACH=yes
 DEFAULT_SDU_SIZE  指定session data unit (SDU) 的大小,单位是bytes
 建议在client端和server端都设置这个参数
 确保链接的时候使用相同的SDU size
 如果client端和server端配置的值不匹配会使用较小的
 默认值:2048 bytes (2 KB)
 
取值范围:512 to 32768 bytes (32 KB)
 DEFAULT_SDU_SIZE=4096
 DISABLE_OOB  如果设置为off,该参数允许ORACLE Net使用底层协议
 提供的紧急数据发送和接收“
break”消息。
 设置为
on则不允许。
 默认off
 取值on/off
 DISABLE_OOB=on
 LOG_DIRECTORY_CLIENT  指定客户端log日志文件的位置    LOG_DIRECTORY_CLIENT=/oracle/network/log
 LOG_DIRECTORY_SERVER  指定serverlog日志文件的位置    LOG_DIRECTORY_SERVER=/oracle/network/log
 LOG_FILE_CLIENT  指定客户端log文件名  sqlnet.log  LOG_FILE_CLIENT=client
 LOG_FILE_SERVER  指定serverlog文件名  sqlnet.log  LOG_FILE_SERVER=svr.log
 NAMES.DCE.PREFIX  指定分布式计算环境(DCE)的单元名称,用于名称查找。  /.:/subsys/oracle/names  NAMES.DCE.PREFIX=/.:/subsys/oracle/names
 NAMES.DEFAULT_DOMAIN  设定客户端解析名字的域,连接名会自动增加域名    NAMES.DEFAULT_DOMAIN=acme.com
 NAMES.DIRECTORY_PATH  指定client name解析方法的次序。  NAMES.DIRECTORY_PATH=(tnsnames,onames, hostname)
 有以下取值:
 tnsnames
:本地命名方法,
 通过客户端
tnsnames.ora的配置
 onames
:通过oracle名称服务器获得数据库服务名
 ldap
:通过目录服务器获得服务名。
 ezconnect
hostname
 客户端使用
TCP/IP连接标识,
 包含主机名,端口号,服务名。

 cds
:用于获得分布式环境中的数据库名。
 nis
:网络信息服务,通过NIS获得服务信息。
 NAMES.DIRECTORY_PATH=(tnsnames,onames)
 RECV_BUF_SIZE  指定操作会话接收缓冲区的大小,
 适用于
TCP/IPSSLSDP协议
 操作系统决定  RECV_BUF_SIZE=11784
 SEND_BUF_SIZE  指定操作会话发送缓冲区的大小,
 适用于
TCP/IPSSLSDP协议
 操作系统决定  SEND_BUF_SIZE=11784
 SQLNET.AUTHENTICATION_SERVICES   指定启动一个或多个认证服务,
 推荐设置为
none或指定1个认证服务。
 默认值是:none
 none
表示没有认证方法,
 有效的用户名和密码可以访问数据库
 all
用于所有认证方法。
 nts
用于windows nt认证。
 SQLNET.AUTHENTICATION_SERVICES = (NTS)
 SQLNET.INBOUND_CONNECT_TIMEOUT  指定客户端没有链接成功超时的时间。
 超时之后
oracle会中断链接,同时报错。
 60  SQLNET.INBOUND_CONNECT_TIMEOUT=3
 TCP.EXCLUDED_NODES  指定不允许访问oracle的节点,
 可以使用主机名或者
IP地址。黑名单。
 语法:TCP.EXCLUDED_NODES=(hostname
| ip_address, hostname | ip_address, ...)
 TCP.EXCLUDED_NODES=(finance.us.acme.com,
mktg.us.acme.com, 144.25.5.25)
 TCP.INVITED_NODES  指定允许访问db的客户端,
 他的优先级比
TCP.EXCLUDED_NODES高。
 白名单。
 语法:TCP.INVITED_NODES=(hostname
| ip_address, hostname | ip_address, ...)
 TCP.INVITED_NODES=(sales.us.acme.com,
hr.us.acme.com, 144.185.5.73)
 TCP.VALIDNODE_CHECKING  使用这个参数来启用黑白名单。  默认是no  TCP.VALIDNODE_CHECKING=yes
 TNSPING.TRACE_DIRECTORY  使用这个参数指定tnsping trace文件的目录  默认是$ORACLE_HOME/network/trace目录  TNSPING.TRACE_DIRECTORY=/oracle/traces
 TNSPING.TRACE_LEVEL  设置tnspingtrace级别  默认off
 取值:
 off
,没有trace
 user
,用于用户trace信息
 admin
,用于管理员trace信息
 support
,用于osstrace信息。
 TNSPING.TRACE_LEVEL=admin
 TRACE_DIRECTORY_CLIENT  指定客户端trace文件目录    TRACE_DIRECTORY_CLIENT=/oracle/traces
 TRACE_DIRECTORY_SERVER  指定服务端trace文件目录    TRACE_DIRECTORY_SERVER=/oracle/traces
 TRACE_FILE_CLIENT  指定客户端trace文件名  sqlnet.trc  TRACE_FILE_CLIENT=clientsqlnet.trc
 TRACE_FILE_SERVER  指定服务端trace文件名  svr_pid.trc  TRACE_FILE_SERVER=svrsqlnet.trc
 TRACE_LEVEL_CLIENT  设置客户端的trace级别  默认off
 取值:
 off
,没有trace
 user
,用于用户trace信息
 admin
,用于管理员trace信息
 support
,用于osstrace信息。
 TRACE_LEVEL_CLIENT=user
 TRACE_LEVEL_SERVER  设置服务端的trace级别  默认off
 取值:
 off
,没有trace
 user
,用于用户trace信息
 admin
,用于管理员trace信息
 support
,用于osstrace信息。
 TRACE_LEVEL_SERVER=admin



监听文件listener.ora

监听文件的配置可以通过netca配置,或手动编辑,手动编辑需要注意其中有一定的格式要求。一个$ORACLE_HOME/network/admin下面只有1个listener.ora,如果配置多个监听也是在这一个文件中编辑。
一个常见的监听文件例子:

LISTENER=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=sale-server)(PORT=1521))
      (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=sales.us.acme.com)
      (ORACLE_HOME=/oracle10g)
      (SID_NAME=sales))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/oracle10g)
      (PROGRAM=extproc)))

*配置TAF,有一个值得注意的地方,如果要使用TAF,不要在监听文件listener.ora的SID_LIST_listener_name部分配置GLOBAL_DBNAME,静态地配置全局数据库名会禁用TAF。

监听参数配置主要有3部分:协议地址部分、静态服务注册部分、控制参数

协议地址

这部分既是配置LISTENER =后面的内容,LISTENER是监听名。
 

 参数  用途  默认值及取值范围  示例
 DESCRIPTION  使用该参数包含监听协议地址描述    见前面
 ADDRESS  一个ADDRESS包含一个协议地址,包含在DESCRIPTION    见前面
 QUEUESIZE  指定了监听可以处理的并发连接请求的最大数量  solairs5
 windows nt server50
 (ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521)(QUEUESIZE=20))
 RECV_BUF_SIZE  设置接收缓冲区的大小,
 该参数要么跟在DESCRIPTION后面,
 要么放在ADDRESS内容的最后面。
 默认32K  listener_name=
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)
      (RECV_BUF_SIZE=11784))
    (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)
      (RECV_BUF_SIZE=11784)))
 listener_name=
  (DESCRIPTION=
    (RECV_BUF_SIZE=11784))
    (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)
    (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
 SEND_BUF_SIZE  设置发送缓冲区的大小,
 该参数要么跟在DESCRIPTION后面,
 要么放在ADDRESS内容的最后面。
 默认8K  listener_name=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)
        (SEND_BUF_SIZE=11280))
      (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)
        (SEND_BUF_SIZE=11280))))
 listener_name=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (SEND_BUF_SIZE=11280))
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)
      (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))

 

静态服务注册

这部分内容主要是配置SID_LIST_listener_name =后面的内容,listener_name对应前面配置的监听名。

SID_LIST,SID描述符的列表,后面包含多个SID_DESC
SID_DESC描述数据库实例服务信息,或非数据库服务,跟在SID_LIST之后。


 参数  用途  默认值及取值范围  示例
 ENVS  该参数指定环境变量用于监听执行独占服务程序或者PROGRAM参数指定的程序。  (ENVS="variable=value,variable=value")
变量和值不能包含逗号,双引号,单引号,等号。
 (ENVS="LD_LIBRARY_PATH=/oracle/10g/lib:/oracle/10g/ctx/lib")
 GLOBAL_DBNAME  指定数据库的全局名,用来标识数据库服务    (GLOBAL_DBNAME=sales.us.acme.com)
 ORACLE_HOME  指定ORACLE_HOME目录    (ORACLE_HOME=/usr/oracle)
 PROGRAM  标识服务的可执行程序的名称。    (PROGRAM=extproc)
 SID_NAME  指定实例的SID    (SID_NAME=sales)
 SDU  指定SDU大小,传输数据包的大小。  默认值:2K
 取值范围:512 bytes to 32768 (32 KB)
 (SDU=2085)

 

控制参数
以下列出一些常用的控制参数。


   用途  默认值及取值范围  示例
 INBOUND_CONNECT_TIMEOUT_listener_name

指定了在网络连接建立以后,客户端完成连接请求的时间,单位是秒。
如果监听没有接受到客户端的请求,
会报
ORA-12525的错误。
该参数设置建议和SQLNET.ORA
INBOUND_CONNECT_TIMEOUT参数一起使用,
并且设置得更小些,
如果是由于某些特殊环境正常的系统或网络延迟,

说明需要增加连接时间

 默认60  INBOUND_CONNECT_TIMEOUT_listener=2
 LOG_DIRECTORY_listener_name  指定了监听日志的目录    LOG_DIRECTORY_listener=/oracle/network/admin/log
 LOG_FILE_listener_name  指定监听文件名  listener.log  LOG_FILE_listener=list.log
 LOGGING_listener_name  是否记录日志。  默认是on
on/off
 LOGGING_listener=on
 PASSWORDS_listener_name  储存加密的监听密码。该部分不通奸手动编辑明文密码,
该由命令设置监听密码后自动加密添加。
   LOGGING_listener=on
 SAVE_CONFIG_ON_STOP_listener_name  该参数设置,在监听启动时用set命令修改的内容,
是否在监听
STOP后写入listener.ora文件中
 默认false
取值:true|false
 SAVE_CONFIG_ON_STOP_listener=true
 TRACE_DIRECTORY_listener_name  指定监听的trace目录    TRACE_DIRECTORY_listener=
/oracle/network/admin/trace
 TRACE_FILE_listener_name  指定监听的trace文件名  listener.trc  TRACE_FILE_listener=list.trc
 TRACE_LEVEL_listener_name  指定监听打开的级别   默认off
 取值:
 off
,没有trace
 user
,用于用户trace信息
 admin
,用于管理员trace信息
 support
,用于osstrace信息。
 TRACE_LEVEL_listener=admin

 


本地命名参数文件tnsnames.ora

本地命名参数文件,用于配置本地命名方法,将复杂得连接描述符配置为一个本地命名,通过该tnsname连接到远程数据库。该文件的存放除了默认位置,也可以通过TNS_ADMIN环境变量指定。
一个最基本的tnsname配置,注意格式。
net_service_name=
  (DESCRIPTION=
    (ADDRESS=(protocol_address_information))
    (CONNECT_DATA=
      (SERVICE_NAME=service_name)))

配置多个连接描述符的例子:
net_service_name=
  (DESCRIPTION_LIST=
    (DESCRIPTION=
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information))
      (CONNECT_DATA=
         (SERVICE_NAME=service_name)))
    (DESCRIPTION=
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information))
      (CONNECT_DATA=
         (SERVICE_NAME=service_name))))

配置多个地址的例子:
net_service_name=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (LOAD_BALANCE=on)
      (FAILOVER=off)
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information)))
    (ADDRESS_LIST=
      (LOAD_BALANCE=off)
      (FAILOVER=on)
      (ADDRESS=(protocol_address_information))
      (ADDRESS=(protocol_address_information)))
    (CONNECT_DATA=
      (SERVICE_NAME=service_name)))

客户端配置负载平衡的例子:
sample2=
  (DESCRIPTION=
    (LOAD_BALANCE=on)
    (FAILOVER=on)
    (ADDRESS_LIST=
      (SOURCE_ROUTE=yes)
      (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
      (ADDRESS=(PROTOCOL=tcp)(HOST=host2)(PORT=1521)))
    (ADDRESS_LIST=
      (SOURCE_ROUTE=yes)
      (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(port=1630))
      (ADDRESS=(PROTOCOL=tcp)(HOST=host4)(port=1521)))
    (CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))

其中一些参数的设置说明:
连接描述符
可以使用DESCRIPTION或DESCRIPTION_LIST
例子可以参考前面的内容。

协议地址部分
使用ADDRESS或ADDRESS_LIST,例子参考前面的内容。

可选参数列表
这部分包含以下内容:


 参数  用途  默认值及取值范围  示例
 FAILOVER  启用或禁用,当连接失败时,可以切换连接到其它协议地址。  默认是on
 取值:on | off | yes | no | true | false
 参考前面的示例
 LOAD_BALANCE  可以让客户端在多个地址之间的负载均衡地连接。  默认是on
 取值:on | off | yes | no | true | false
 参考前面的示例
 RECV_BUF_SIZE  接收缓冲区的大小,该设置可以覆盖掉sqlnet.ora中的设置    可以加在ADDRESS中或DESCRIPTION的后面
(RECV_BUF_SIZE=11784)
 SDU  设置传输数据包的大小,及SDU大小,该设置会覆盖sqlnet.oraDEFALUT_SDU_SIZE的设置  默认:2048 bytes (2KB)
 取值:512 bytes to 32768 (32 KB)
 net_service_name=
(DESCRIPTION=
  (SDU=2085)
    (ADDRESS_LIST= ......
 SEND_BUF_SIZE  发送缓冲区的大小,该设置可以覆盖掉sqlnet.ora中的设置    可以加在ADDRESS中或DESCRIPTION的后面
(SEND_BUF_SIZE=11784)
 SOURCE_ROUTE  该参数可以使得通过多个协议地址路由,按顺序使用协议地址,直到到达目标。  默认:off
 取值:yes | no | on | off
 参考前面的示例
 TYPE_OF_SERVICE  该参数用于Rdb 数据库。    

 

连接内容部分

 参数  用途  默认值及取值范围  示例
 FAILOVER_MODE  设置了如果一个监听失败,切换到另一个监听的方法。具体内容在后面举例。    
 GLOBAL_NAME  用于标识Rdb数据库,通常不用配置。    
 HS  配置连接到异构数据库时,设置为ok  默认none,值可设置为ok  (HS=ok)
 INSTANCE_NAME  指定连接的数据库实例名    (INSTANCE_NAME=sales1)
 RDB_DATABASE  设置Rdb数据库的文件名,通常不用配置。    
 SERVER  指定客户端的连接方式是独占还是共享  dedicated表示独占
 shared
表示共享
 (SERVER=dedicated)
 SERVICE_NAME  指定监听提供的服务名,比如RAC数据库设置了多个服务,客户端可以指定连接到哪个服务。    (SERVICE_NAME=sales.us.acme.com)
 SID  早期数据库,oracle8中,标识数据库,现在建议使用SERVICE_NAME来替代SID    (SID=sales)

关于FAILOVER_MODE的设置,该参数下还有几个子参数:
BACKUP:
指定备用的连接tnsname,该tnsname必须也已经配置了。
TYPE:
有3项可以选择 session:设置会话的失败切换,当连接丢失,自动创建一个新的会话用于用户,但不恢复正在运行的select操作。
             select:通常会设置这项类型,当连接丢失时,会保留开打的游标,继续正在运行的select操作,但这样也会造成一定的开销。
             none:该项是默认值,不使用失败切换功能。
METHOD:
有2项选择    basic: 该项设置表示只有当失败切换时,才会去建立备用服务的连接。
            preconnect: 预先建立连接,可以快速地进行失败切换,会消耗额外的开销。
RETRIES:
设置失败切换重试的次数,如果设置了DELAY,默认是重试5次。
DELAY:
间隔多久重试一次,如果设置了RETRIES,默认是1秒。


配置TAF,有一个值得注意的地方,如果要使用TAF,不要在监听文件listener.ora的SID_LIST_listener_name部分配置GLOBAL_DBNAME,静态地配置全局数据库名会禁用TAF。

一个负载平衡,实时失败切换的例子:
sales.us.acme.com=
  (DESCRIPTION=   
    (LOAD_BALANCE=on)
 
   (FAILOVER=on)

    (ADDRESS=
      (PROTOCOL=tcp)
      (HOST=sales1-server)
      (PORT=1521))
    (ADDRESS=
      (PROTOCOL=tcp)
      (HOST=sales2-server)
      (PORT=1521))
    (CONNECT_DATA=
      (SERVICE_NAME=sales.us.acme.com)
      (FAILOVER_MODE=
      (TYPE=select)
      (METHOD=basic))))

失败切换重试的例子:
(FAILOVER_MODE=
  (TYPE=select)
  (METHOD=basic)
  (RETRIES=20)
  (DELAY=15))))

预连接的例子:
sales1.us.acme.com=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=tcp)
      (HOST=sales1-server)
      (PORT=1521))
    (CONNECT_DATA=
      (SERVICE_NAME=sales.us.acme.com)
      (INSTANCE_NAME=sales1)
      (FAILOVER_MODE=
        (BACKUP=sales2.us.acme.com)
        (TYPE=select)
        (METHOD=preconnect))))
sales2.us.acme.com=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=tcp)
      (HOST=sales2-server)
      (PORT=1521))
    (CONNECT_DATA=
      (SERVICE_NAME=sales.us.acme.com)
      (INSTANCE_NAME=sales2)
      (FAILOVER_MODE=
        (BACKUP=sales1.us.acme.com)
        (TYPE=select)
        (METHOD=preconnect))))


安全部分

这部分内容涉及高级安全部分,这里只放个例子:
主要是2个参数SECURITY和SSL_SERVER_CERT_DN

net_service_name=
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521))
    (CONNECT_DATA=
      (SERVICE_NAME=sales.us.acme.com))
      (SECURITY=
        (SSL_SERVER_CERT_DN="cn=sales,cn=OracleContext,dc=us,dc=acme,dc=com")))


 

 

阅读(1548) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~