浅谈Oracle数据库的网络应用(1)(2)
配置客户机/服务器结构
使用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 |



