oracle数据库使用的三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都位于 $ORACLE_HOME\network\admin目录下。
在输入sqlplus sys/oracle@orcl命令后,程序进行如下处理:
1. 查询sqlnet.ora中配置的名称解析方式,按照相应的方法进行下一步处理;
2. 如果是TNSNAME方式,则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和ervice_name;如果是HOSTNAME方式,则把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个host上GLOBAL_DBNAME为orcl的这个实例。可以配置成(TNSNAMES, HOSTNAME)方式告知处理程序先按照前一种方式处理,若未成功则按照后一种方式来处理。
3. 如果数据库服务器上有处理该网络连接的listener进程在运行(可在listener.ora中配置多个不同的监听器,使用lsnrctl命令查看、控制监听程序的运行),则连接请求被发送给listener进程继续处理;
4. listener进程根据不同的服务器模式如专用服务器模式或者共享服务器模式,建立客户端与数据库服务进程之间的连接,然后返回等待下一个连接请求的到达;
5. 客户端与数据库服务进程正常连接后,开始处理用户提交的各种查询请求。
几种连接请求的命令形式
1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程
2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程
3.sqlplus sys/oracle@orcl 这种方式需要listener进程处于可用状态,通过网络连接。是最普遍的连接方式。
以上连接方式中通过操作系统认证以及使用sys用户或者其他通过密码文件验证的用户请求连接时都不需要数据库处于可用状态;普通用户连接时因为由数据库进行认证,所以需要数据库处于open状态。
阅读(1574) | 评论(0) | 转发(0) |