Oracle数据库架构原来是这样……

1.数据库和实例

        Oracle 数据库服务器包括一个数据库和至少一个数据库实例 (通常是指只有一个实例)。 因为实例和数据库是如此的紧密关联,Oracle 数据库这个术语有时既指实例,也指数据库。以下已11gR2为例子说明数据库架构和各部分执行的功能

                数据库:数据库是一组文件,位于磁盘,用于存储数据。 这些文件可以独立于数据库实例存在。
                数据库实例:SGA+PGA+后台进程, 实例也可以独立于数据库文件而存在。

2.架构图

Oracle数据库架构原来是这样……_第1张图片

        实例+数据库,对连接到实例的每个用户,其应用程序以一个客户端进程运行。 每个客户端进程都具与它自己的服务器进程相关联。

        下面说明各部分的功能 

3.数据库详解

        (1)数据库结构

                 一个数据库可以从物理和逻辑这两个角度来考察。 物理数据是在操作系统级别可查看的数据。 例如,使用操作系统实用程序,如 Linux ls 和 ps,可以列出数据库文件和进程。

Oracle数据库架构原来是这样……_第2张图片

                而像表这样的逻辑数据只在数据库层面有意义。 SQL 语句可以列出 Oracle 数据库中的表,但操作系统实用程序却不能。

                数据库具有物理结构和逻辑结构。 因为物理结构和逻辑结构是分开的,因此对物理数据存储的管理,不会影响对逻辑存储结构的访问。 例如,重命名物理数据库文件并不会重命名表,尽管其数据存储在此文件中。

        (2)数据库文件

Oracle数据库架构原来是这样……_第3张图片

                 数据库文件主要包括数据文件,控制文件,联机重做日志文件(对应虚线框内的文件)

                其中也有数据库外的文件,比如归档日志文件和闪回文件,参数文件等等 (备份文件和归档重做日志文件是用于备份和恢复的重要的脱机文件。)   

4.实例详解

        SGA(System Global Area):由所有服务进程和后台进程共享;
        PGA(Program Global Area):由每个服务进程、后台进程专有;每个进程都有一个PGA。

        (1)SGA

Oracle数据库架构原来是这样……_第4张图片

                包含实例的数据和控制信息,包含如下内存结构:
                Database buffer cache:缓存了从磁盘上检索的数据块。
                Redo log buffer:缓存了写到磁盘之前的重做信息。存放在线重做日志的缓存区,Redo log buffer以循环的方式写入,当redo log已经写到磁盘后,就可以被后续的日志数据覆盖
                Shared pool:缓存了各用户间可共享的各种结构。比如编译过的sql语句和块信息,数据字典定义缓存,共享服务器模式会话信息
                Large pool:一个可选的区域,用来缓存大的I/O请求,以支持并行查询、共享服务器模式以及某些备份操作。
                Java pool:保存java虚拟机中特定会话的数据与java代码。
                Streams pool:由Oracle streams使用。

                Fixed SGA保存通用的数据库和实例状态信息

        (2)PGA

Oracle数据库架构原来是这样……_第5张图片

                每个服务进程私有的内存区域,包含如下结构:
                Private SQL area:包含绑定信息、运行时的内存结构。每个发出sql语句的会话,都有一个private SQL area(私有SQL区)
                Session memory:为保存会话中的变量以及其他与会话相关的信息,而分配的内存区。 

        (3)后台进程

                为了实现为多用户提供服务且保证系统性能,在一个多进程  Oracle 系统( multiprocess Oracle system)中,存在多个被称为后台进程( background process)的  Oracle 进程。
一个  Oracle 实例中可以包含多种后台进程,这些进程不一定全部出现在实例中。系统中运行的后台进程数量众多,用户可以通过 V$BGPROCESS 视图查询关于后台进程的信息。

                Oracle 实例中可能运行的后台进程有:
·                数据写入进程( DBWn)
·                日志写入进程( LGWR)
·                检查点进程( CKPT)
                ·系统监控进程( SMON)
·                进程监控进程( PMON)
·                恢复进程( RECO)
·                归档进程( ARCn)
·                其他后台进程

你可能感兴趣的:(Oracle,数据库架构,数据库,oracle)