Oracle数据库系统中实例名(即SID)和ORACLE_SID的区别
小结:
ORACLE_SID是一个环境变量,而数据库实例名就是instance_name,或说system identifier (SID)。
当有多个数据库存在时,我们可以通过“set ORACLE_SID=你所要登录的那个数据库的数据库实例名”,之后就可以通过如sqlplus / as sysdba 登录到你所要登录的那个数据库上。这个就是ORACLE_SID这个环境变量的作用。
至于说为什么可以通过“set ORACLE_SID=你所要登录的那个数据库的数据库实例名”就可以 登录到你所要登录的那个数据库上,其本质原因表述如下:
oracle数据库软件系统通过当前的ORACLE_SID值来找到对应参数文件(即spfile<ORACLE_SID>.ora),通过读取参数文件里的各个参数值(如instance_name、buffer_cache等)来创建一个数据库实例。所以,如果参数文件spfile<ORACLE_SID>.ora里的参数instance_name的值与ORACLE_SID值相同,那么通过“set ORACLE_SID=你所要登录的那个数据库的数据库实例名