当前位置: 代码迷 >> Oracle管理 >> 小白求教SID毕竟代表什么
  详细解决方案

小白求教SID毕竟代表什么

热度:159   发布时间:2016-04-24 04:15:31.0
小白求教SID到底代表什么?
书本上说:数据库与实例是一一对应的,就是一个数据库对应一个实例。同一个时间内一个用户只能与一个实例联系。在同一、台计算机上可以创建多个实例,需要为每个实例创建一个唯一标识符,即SID(系统标识符),它是在创建数据库时设定的。


然后它又说了一个,在并行Oracle数据库服务器结构中,数据库与实例是一对多的关系,就是个数据库对应多个实例,多个实例同时驱动一个数据库的架构称为真正应用集群RAC。

那么到底我现在电脑安装了的Oracle是哪一种呢?
我的理解是就是这样的:我电脑上装的是Oracle服务器(就是这个Oracle软件),这个软件中,我可以创建多个新的数据库,名字如university1、university2、university3等等。而各创建不同的实例,三个数据库就只有3个实例。这三个数据库实例名依次分别为a、b、c。SID就是代表这三个实例名。
好混乱啊。

SID到底代表的是什么?平时你们说的数据库到底是指Oracle这个整个软件或者服务器,还是个别如名字为university1、university2这些数据库?
------解决方案--------------------
引用:
书本上说:数据库与实例是一一对应的,就是一个数据库对应一个实例。同一个时间内一个用户只能与一个实例联系。在同一、台计算机上可以创建多个实例,需要为每个实例创建一个唯一标识符,即SID(系统标识符),它是在创建数据库时设定的。


然后它又说了一个,在并行Oracle数据库服务器结构中,数据库与实例是一对多的关系,就是个数据库对应多个实例,多个实例同时驱动一个数据库的架构称为真正应用集群RAC。

那么到底我现在电脑安装了的Oracle是哪一种呢?
我的理解是就是这样的:我电脑上装的是Oracle服务器(就是这个Oracle软件),这个软件中,我可以创建多个新的数据库,名字如university1、university2、university3等等。而各创建不同的实例,三个数据库就只有3个实例。这三个数据库实例名依次分别为a、b、c。SID就是代表这三个实例名。
好混乱啊。

SID到底代表的是什么?平时你们说的数据库到底是指Oracle这个整个软件或者服务器,还是个别如名字为university1、university2这些数据库?

通俗点讲,你可以理解为“对外服务名”,也就是客户端要连接到服务端需要指定的一个服务名。
------解决方案--------------------
数据库启动分为三个状态,NOMOUNT,MOUNT,OPEN
NOMOUNT,启动数据库实例和读取数据库参数,依据参数分配合适的SGA和PGA给实例,并且启动核心的后台数据库进程(实例是由数据库进程和内存所组成)。从参数文件中读取相应的数据库名,进而可建立实例和数据间的关系。这时已经可以查询到一些动态性能视图
MOUNT,读取参数文件,主要读取的内容是SCN、数据文件、日志文件、归档文件、临时文件、UNDO文件的位置
OPEN,依据控制文件及参数文件的信息,打开数据库,主要是将数据文件置于OPEN状态,如果发现数据文件的SCN与控制文件的SCN不一致,则有SMON进程进行REDO和UNDO
------解决方案--------------------
SID是一个数据库的唯一标识符!是你在建立一个数据库时系统自动赋予的一个初始ID,虽说他和数据库名(DB_NAME)都是一个数据库的唯一标识符,但是在作用上就有不小区别。
SID主要用于在一些DBA操作以及与操作系统交互,从操作系统的角度访问实例名,必须通过ORACLE_SID,且它在注册表中也是存在的.
而数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。 
------解决方案--------------------
university1、university2、university3等等 


以上三个,应该是 LZ 创建的用户(USER),不是实例,你安装在你的机器上库,会让你指定一个 SID ,我想LZ应该是在 Windows 上安装的,你到 服务 中看看 OracleServiceXXXX 服务有几个,如果有一个,就是一个SID ,其中 XXXX 就是实例名,如果有 5 个,就是 5个SID 。
------解决方案--------------------
The system identifier (SID) is a unique name for an Oracle database instance on a specific host. On UNIX and Linux, Oracle Database uses the SID and Oracle home values to create a key to shared memory.
On most platforms, the ORACLE_SID environment variable sets the SID. When connecting to an instance, clients can specify the SID in an Oracle Net connection or use a net service name. Oracle Database converts a service name into an ORACLE_HOME and ORACLE_SID.
------解决方案--------------------
一台机子上的oracle,其下可以建多个数据库,也就是数据库服务;
每个库在建之时都要填一个服务名和sid,这玩意儿就是用来标识这个库的;--你连接oracle时不仅要说 ip、端口 还要说 sid 的 ;
最常见,大家惯用的orcl,就是个sid;
你也可以随便起一个~ fukioe什么的,哈哈~

我暂时是这么理解的~
  相关解决方案