一、Oracle_sid:
1、 用于表示系统进程
2、 ORACLE_SID参数则是操作系统环境变量,用于和操作系统进行交互。
此参数与ORACLE_BASE、ORACLE_HOME等用法相同
3、 Oracle_sid用于定于数据库参数文件的名称。
$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora
$ORACLE_BASE/admin/DB_NAME/pfile/spfile$ORACLE_SID.ora
二、Instance_name:
1、 用于表示数据库实例
2、 数据库实例名则用于和操作系统之间的联系,用于对外部连接时使用。
(1)Oracle的监听器(listener)的配置文件中的SID_NAME就是来自INSTANCE_NAME。
(2)数据库名与实例名之间的关系一般是一一对应关系,有一个数据库名就有一个实例名。
(3)如果在一个服务器中创建两个数据库,则有两个数据库名,两个数据库实例名,用两个标识确定一个数据库,用户和实例相连接。
OS<----------------> ORACLE 数据库 <--------(Instance_name(实例名))
所以在lsnrctl status中可以看到service和Instance。如下图service_name是orcl,instance_name是shycorcl
3、两者区别:
Instance_name与Oracle_sid默认情况下是相同的。
其实oracle_sid与instance_name本来没有什么关系。
当操作系统与数据库交互时,用的是oracle_sid,而当外部连接于数据库进行交互时用的是instance_name。
当同一台服务器安装了多个数据库时,操作系统利用Oracle_sid来区分不同实例的进程,而当我们与这台服务器的不同的数据库进行连接时,用instance_name来决定具体链接哪个数据库。
文章评论