ORACLE数据库有极强的网络功能,它支持各种网络协议,如TCP/IP、SPX/IPX、X.25、LU6.2、Decnet等等,支持异种网络协议互联、异种数据库互联。SQL*Net是ORACLE的网络软件,本文将对SQL*Net及其配置进行简单介绍。
SQL*Net产品介绍
ORACLE不只支撑传统的主机─终端方法,还支撑盛行的Client/Server体系结构方法,使得运用与数据库中心散布处理,极大地提高了资源的使用率和处理功率。Client/Server的Server端安放ORACLE Server;Client端安放用户界面程序或ORACLE的Client端产品,如SQL*Plus;SQL*Net是ORACLE的网络软件,经过SQL*Net能够完成Client与Server的衔接,SQL*Net是树立在某一网络协议之上的网络中间件产品,如下图所示:
现在,SQL*Net有SQL*Net V1和SQL*Net V2两种版别。从上图中能够看出,有必要在底层网络现已连通的前提下,才能对SQL*Net作适宜的装备。
SQL*Net供给了以下网络功用:
网络通明性:在一个本地数据库上开发的运用,能够不加修正地散布到网络上去运转;
协议独立性:在任何一台核算机上编制的运用,都能够不加修正地散布到任何协议的网络上去运转;
异种机网络:经过多协议转化,可完成多种网络协议之间的互联;
方位通明:经过方位通明战略,能够使网络中数据,好像放在单一本地数据库中一样运用。今后当数据散布发生变化时,运用程序不必作任何修正;
主动字符集转化:两个通讯节点之间不同的字符集和NLS(世界打量支撑)数据描绘能够经过SQL*Net来办理。
下面介绍SQL*Net运转进程中相关的文件(以UNIX环境中TCP/IP协议为例):
lsnrctl:放在“/ORACLE_HOME/bin”目录下,用于发动SQL*Net V2.0监听进程。常用的指令有:lsnrctl start发动监听服务,lsnrctl stop中止监听服务,lsnrctl status检查监听服务当时是否启用。
tcpctl和orasrv:放在“/ORACLE_HOME/bin”目录下,用于发动SQL*Net V1.0监听进程。由于现在运用的是V2.0版别,故此处不再胪陈。
listener.ora和tnsnames.ora:放在“/ORACLE_HOME/network/admin”子目录下,是SQL*Net V2正常作业所需的装备文件及整个网络的装备文件。listener.ora是服务器监听进程网络装备文件,tnsnames.ora是客户机与服务器联络所需的网络装备文件。
config.ora:该文件放置了ORACLE运转的一些参数,与网络有关的有LOCAL_CONNECT,指明缺省拜访ORACLE的衔接描绘符。如在该文件中有一行:LOCALE_CONNECT = ora,标明缺省衔接描绘符为ora。假如运转SQL*Plus时,可省去“$ sqlplus 用户名/口令@ora”中的衔接描绘符“ora:”只输入“$ sqlplus 用户名/口令”即可。
config.ora文件放在“/ORACLE_HOME/dbs”子目录下。
SQL*Net.ora文件放在“/ORACLE_HOME/network/admin”子目录中,其效果相似Unix中nsswitch.conf装备文件,当输入衔接数据库字符串时,经过这个文件来决议衔接字符串与数据库实例名的对应联系。比方sqlnet.ora中描绘为NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME),咱们在客户端输入:sqlplus system/system@OracleTest,客户端首先在tnsnames.ora文件中找oracleTest的记载。假如没有相应的记载则测验把oracleTest当作一个主机名,经过网络的途径去解析它的ip地址然后去衔接这个ip上GLOBAL_DBNAME=oracleTest这个实例,当然管中窥豹oracleTest并不是一个主机名;假如将sqlnet.ora中的NAMES.DIRECTORY_PATH改为NAMES.DIRECTORY_PATH= (TNSNAMES),那么客户端就只会从tnsnames.ora中查找oracleTest记载。
TCP/IP的装备文件:与SQL*Net有关的TCP/IP协议装备文件有两个:
/etc/hosts:寄存整个网络环境中每个节点的IP地址。
/etc/services:寄存TCP/IP协议运用的各个端口的地址。
#p#
装备客户机/服务器结构
运用ORACLE的SQL*Net V2衔接客户机和服务器,需装备每个客户机和服务器。在服务器上需装备的文件有:listener.ora、/etc/services,在客户机上需装备tnsnames.ora文件。
1.数据库衔接进程
当输入sqlplus system/manager@oracleTest的时分
(1)查询sqlnet.ora看看称号的解析方法,发现是TNSNAME;则查询tnsnames.ora文件,从里面找oracleTest的记载,而且找到主机名,端口和service_name;
(2)假如listener进程没有问题的话,树立与listener进程的衔接;依据不同的服务器方法如专用服务器方法或许同享服务器方法,体系默许是专用服务器方法,一切都没有问题的话客户端就衔接上了数据库的server process;
(3)网络衔接就树立起来了,listener进程的历史使命也就完成了。
注:几种衔接用到的指令方法:
sqlplus / as sysdba 这是典型的操作体系认证,不需求listener进程
sqlplus system/manager 这种衔接方法只能衔接本机数据库,相同不需求listener进程
sqlplus system/manager@oracleTest 这种方法需求listener进程处于可用状况。最遍及的经过网络衔接。
以上衔接方法运用system用户或许其他经过密码文件验证的用户都不需求数据库处于可用状况,操作体系认证也不需求数据库可用,普通用户由于是数据库认证,所以数据库必需处于open状况。
2. 装备listener.ora
listener.ora文件中寄存了客户机与服务器衔接所需求的监听地址,以及服务器发动监听进程时的信息。listener.ora文件缺省放置在/ORACLE_HOME/network/admin之下。一个完好的listener.ora文件款式如下:
LISTENER=(ADDRESS=(COMMUNITY=TCP1)(PROTOCOL=TCP)(HOST=Server1)(PORT=1521)) SID_LISTENER=(SID_DESC=(SID_NAME=oracle)(ORACLE_HOME=/usr/oracle)) |
其间,LISTENER是服务器中监听进程的称号;COMMUNITY代表服务器在整个网络中的节点方位(该参数不是必定要有值,能够为空);PROTOCOL标明所运用的网络协议,若是TCP/IP协议,则该值有必要为“TCP”;HOST标明服务器的网络地址;PORT指TCP/IP协议在主机中所占用端口号,ORACLE缺省运用1521,不能改动;SID_NAME指服务器上运转的ORACLE数据库称号,该值应与.profile文件中的环境变量ORACLE_SID相同;ORACLE_HOME是指ORACLE数据库的主目录,该值也应与.profile文件中的环境变量ORACLE_HOME相同。别的,在listener.ora文件中,还有一些发动监听进程所需求的参数。下面是listener.ora文件的实例:
listener = 服务器监听进程称号 |
3. 装备/etc/services文件
在/etc/services文件中加如下一行:
lsnrctl ftp/1521
指明监听进程运用的协议及端口地址。
4. 装备tnsnames.ora文件
客户机为了和服务器衔接,和服务器之间的互联,都有必要先和服务器上的监听进程联络。ORACLE经过tnsnames.ora文件中的衔接描绘符来阐明衔接信息。一般tnsnames.ora 是树立在客户机上的。假如是客户机/服务器结构,整个网络上只要一台机器安装了ORACLE数据库服务器,那么只需在每个要拜访ORACLE服务器的客户机上界说该文件,在服务器上无需界说。可是,假如网络上有多台机器均安装了ORACLE数据库服务器,而且服务器之间有数据同享的要求,那么在每台服务器上都有必要界说该文件。tnsnames.ora文件缺省放在/ORACLE_HOME/network/admin目录下。下面是tnsnames.ora的文件款式:
REMOTE_DB=(DESCRIPTION= |
请注意以下几点:
(1) REMOTE_DB为衔接描绘符姓名,可依据需求随意界说,今后客户机要登录服务器时运用:
$sqlplus 用户名/口令@REMOTE_DB
(2) ADDRESS_LIST,标明该客户机要经由多种协议与一台或多台服务器衔接。在该款式文件中就标明该客户机要用NOVELL网上的SPX/IPX协议和用TCP/IP网上的TCP/IP协议来和服务器相连。若只运用一种协议相连,那么仅运用ADDRESS关键字即可,而不必运用ADDRESS_LIST。
(3) PROTOCOL指明要衔接运用的协议。
(4) SERVICE是NOVELL网上运用的关键字。
(5) HOST是TCP/IP协议运用的服务器IP地址。
(6) PORT是TCP/IP运用的端口地址。
(7) SID指定要衔接的服务器上ORACLE数据库的ORACLE_SID。
(8) SERVER=DEDICATED标明用专用服务器衔接ORACLE数据库。
下面是一个tnsnames.ora文件内容举例:
ora = 衔接描绘符名:ora |
【修改引荐】
- 深化解析Oracle数据库安全战略
- Oracle功能调整的关键之SGA
- 使用脚本文件办理Oracle数据库
知优网 » 浅谈Oracle数据库的网络使用(oracle数据库网络配置)