Oracle
的网络协议称之为Oracle Net
,SQL*Net
或Net8
。
连接数据库的两种方式:
(1)本地连接(Local
)
这种方式client
和数据库位于同一台服务器上,数据通信不需要经过listener
进程,而是通过Unix pipe
方式进行通信。比如以SYS
用户连接数据库:
sqlplus as / sysdba
或是利用ORACLE_SID
环境变量指定本地数据库,然后使用用户名和密码进行连接:
sqlplus username/password
需要注意的是还有一个TWO_TASK
环境变量指定远端数据库,而当这两个变量同时指定时,TWO_TASK
优先级更高。
(2)远端连接(remote
)
这种方式client
和数据库位于不同服务器上,连接时需要指定连接的数据库TNS
名字:
sqlplus username/password@orcl
这种方式需要利用tnsnames.ora
文件来解析数据库主机和端口,此外数据通信也要经过listener
进程。
区分“本地连接”和“远端连接”的一个方法就是看连接数据库时是否指定数据库TNS
名字:@tns_alia
。
(3)
参考资料:
research oracle tns protocol ;
Oracle Database Communication Protocol;
http://ora-exp.blogspot.com/2007/06/oraclesid-and-twotask-environment_21.html;
Re: sqlplus connection from unix with and without the oracle sid;
In Oracle, how do you change the ‘default’ database?;