上一篇 / 下一篇 2011-07-22 11:28:24/ 个人分类:Oracle相关
注﹕在修改sqlnet.ora文件之后重新启动监听﹐修改才能生效﹗﹗﹗
oracle网络设置主要包括三个文件,sqlnet.ora\ lisnter.ora\ tnsnames.ora
1、通过netmgr 可以配置 lisnter.ora 和 tnsnames.ora
2、lisnter.ora 为oracle服务器使用的监听器配置文件,监听器可以通过 lsnrctl 进行管理
3、tnsnames.ora 为客户端配置文件,为连接服务器的参数信息
4、sqlnet.ora 为服务端sql*net 网络配置文件,主要参数如下:
1.设置日志参数
#设置客户端和服务器端的log文件的目录
LOG_DIRECTORY_CLIENT
LOG_DIRECTORY_SERVER
#设置客户端和服务器端的log文件的名称
LOG_FILE_CLIENT
LOG_FILE_SERVER
2.设置默认的domain,会在连接中自动追加domain
NAMES.DEFAULT_DOMAIN
如设置NAMES.DEFAULT_DOMAIN=us.acme.com
使用conn scott/tiger@test连接数据库时会自动追加domain,变成conn scott/[email protected],而直接使用connscott/[email protected]连接数据库则不会追加
//可以通过show parameter domain查看,一般将该参数注释掉;如果设置了该参数
//通过netmgr设置本地服务名时系统会在本地服务名后面自动追加该参数
//sql*plus访问时如果该参数存在,则会在服务名追加该参数,然后利用追加后的服务名,在tns中查找
//造成tnsping可以 但是使用sqlplus不可以的现象
3.设置客户端的命名方法和优先级(最常用的参数),可选值有tnsnames,onames,hostname,ldap等
NAMES.DIRECTORY_PATH
例如:names.directory_path =(tnsnames,onames,hostname)
//服务端的解析路径1.tnsname; 2.oname; 3.hostname
4.设置允许连入数据库的客户端版本,可选值10,9,8,7
SQLNET_ALLOWED_LOGON_VERSIONS
5.设置使用何种验证方式,可选值
none(使用用户名/密码的方式连接数据库)
all(使用所有方式的验证,包括OS验证)
nts(OS验证方式,连入OS后可以不用密码连接数据库)
SQLNET.AUTHENTICATION_SERVICES
6.设置客户端和服务器是否使用加密,可选值
accepted(如果对方设置为requested或required,则使用加密服务)
rejected(不使用加密服务,即使对方设置为requested也不使用)
requested(如果对方使用加密服务,则使用加密服务)
required(使用加密服务,如果对方没有使用则无法连接)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER
#设置使用的加密算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER
7.设置连入数据库后必须在多长时间内完成认证(如:输入用户名/密码),超过此时间没有完成的话,数据库会断开此连接,并将客户端的IP地址和ORA-12170: TNS:Connect timeout occurred错误信息记录到sqlnet.log,而且客户端会收到ORA-12547: TNS:lost contact或ORA-12637: Packet receive failed错误信息。这个设置主要是为了防止denial-of-service攻击
SQLNET.INBOUND_CONNECT_TIMEOUT
8.设置在指定的时间间隔内必须有数据接收/发送,为了防止长时间的等待
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT
9.限制访问数据库的客户端IP:
#允许访问的IP
TCP.INVITED_NODES=(192.168.1.103)
#不允许访问的IP
TCP.EXCLUDED_NODES=(192.168.1.102)
#检测上述参数的设置
TCP.VALIDNODE_CHECKING=yes
当不允许访问的客户端连入时,会出现下列错误
sys/[email protected] as sysdba
ERROR:
ORA-12537: TNS:connection closed
Warning: You are no longer connected toORACLE.
10.对tnsping命令进行跟踪,文件名是tnsping.trc
#trace文件的目录,默认在$ORACLE_HOME/network/trace下
TNSPING.TRACE_DIRECTORY
#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TNSPING.TRACE_LEVEL
11.设置trace参数
#设置客户端和服务器端的trace文件的目录
TRACE_DIRECTORY_CLIENT
TRACE_DIRECTORY_SERVER
#设置客户端和服务器端的trace文件的名称
TRACE_FILE_CLIENT
TRACE_FILE_SERVER
#设置客户端和服务器端的trace文件的最大大小,超过后trace信息会写入新的文件
TRACE_FILELEN_CLIENT
TRACE_FILELEN_SERVER
#设置客户端和服务器端的trace文件的最多个数,trace文件是循环写的
TRACE_FILENO_CLIENT
TRACE_FILENO_SERVER#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TRACE_LEVEL_CLIENT
TRACE_LEVEL_SERVER
#是否在trace中写入每条trace信息的dd-mon-yyyy hh:mi:ss:mi时间戳
TRACE_TIMESTAMP_CLIENT
TRACE_TIMESTAMP_SERVER#trace是否只写入独立的文件:设为off后,每个新的客户端会话的trace信息都会覆盖已有信息;设为on后,每个新的客户端会话的trace信息都会写入单独的文件
TRACE_UNIQUE_CLIENT
12.强制使用dedicated方式连接数据库
#当设置为on时,会在连接描述中自动添加(SERVER=dedicated),如果已经设置了(SERVER=shared)也会被覆盖,默认为off
USE_DEDICATED_SERVER
idle>conn sys/oracle@test1 as sysdba
Connected.
sys@TEST>select server from v$sessionwhereusername='SYS';
SERVER
---------
SHARED
在sqlnet.ora中设置了USE_DEDICATED_SERVER=on
sys@TEST>select server from v$session where username='SYS';
SERVER
---------
DEDICATED