很容易混淆,这就是“实例”(instance)和“数据库”(database)。作为Oracle术语,这两个词的定义如下:
q 数据库(database):物理 *** 作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为 *** 作系统中单独的文件,但定义仍然不变。
q 实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。
这两个词有时可互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!稍后就会介绍这样的一个例子。
是不是更糊涂了?我们还会做进一步的解释,应该能帮助你搞清楚这些概念。实例就是一组 *** 作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以 *** 作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行 *** 作。不过,Oracle的真正应用集群(Real Application Clusters,RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上 *** 作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。由此,我们可以同时从多台不同的计算机访问这个数据库。Oracle RAC能支持高度可用的系统,可用于构建可扩缩性极好的解决方案。
q 数据库可以由一个或多个实例(使用RAC)装载和打开。
实例,指实际的例子。语出鲁迅 《呐喊·风波》:“总之现在的世界是不对了。何况 六斤 比伊的曾祖,少了三斤,比伊父亲 七斤 ,又少了一斤,这真是一条颠扑不破的实例。”
中文名
实例
注 音
ㄕㄧˊ ㄌㄧˋ
拼 音
shílì
词 目
实例
数据库实例由各种高速缓冲池以及后台进程组成。
数据库是数据以某中方式组织起来的数据集合,物理存储为数据库文件,数据库实例负责维护,访问来这些数据。
打个比方:
你在文本中有一些数据(数据库文件)需要计算,你就要写一个程序(后台进程),计算这些数据,如果计算中有源中间结果,你就需要把数据的中间结果放到内存中的一个区域中(高速缓冲池),然后再取出这些中间结果计算。
当然这只是打个比方,实际数据库实例要处理的东西要多得多。
举个很形象的例子(呵呵):
一个实例就像一台绞肉机,每台绞肉机都可以绞肉。
大块的肉放进去做为输入(T-SQL),碎肉挤出来做为输出(结果集)。
你每运行一次安装程序,只能装一台绞肉机。
当然,你可以在服务器上装好几台绞肉机,但是必须有不同的名字:绞肉机A,绞zhidao肉机B
以上就是关于数据库的实例组成部分及作用是什么一个oracle数据库可以有多个实例吗全部的内容,包括:数据库的实例组成部分及作用是什么一个oracle数据库可以有多个实例吗、数据库中什么叫实例、数据库实例的作用是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)