oracle网络配置
来源:互联网 发布:java驻场开发怎么样 编辑:程序博客网 时间:2024/06/11 08:01
oracle网络配置
配置文件listener.ora、sqlnet.ora、tnsnames.ora都是放在$ORACLE_HOME\NETWORK\ADMIN目录下。
1. sqlnet.ora:
这个文件来决定怎么样找一个连接中出现的连接字符串。例如我们客户端输入:sqlplus sys/oracle@orcl ,假如我的sqlnet.ora是下面这个样子:
SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名 ,如果我是这个样子 :NAMES.DIRECTORY_PATH=(TNSNAMES)那么客户端就只会从tnsnames.ora查找orcl的记录。
2. tnsnames.ora:
这个文件提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH=(TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctlstatus命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。
#你所要连接的时候输入得TNSNAME
ORCL= (DESCRIPTION = (ADDRESS_LIST =
#下面是这个TNSNAME对应的主机,端口,协议
(ADDRESS= (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )
(CONNECT_DATA=
#使用专用服务器模式去连接需要跟服务器的模式匹配,如果没有就根据服务器的模式自动调节
(SERVER= DEDICATED)
(SERVICE_NAME= orcl) ) )
3. listener.ora:
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
下面定义LISTENER进程为哪个实例提供服务这里是ORCL,并且它对应的ORACLE_HOME和GLOBAL_DBNAME 其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做数据库连接
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/oracle)
(SID_NAME = ORCL)
))
LISTENER监听器的名字,一台数据库可以有不止一个监听器
再向下面是监听器监听的协议,ip,端口等,这里使用的tcp1521端口,并且使用的是主机名
LISTENER=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))
)
)
上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务。
上面说到的三个文件都可以通过图形的配置工具来完成配置$ORACLE_HOME/netca、$ORACLE_HOME/netmgr,这样一来总体结构就有了:
当你输入sqlplus sys/oracle@orcl的时候
1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME
2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
3. 如果listener进程没有问题的话,建立与listener进程的连接。
4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。
平时排错可能会用到的 :
1.lsnrctlstatus查看服务器端listener进程的状态
LSNRCTL>status
Connectingto (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUSof the LISTENER
------------------------
Alias LISTENER---监听器名称
Version TNSLSNR for Linux: Version11.2.0.1.0 - Production
StartDate 17-OCT-2013 08:31:18
Uptime 0 days 0 hr. 0 min. 5 sec
TraceLevel off
Security ON: Local OS Authentication
SNMP OFF
ListenerParameter File /u01/oracle/network/admin/listener.ora
ListenerLog File /u01/diag/tnslsnr/localhost/listener/alert/log.xml
ListeningEndpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
ServicesSummary...
Service "ORCL" has 1 instance(s).--- service name为'ORCL'的监听进程,为实例'oracl'服务
Instance "ORCL", status UNKNOWN, has 1 handler(s) for thisservice...
Thecommand completed successfully
2.tnsping查看客户端sqlnet.ora和tnsname.ora文件的配置正确与否,及对应的服务器的listener进程的状态:
C:\Users\libo>tnspingorcl
TNSPing Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-10月-201323:35:09
Copyright(c) 1997, 2010, Oracle. All rightsreserved.
已使用的参数文件:
E:\install\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =192.1
68.25.133)(PORT= 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl.domain)))OK (20 毫秒)
3.showsga 查看instance是否已经启动 :
SQL>show sga
TotalSystem Global Area 845348864 bytes
FixedSize 1339796 bytes
VariableSize 570429036 bytes
DatabaseBuffers 268435456 bytes
RedoBuffers 5144576 bytes
SERVICE_NAME查询与新增
SERVICE_NAME: oracle在监听器中注册的服务名称,如SERVICE_NAME=aaa.domain,bbb.domain,ccc.domain都可以,通过下列命令只查询oracle实例的SERVICE_NAM的名称:
SQL> show parameter service_names,只显示服务的名称
NAME TYPE VALUE
-------------------------------------------------------------
service_names string aaa,bbb,ccc
新增监听名称:
SQL> alter system set service_names= 'ddd,eee';
Systemaltered.
查看SERVICE_NAM详细信息:
LSNRCTL> service
Connectingto (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
ServicesSummary...
Service"ORCL" has 1 instance(s).
Instance "ORCL", status UNKNOWN,has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:1refused:0
LOCAL SERVER
Service"ddd.domain" has 1 instance(s).---service name + 域名
Instance "orcl", status READY, has 1 handler(s) for this service...监听程序启动状态
Handler(s):
"DEDICATED" established:2refused:0 state:ready
LOCAL SERVER
总结
SID = ORACLE_SID = instance_name =grobal_db_name - db_domain
grobal_db_name = instance_name + db_domain
instance_name = db_name
- Oracle网络配置简介
- Oracle 网络管理器配置
- oracle网络服务端配置
- oracle 网络配置
- oracle 网络配置
- oracle的网络配置
- oracle网络配置
- 配置Oracle网络环境
- oracle网络配置
- oracle网络配置
- oracle网络配置
- Oracle---数据库网络配置
- Oracle安装时网络配置
- Oracle网络连接和配置
- oracle网络配置(转)
- oracle网络配置三个配置文件
- Oracle网络连接配置方法
- oracle 配置网络连接常见问题
- ubuntu 错误
- Python CSV文件处理/读写
- GSL-蒙特卡洛积分
- 龙格-库塔法 wiki
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- oracle网络配置
- Oracle EBS OAF(ADF) VO(View Object)开发中的绑定方式(Binding Style)的介绍
- VMware Network Adapter VMnet1和VMnet8 未识别的网络的解决方法
- 经典四阶龙格库塔法
- 康托展开与逆展开
- POJ3664
- 中东部还是阴霾得很严重呀
- Matlab中龙格-库塔(Runge-Kutta)方法原理及实现
- JDBC 数据库批处理操作