ORACLE网络管理
一、配置文件说明
网络相关的3个配置文件,分别为listener.ora、tnsname.ora、sqlnet.ora,windows目录在ORACLE_HOME/dbhome_1/NETWORK/ADMIN文件夹下
其中listener.ora是服务器端的配置,如果数据库要让远程客户端访问就必须配置该文件;tnsname.ora是客户端的配置,如果客户端要连接某服务器就必须配置该配置文件;sqlnet.ora决定客户端如何查找连接字符串。sqlnet.ora的配置如下
SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME) |
tnsname.ora目录中有如下配置
lala = (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.7.31)(PORT = 1522) ) ) (CONNECT_DATA= (SERVER = SHARED) (SERVICE_NAME = orcl) ) ) |
如果通过sqlplus连接数据库
C:\ >sqlplus sys/oracle@lala as sysdba |
首先该操作数据库首先会查找tnsname.ora配置文件中是否有lala的配置记录如果tnsname.ora没有改配置记录,那么就会把lala当做是主机名。
如果sqlnet.ora的配置如下
SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES) |
那么sqlplus就只会查找tname.ora的配置。
二、服务端(listener.ora)配置文件
动态注册:
配置如下
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.31)(PORT = 1521)) ) ) |
如果需要配置多个监听器只需要增加类似配置文件
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.31)(PORT = 1521)) ) ) LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.31)(PORT = 1522)) ) ) |
动态监听,数据库必须指定local_listener参数的值,登录数据库修改参数
SQL> alter system set local_listener=‘(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST=192.168.7.31)(PORT = 1522)))‘ |
说明数据库会动态注册到LISTENER1监听器,然后注册监听
SQL> alter system register; |
静态注册:
配置如下
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.31)(PORT = 1521)) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME= orcl) (ORACLE_HOME=C:\app\oracle\product\11.2.0\dbhome_1) (GLOBAL_DBNAME=orcl) ) ) |
查看监听状态是会不管orcl实例有没有启动会有orcl的记录,但是都是UNKNOWN状态。
三、客户端(tnsname.ora)配置文件
如果服务器配置有共享连接,那么客户端可以使用共享方式连接,也可以设置专用连接。客户端的连接默认按照服务器端的连接方式。配置文件如下
#共享连接方式 orcl_shared = (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.7.31)(PORT = 1521) ) ) (CONNECT_DATA= (SERVER = SHARED) (SERVICE_NAME = orcl) ) ) #专用连接方式 orcl_dedicated = (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.7.31)(PORT = 1521) ) ) (CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) |
现在可以测试客户端连接的状态,首先查看服务器监听器的状态
C:\Users\dkzx>lsnrctl service aa LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 13-2月 -2014 20:46:10 Copyright (c) 1991, 2010, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.7.31)(PORT=1521))) 服务摘要.. 服务 "orcl" 包含 1 个实例。 实例 "orcl", 状态 READY, 包含此服务的 7 个处理程序... 处理程序: "D005" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 7480> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60195)) "D004" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 18340> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60194)) "D003" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 12164> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60193)) "D002" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 17708> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60192)) "D001" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 14068> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60191)) "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 9144> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60190)) "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER 命令执行成功 |
如图,共享连接方式(D00x)和专用连接方式(DEDICATED)目前都没有建立连接,现在用共享连接方式连接数据库。
C:\ >sqlplus sys/oracle@orcl_shared as sysdba |
再次查看服务器监听状态,发现已经建立一条共享连接方式(D000),专用连接方式(DEDICATED)没有建立连接。
C:\Users\dkzx>lsnrctl service aa LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 13-2月 -2014 20:50:06 Copyright (c) 1991, 2010, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.7.31)(PORT=1521))) 服务摘要.. 服务 "orcl" 包含1 个实例。 实例 "orcl", 状态 READY, 包含此服务的 7 个处理程序... 处理程序: "D005" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 7480> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60195)) "D004" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 18340> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60194)) "D003" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 12164> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60193)) "D002" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 17708> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60192)) "D001" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 14068> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60191)) "D000" 已建立:1 已被拒绝:0 当前: 1 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 9144> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60190)) "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER 命令执行成功 |
下面使用专用连接登陆数据库
C:\ >sqlplus sys/oracle@orcl_dedicated as sysdba |
查看服务端监听状态,发现专用连接方式(DEDICATED)也有一个连接
C:\Users\dkzx>lsnrctl service aa LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 13-2月 -2014 20:53:15 Copyright (c) 1991, 2010, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.7.31)(PORT=1521))) 服务摘要.. 服务 "orcl" 包含 1 个实例。 实例 "orcl", 状态 READY, 包含此服务的 7 个处理程序... 处理程序: "D005" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 7480> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60195)) "D004" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 18340> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60194)) "D003" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 12164> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60193)) "D002" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 17708> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60192)) "D001" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 14068> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60191)) "D000" 已建立:1 已被拒绝:0 当前: 1 最大: 1022 状态: ready DISPATCHER <machine: DKZX-PC, pid: 9144> (ADDRESS=(PROTOCOL=tcp)(HOST=dkzx-PC)(PORT=60190)) "DEDICATED" 已建立:1 已拒绝:0 状态:ready LOCAL SERVER 命令执行成功 |
本文出自 “侯志清” 博客,请务必保留此出处http://houzhiqing.blog.51cto.com/6086337/1358981