Oracle--数据库和实例

Oracle实例的组成:进程+内存结构
进程:DBWR,LGWR, CKPT, ARCH, SMON 。PMON等
内存结构:SGA:大池,JAVA池,共享池,数据缓冲,日志缓冲等

一、数据库实例名

什么是数据库实例名?
    数据库实例是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间交互使用的是数据库实例。数据库实例名(instance_name)  实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。
    数据库名和实例名可以相同也可以不同。
    在一般情况下,数据库名和实例名是一对一的关系,但如果在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。在winnt不台, ORACLE_SID还需存在于注册表中。
且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

数据库实例名与网络连接
数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名。当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。

二、实例

    实例是oracle使用到的内存和进程的总称。
    一个oracle数据库可以有多个实例,不过这个属于RAC的应用了;单机中是一个实例对应一个数据库的。
oracle的数据库存放在硬盘上的有数据文件、日志文件、控制文件。
    你安装oracle时候 如果同时建立一个orcl的数据库的话;那么SID就是orcl,这是一个数据库,有一个实例与它对应;如果你又通过DBCA建立了另外一个db_test,这是就有两个sid;需要两个实例分别打开各自的数据库

    实例是由访问数据库的一组进程和内存组成。而数据库则是一系列储存数据的文件。 一个数据库可以被一个实例或者多个实例打开(RAC)。 访问数据库的时候,你连上的是一个实例,通过实例访问到数据库中的数据
    一个实例一般就是一个库

你可能感兴趣的:(oracle,数据库,实例)