您的位置:首页 > 数据库 > Oracle

Oracle的sid,实例与,数据库的区别(转载整合)

2010-08-05 14:46 309 查看

oracle的数据库、实例、ORACLE_SID、模式、用户的联系和区别

ORACLE的数据库是包括实例和数据库的物理文件。

ORACLE的实例是SGA的分配的内存和一组数据库服务进程的总称。

ORACLE的ORACLE_SID是实例的标识,也是ORACLE的实例服务名称。

模式是数据库下的对象的总称,包括表、视图、索引、函数和存储过程等。

ORACLE的用户是指访问数据库的用户,规定可以访问数据库的那些表,并对这些表做什么操作。

ORACLE数据库服务器中可以建立多个数据库,一个数据库下可以有多个实例,一个数据库下可以有多个用户,每个用户都有自己的使用权限。

补充一下:模式和用户好像没有区别。



Oracle的sid

conn = DriverManager.getConnection(

"jdbc:oracle:thin:@127.0.0.1:1521:xe",//java一般都是thin;@后加的是地址;xe:指的是数据库sid ;

"SYSTEM", //数据库用户名;

"myoracle"); //数据库用户密码;

因为在jdbc连接oracle的时候会用到sid;

select instance_name from v$instance;

查看自己Oracle的sid。





SID是System IDentifier的缩写,而ORACLE_SID就是Oracle System Identifier的缩写,在Oracle系统中,
ORACLE_SID以环境变量的形式出现,在特定版本的Oracle软件安装(也就是ORACLE_HOME)下,当Oracle实例启

动时,操作系统上fork的进程必须通过这个SID将实例与其他实例区分开来,这就是SID的作用。

Oracle的实例(instance)是由一块共享内存区域(SGA)和一组后台进程(background processes)共同组成
;而后台进程正是数据库和操作系统进行交互的通道,这些进程的名称就是通过ORACLE_SID决定的。

实例的启动仅需要一个参数文件,而这个参数文件的名称就是由ORACLE_SID决定的。对于init文件,缺省的文件
名称是init<ORACLE_SID>.ora,对于spfile文件,缺省的文件名为spfile<ORACLE_SID>.ora,Oracle依据
ORACLE_SID来决定和寻找参数文件启动实例,参数文件的缺省位置为$ORACLE_HOME/dbs(Windows上为
$ORACLE_HOME/database目录)。

spfile从Oracle 9i开始引入并成为了缺省使用的参数文件,Oracle启动实例时按照以下顺序从缺省目录查找参
数文件:spfile<ORACLE_SID>.ora→spfile.ora →init<ORACLE_SID>.ora。
如果这3个文件都不存在,则Oracle
实例将无法启动。通过这些信息可以知道,在同一个ORACLE_HOME下,Oracle能够根据ORACLE_SID将实例区分开来;但是如果在不
同的ORACLE_HOME下,Oracle将无法屏蔽相同名称的ORACLE_SID,也就是说即使在同一台主机上,Oracle也是能
够创建相同ORACLE_SID的实例的。





ORACLE实例与ORACLE数据库的区别

刚接触ORACLE的人肯定会对实例和数据库感到困惑,实例到底代表些什么?为什么会有这个概念的出现?



ORACLE实例 = 进程 + 进程所使用的内存(SGA)

实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!



数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件

数据库是永久的,是一个文件的集合。



ORACLE实例和数据库之间的关系

1. 临时性和永久性

2. 实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义

3. 一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库

4. 一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: