关于oracle中的数据库与实例

转载 2013年12月03日 16:16:27

下面对实例和数据库做详细的诠释:
在Oracle领域中有两个词很容易混淆,这就是“实例”(instance)和“数据库”(database)。作为Oracle术语,这两个词的定义如下:
数据库(database):物理操作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。
实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。
这两个词有时可互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!稍后就会介绍这样的一个例子。
是不是更糊涂了?我们还会做进一步的解释,应该能帮助你搞清楚这些概念。实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。不过,Oracle的真正应用集群(Real Application Clusters,RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上操作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。由此,我们可以同时从多台不同的计算机访问这个数据库。Oracle RAC能支持高度可用的系统,可用于构建可扩缩性极好的解决方案。


一个实例在其生存期中最多只能装载和打开一个数据库。要想再打开这个(或其他)数据库,必须先丢弃这个实例,并创建一个新的实例。
重申一遍:

实例是一组后台进程和共享内存。

数据库是磁盘上存储的数据集合。

实例“一生”只能装载并打开一个数据库。

数据库可以由一个或多个实例(使用RAC)装载和打开。
前面提到过,大多数情况下,实例和数据库之间存在一种一对一的关系。可能正因如此,才导致人们很容易将二者混淆。从大多数人的经验看来,数据库就是实例,实例就是数据库。
不过,在许多测试环境中,情况并非如此。在我的磁盘上,可以有5个不同的数据库。测试主机上任意时间点只会运行一个Oracle实例,但是它访问的数据库每天都可能不同(甚至每小时都不同),这取决于我的需求。只需有不同的配置文件,我就能装载并打开其中任意一个数据库。在这种情况下,任何时刻我都只有一个“实例”,但有多个数据库,在任意时间点上只能访问其中的一个数据库。
所以,你现在应该知道,如果有人谈到实例,他指的就是Oracle的进程和内存。提到数据库时,则是说保存数据的物理文件。可以从多个实例访问一个数据库,但是一个实例一次只能访问一个数据库。

1.oracle数据库系统中,DBMS可以管理多个数据库实例吗?还是需要一个oracle服务管理一个实例?

oracle里面一个数据库系统可以又多个实例。你可以运行dbca,在界面里面你可以看到可以创建新的实例,但是大多数情况下,oracle都只是建立一个实例。

2需要建立教务数据库,财务数据库两个db,

是可以的,不过通常的做法是建再2个用户放在不同的tablespaces上面。一个用户存储教务数据库表数据,一个存放财务数据库表数据。

3.oracle中的schema属于哪个层次?
schema简单来讲,你可以理解成一个用户以及用户所拥有的所有对象。其实就相当于sqlserver的库。

oracle 数据库和实例之间的区别

ORACLE实例 = 进程 + 进程所使用的内存(SGA) 实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态! 数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件 数据库是...
  • dongguang1082
  • dongguang1082
  • 2010年04月09日 11:45
  • 4350

Oracle实例与数据库的概念详细解释

what is oracle instance and what is oracle database. Oracle实例与数据库的概念详细解释.
  • zmycoco2
  • zmycoco2
  • 2013年11月19日 09:16
  • 7182

oracle里实例和数据库之间的关系

1、每个DATABASE--可包含多个INSTANCE--每个INSTANCE可包含多个TABLESPACE和USER等(授予USER读写TABLESPACE的权限)--每个TABLESPACE可包含...
  • G15738290530
  • G15738290530
  • 2016年07月08日 10:49
  • 752

【数据库】oracle基础-oracle 的数据库、数据库实例、监听之间的关系

为什么需要监听?     什么是server process?作用?         当客户端有用户想要操作数据库的时候,比如说在数据库下建表,插入、删除数据,这个时候用户需要登录认证,而用户的登...
  • chenglibin1988
  • chenglibin1988
  • 2012年12月10日 19:30
  • 3710

oracle服务器上数据库database与数据库实例instance的关系

oracle服务器上数据库与数据库实例的关系 简单的说 一个服务器上可以运行多个数据库 一个实例只能访问一个数据库 一个数据库可以被多个实例访问 Global Database ...
  • Angel_YJ
  • Angel_YJ
  • 2015年10月13日 17:23
  • 722

oracle实例进程结构

实例后台进程在启动实例时启动,在终止实例时终止运行。有这样5个后台进程,oracle使用它们历史长久,系统监视器(System Monitor,SMON)、进程监视器(Process Monitor,...
  • luxiaopengpeng
  • luxiaopengpeng
  • 2015年09月23日 10:52
  • 1459

Linux 启动停止oracle实例+如何启动多个实例

启动数据库实例,分为两步: 第一步,启动监听;  [oracle@wuzhq ~]$ su - oracle     --“切换到oracle用户”     [oracle@wuzhq ~]$ ...
  • melody_1314
  • melody_1314
  • 2012年04月09日 17:22
  • 2584

初学者Oracle数据库:plsql的使用与示例

第一步:打开Oracle监听 $ lsnrctl start 第二步:进入sqlplus $ sqlplus /nolog SQL> 第三步:使用sysdab角色登录sqlplus SQL> conn...
  • gwjxl
  • gwjxl
  • 2014年04月29日 17:14
  • 2223

oracle数据库的存储过程PROCEDURE与函数FUNCTION示例

程序结构 ============================================================= 例题1: 取出s_emp表(参见oracle默认数据库te...
  • lihaijing1125
  • lihaijing1125
  • 2017年02月23日 16:32
  • 392

Linux下启动指定的Oracle数据库

在Linux下重启Oracle数据库  用ssh工具连接linux,按以下步骤操作执行。 1、用oracle用户登录进去。 2、export ORACLE_SID=QS5...
  • snowfoxmonitor
  • snowfoxmonitor
  • 2014年06月07日 11:19
  • 823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于oracle中的数据库与实例
举报原因:
原因补充:

(最多只允许输入30个字)