搜了半天,也没搞清楚这两者的区别,可能是慧根不够
所以来这里问问大侠们:网上一种比较多的说法:Service_name对应的是一个数据库,并不是实例,这样对于单实例的数据库是没有问题,
可是对于多实例的数据库,用service_name怎么对应到具体某一个实例呀,是不是改用sid来标识呢然后又看到有大侠说sid是8i以前的写法,后来都是用的service_name。哎,所以比较蛋疼,发个帖请教各位
所以来这里问问大侠们:网上一种比较多的说法:Service_name对应的是一个数据库,并不是实例,这样对于单实例的数据库是没有问题,
可是对于多实例的数据库,用service_name怎么对应到具体某一个实例呀,是不是改用sid来标识呢然后又看到有大侠说sid是8i以前的写法,后来都是用的service_name。哎,所以比较蛋疼,发个帖请教各位
解决方案 »
- 怎样将注释的这行也加进去,打印出3列呢
- oracle 9i 数据库不能打开
- oracle 10g 有补丁吗?(出手大方,问题简单,大家踊跃回答)
- 问一个银行系统的数据管理!
- 为什么Oracle9i无法安装
- ORALCE 嵌套表与索引表有什么区别?
- 文件存储问题
- 急!Oracle进不了Enterprise Manager,只能用sqlplusw?????
- 先恭喜开业大吉,顺便请教困扰不少英雄的问题,各路高手不妨抽空看看,很容易赚分的!!!
- 请教如何用下列设备做一个oracle数据库群集,高手请进。(如果有比较详细的实例另加500分)
- sql函数转Oracle的一个小问题,求各位大神帮忙............
- oracle10如何结束sql运行的语句?
2. SERVICE_NAME指的是listener中的全局数据库名:这个名字是由listener.ora中GLOBAL_DBNAME参数决定的。这个名字代表的是客户端连接到数据库时,tnsnames.ora中SERVICE_NAME参数所对应的值。
servername代表了你的整个数据库,不仅仅包含后台进行,SGA,他还包含数据库的其他的对像,比如数据字典,数据文件。一个servername可以对应多个sid
我的理解呵呵。。不对的可以请侠士斧正
比如你有一个数据库实例SID,但是有多个客户端访问你这个数据库,那么每个客户端的Tnsnames.ora文件里配置的ServiceName就是用来提供给客户端登录访问你的数据库的
说的简单点就是,SID就是你DB,而ServiceName只是用来connecting DB的别名
我也是这么理解的,可是用net assist添加本地配置的时候要填service_name,所以感觉不是很理解,我新手,谢谢大家
谢谢iihero。
你这么一说我倒是有了点概念,不过有两个疑问哦:
1、你说的别名是指DYNSNAP_local?还是DynSnap,DYNSNAP_local =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.12.73.101)(PORT = 1521))
)
(CONNECT_DATA =
(Service_name = DynSnap)
)
)
2、多实例情况下,该如何写连接字符串呢
现在connet_data, 大多使用sid来描述。
举个简单的例子--相同时
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)--不同时
ORCL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
A unique name for an Oracle Database instance. To switch between instances of Oracle Database, users must specify the desired system identifier. The system identifier is included in the CONNECT DATA parts of the connect descriptors in a tnsnames.ora file, and in the definition of the network listener in a tnsnames.ora file.net service nameThe name used by clients to identify an Oracle Net server and the specific system identifier or database for the Oracle Net connection. A net service name is mapped to a port number and protocol. Also known as a connect string, database alias, host string, or service name.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl.27.0.0.1)
)
)-- 这个是SID
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(sid = orcl)
)
)之前拼字符串是用的sid,可最近在使用直接使用Oracle的本地网络服务配置工具时,连接时提示服务名有误,找到tnsnames.ora发现设置的是Service_name= orcl,而不是sid=orcl,所以就问下这两者的区别。查 的一些资料都说service_name对应的是数据库,而sid是对应的是实例,要是这样的话觉得用sid品字符串是不是更合适些呢
就如你有个名字 还有个外号
外号是别人叫你的(用于外部链接的,这里就如其他客户端链接上你的数据库 所用到的seveice_name)sid 是数据库服务本身的一个实例区分而已
在没有考虑rac等特殊情况下,你的实例名就代表了你的数据库 一对一的关系
你的servicename就是你这个数据库名的一个别名,它是用来让客户端链接你的数据库的时候一个标志。
用dbca添加的是数据库还是实例,
如何添加多实例?