Orcal 服务器的架构和实例有什么区别?

解决方案 »

  1.   


    Oracle 服务器架构? 不知道楼主指的是什么..Oracle 的实例就是一个数据库。 Oracle 由数据库软件+实例组成。 一个软件支持多个实例。 通常我们也将这个实例称为数据库库。
    ------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716 
      

  2.   

    服务器是相对于机器来说的,是硬件指的机器.
    而Oracle 的实例就是一个数据库.
      

  3.   

    oracle服务器 = 实例+数据库
    我也没听说过服务器的架构.....
      

  4.   

    oracle 数据库在运行期间总存在一个与之对应的实例。当用户在服务器(无论何种计算机)上启动数据库时,Oracle 将为数据库分配被称为系统全局区(System Global Area,SGA)的内存区,并启动一个或多个 Oracle 进程。SGA 与 Oracle 进程被统称为 Oracle 实例。构成实例的内存区及进程负责对数据库数据进行管理,并为多用户提供服务。
      

  5.   

    我个人猜想ORACLE楼主是想说ORACLE体系架构吧,如果说服务器架构不仅仅是ORACLE方面,很多方面都涉及,更多还有硬件的方面了,而且和实际应用有点关系,可能我理解你的问题不是很清楚,我也针对上述方式给简单阐述一下(因为这方面知识涉及面太广,所以只能开一个头而已),我分别从ORACLE体系结构、ORACLE实例、ORACLE数据库、服务器方面简要说一下吧:1、ORACLE体系机构是支撑原理和设计体系,明白ORACLE设计原理也就是你明白ORACLE体系结构的时候,你肯定会做ORACLE SQL的一些优化工作,而且从本质上认识优化的规则;ORACLE体系结构支撑需要从物理侧面到逻辑侧面进行分析(这个要细说非常多了,呵呵),举个简单物理方面例子:从物理层块内部根据不同类型对于数据存放规则到磁盘消耗过程,如何形成磁盘碎片,导致大量跨块查找;再举个例子:控制文件内部整列规则等等;而逻辑侧面方面的例子如:分区表对于表空间分配指定方式、实例与数据库的关系。2、ORACLE实例与ORACLE数据库,这个是比较混淆的一个概念,在很多观念下,包括我以前也会认为一个实例等价于一个数据库,其实这个应该说是在大部分情况下可以认为:一个实例对应一个数据库,实例是一个Instance,而数据是对外屏蔽的一些转换后文件组合(学习过第四代数据库就知道,如果你做过裸机文件也会明白原理),数据库不是对外直接开放的,开放的规则是通过实例(Instance),Instance是一段内存,这个内存中包含很多个不同的版块(主体上的分就是SGA和PGA了),我们一切操作都是交给实例的,而不是直接操作数据库文件系统,为什么要有中间这个过程,ORACLE考虑到:安全、缓冲、效率、扩展性等问题;而为什么是大部分情况下这样说,因为ORACLE还有集群的概念,对于ORACLE RAC真正集群使用后你会更加深刻认识实例和数据库之间的关系,它使用多个分布于不同主机上的实例,对同一个裸机文件系统上的数据库进行操作,所以此时实例和数据库就不是一对一了,而是多对一,但是一个实例只能用一个数据库这是肯定的。3、如果谈到服务器架构,针对不同的应用领域和规模(当然也要看买服务器方是否愿意花钱),会选择不同服务器架构,普通的方式愿意花钱的买个高端的小型机装一个ORACLE就开始跑,但是穷的公司可能会去买几个低端的服务器(N个低端服务器也没有一个小型机贵),然后部署集群,经过大量测试结果是同CPU个数的情况下(N个低端服务器的CPU个数和一个小型机CPU个数相等),利用ORACLE集群的效率比小型机要好一些,这样既替企业节约了大量硬件成本,而且还提供更好的性能,而且集群下可以动态扩展、负载均衡、节点失败切换等强大的功能,这都是ORACLE卖钱的地方;呵呵,另外,对于很多企业在联机事务处理下,可能逐步需要将数据移植到其它地方进行报表分析,这需要两个地方做一些ETL的设计,或者一些数据分布式的服务器,针对总服务数据的提取的数据架构模式,这些东西很多,没有太多的定论是那一种情况是最好的,只能说那种是比较适应的。而服务器的架构在软件层面不论是集群还是非集群,他们最终落实一个实例和数据库之间的关系,而我们需要操作的还是实例。4、其实上述谈到的不论是架构还是什么,都离不开上述第一点ORACLE体系结构的支撑,所以最终学习还是体系结构,跟着ORACLE去学习ORACLE,你的软件也会做得很像ORACLE,它的体系结构的扩展性真的做得很好(虽然有很多BUG),由于ORACLE对于体系结构的知识面非常广,所以对于详细的体系知识需要慢慢学习和积累,我个人一般是遇到工作中相应的问题就会仔细去把这些知识和相关研究一下,这样印象比较深刻,并不是哪一个地方或者那一天就能学完的,呵呵,如果不嫌弃的话,处于对这们东西的喜好吧,我在博客也逐渐开始编写从ORACLE底层共享池开始写起的体系结构,知识由于上班原因,所以一周一般最多写一两篇吧。
      

  6.   

    很容易混淆,这就是“实例”(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)装载和打开。