数据库实例是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例。
数据库实例名(instance_name)
实例名也被写入参数文件中,该参数为instance_name,在windows NT平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
如何查看当前数据库实例名呢?方式有三:
·使用SQL语句:select instance_name from v$instance;
·使用show命令:show parameter instance
·查看参数文件:查看init.ora文件
数据库实例名与ORACLE_SID两者都表示oracle实例,但是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。
ORACLE_SID必须与instance_name的值一致。否则,你将会收到一个错误。在unix平台,是“ORACLE not available”,在windows NT平台,是“TNS:协议适配器错误”。
实例本质上是oracle使用到的内存和进程的总称。
一个oracle数据库可以有多个实例,不过这个属于RAC的应用了;单机中是一个实例对应一个数据库的。
oracle的数据库存放在硬盘上的有数据文件、日志文件、控制文件。
你安装oracle时候 如果同时建立一个orcl的数据库的话;那么SID就是orcl,这是一个数据库,有一个实例与它对应;如果你又通过DBCA建立了另外一个db_test,这是就有两个sid;需要两个实例分别打开各自的数据库。
references:
http://blog.csdn.net/leshami/article/details/5529239