Oracle 实例名(SID)/服务名(Service_Name)有什么区别
SID
sid是用来标识这个数据库内部每个实例的名字。一个实例只能对应一个数据库,但是一个数据库可以由多个实例对应。使用SID来表示标识数据库的一个实例
SERVER_NAME
server_name参数是由oracle8i开始引进的。在8i以前,在Oracle的并行环境中,一个 数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不 是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关 系,即不必Service name 必须与SID一样,而sid是数据库实例的名字,每个实例各不相同
JDBC连接配置
- 使用service_name,配置方式:jdbc:oracle:thin:@//<host>:<port>/<service_name>
- 使用SID,配置方式:jdbc:oracle:thin:@<host>:<port>/<SID> 或者 jdbc:oracle:thin:@<host>:<port>:<SID>