一直对ORACLE中各种名字不是很清晰,这两天做了比较细致的研究,也算是小有成就吧,哈哈!
Service_name:数据库逻辑上表现为一个服务,服务名可以任意取,并且一个数据库可以有 多个服务名,名字由参数Service_names决定,如果该参数为空,默认的服务名为全局数据库名,即db_name.db_domain。
Instance_name:实例与数据库的对应关系是多对一,由参数instance_name指定,当系统的实例与数据库为一对一关系时,通常实例名即为数据库名。
db_name:db_name与db_domain组成全局数据库名,唯一地标识一个Oracle数据库,db_name在数据库创建后就不能再更改。
ORACLE_SID:全称是Oracle System Identifier,是以环境变量的形式出现,用于区分不同的实例。所以ORACLE_SID其实就是当前想连接的实例名,因为实例与数据库是多对一的关系,所以确定了实例,就等于确定了要连接的数据库。
连接标识符:下面是一个tnsnames.ora文件的基本内容:
ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora10g)
)
)
其中ORACLE即是连接标识符,当使用本地命名的方式,在应用程序(如SQL*PLUS)连接Oracle时,使用的就是连接标识符,如
“sqlplus scott/tiger@oracle”
连接标识符等号右边的内容全部为连接描述符,是使用本地命名连接Oracle时所需的信息。
SERVICE_NAME就是参数Service_names中的值,必须与该参数的值对应,如果参数为空,那这里的SERVICE_NAME只能是db_name.db_domain,否则无法连接Oracle。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10176825/viewspace-1016095/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10176825/viewspace-1016095/