`
night_lone
  • 浏览: 60593 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 10g学习笔记3--服务器体系结构

阅读更多

Oracle服务器由两个实体组成:实例(instance)与数据库。

这两个实体是独立的,但是可以一对一或多对一连接在一起。一个数据库可以对应着多个数据库,在数据库创建过程中,实例首先被创建,然后才创建数据库。

多对一的关系又称为RAC(Real Application Clusters)实际应用群集。不同计算机上的多个实例打开共享磁盘系统上的一个公用数据库。RAC的限制:只具有双CPU的计算机;群集中的计算机最多为四台。RAC需要额外付费。

一般用不到RAC,都是位于一台计算机上的一个实例打开存储在本地磁盘上的一个数据库。(单实例环境)

 

实例由存储结构和进程组成,并且只能短暂存在于RAM和CPU中。因此实例的生存期是其在内存中的存在时间,我们可以启动和停止实例。

数据库是由磁盘上的物理文件组成。如果没有删除组成数据库的文件,数据库一旦被创建,就可以永远存在。DBA既可以看到物理结构,又可以看见逻辑结构,终端用户只能看见逻辑结构。

数据字典包含了整个服务器的元数据,可以管理物理结构和逻辑结构之间的管理。创建数据字典是数据库创建过程中的主要部分。在数据库创建的最后阶段,通过生成各种视图与PL/SQL程序包是新建数据库可用,同时通过生成Enterprise Mannager Database工具使新建数据库可以管理。

 

突然想到可以总结ORACLE数据库创建的过程:1.创建并启动实例-->2.创建数据库文件-->3.创建数据字典视图--->4.添加Enterprise Mannager资料档案库

 

 

实例:存储结构与进程

一个Oracle实例由一块被称为系统全局区(System Global Area,简写为SGA )的共享内存以及若干进程组成。

SGA至少包含共享池,数据库高速缓冲区以及日志缓冲区这三中数据结构,此外还可能包含大池,java池或流池。

启动实例的时候,会确定SGA数据结构的大小。创建数据库的时候并不会确定任何SGA的大小。

注意:牢记SGA具有3种必备元素:共享池,数据库高速缓存区,日志缓冲区。

 

共享池分为:库缓存区与数据字典缓存区。库缓存区用于以解析后的形式存储最近执行的代码。

                                                数据字典缓存区用于存储最近使用的对象定义,包括表,索引,用户的描述以及其他元元素的定义。 共享池的作用:就是提供一块缓存内存,用来存储已经执行的东西,避免重复执行。提高了性能。

 

数据库高速缓存区是:Oracle执行SQL的工作区域。作用:理想情况下,所有被频繁访问的数据都位于数据库高速缓存区,最小化了磁盘I/O的需求。

 

大池是一个可选区域,如果创建了大池,那么各种进程都会自动使用大池;否则,各种进程就只能使用共享池中的内存。

 

只有在应用程序试图运行数据内的Java存储过程时,才需要使用Java池。Java池被用于实例化Java对象所需要的堆空间。


总之,调整SGA存储结构的大小对于性能来说至关重要

 

除了SGA存储结构之外,实例至少还具有5个进程:

系统监视进程 (system monitor,简写为:SMON ):主要功能是打开数据库,从而支持实例与数据库的连接。

进程监视进程 (process monitor简写为:PMON ):管理用户会话,这个进程会在某个会话出现问题时执行适当的操作。

数据库写入器进程 (database writer,简写为:DBWn ):最多可以使用10个这样的进程。复制数据文件的所有写入。须要记住的是 :没有任何会话能够不断地更新磁盘上的数据。会话只更新数据库高速缓存区中的数据,随后所以更新都通过DBWn汇集写入磁盘。 我们要尽可能的不要进行写入操作,因为它会影响最小化I/O磁盘操作。

日志写入器进程 (log writer简写为:LGWR ):将应用于数据库高手缓冲区中数据的所有变化写入磁盘上的联机重做日志文件。与DBWn不同的是:这种磁盘写行为是尽可能接近于实时完成的。

检查点进程 (checkpoint简写为CKPT ):能够确保实例不时地与数据库同步。

 

 

 

数据库:物理结构

Oracle数据库主要由3种文件类型组成。也包括一些外部文件。

数据库的必需文件是:控制文件,联机重做日志文件,数据文件。

外部文件则包括:初始化参数文件,口令文件与归档的重做日志文件。

 

每个数据库都有一个控制文件,优秀的DBA总会创建多个控制文件副本,从而在一个副本遭到破坏时能够保证数据库的正常运行。Oracle会自动同步各个副本。

控制文件包含数据库其余部分(也就是联机重做日志文件和数据文件的位置)的指针 。也包含维护数据库完整性所需的信息。

控制文件的维护是自动的,但是这些操作只能在停机时间进行。

 

每个数据库都具有至少2个联机重做日志文件。大小固定。优秀的DBA也会创建多个副本。副本的同步也是自动的。

对联机重做日志的操作可以在不停机的情况下“联机”进行。

 

数据文件是数据的存储仓库。它的大小和数量不受限制。

对数据文件的操作要在停机的情况下进行。

 

 

逻辑结构:表空间与段

Oracle使用术语“段”来描述包含数据的所有结构。最典型的是包含数据记录的表。

系统管理员可以看见物理的数据文件,编程人员则可以看见逻辑的段。借助于表空间,Oracle可以从物理的存储结构中抽取出逻辑的存储结构。

从逻辑上看,表空间是一个或多个段的集合;从物理上看,表空间是一个或多个数据文件的集合。

按照关系分析:段与数据文件之间存在多对多的关系:一个表可以被分割在多个数据文件中,一个数据文件可能包含多个表。通过在段与数据文件之间插入表空间实体,Oracle就 解决了上述的多对多的关系。

 

数据字典存储在SYSTEM与SYSAUX表空间的若干段。

 

 

外部文件

参数文件定义了实例,主要控制各种存储结构的大小以及后台进程的行为,同时还设置特定的限制。

在创建数据库之前,必须创建一个参数文件,并且使用这个参数文件在内存中构建实例。

参数文件分为:静态的和动态的。  实例只在启动的时候读取一次静态参数文件。动态的参数文件由ORACLE自身通过响应输入命令进行维护和编辑。

口令文件是一个参数文件,该文件独立于数据库而存在。

归档日志文件是已填满的联机重做日志文件的副本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics