oracle 11g体系结构

1、数据库体系结构

1.1 数据库和实例的关系
database server  = instance 实例 + database 数据库

instance 实例  =内存 memory + 进程  process ;
实例启动就分配内存,关闭就是释放内存 ,实例是用来管理数据库的一种方法 ,通过实例打开数据库访问存取数据文件上的数据

Database :数据库就是一堆文件

实例和数据库之间的关系:
Nonclustered System:单实例
一个实例只能管理一个数据库,一个数据库被一个实例管理

Clustered System  集群  高可用性
一个实例只能管理一个数据库,一个数据库可以被多个实例管理

2、Oracle内存结构
Oracle的内存,从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享部分(主要是PGA和UGA)。而这两部分内存里面,根据功能不同,还分为不同内存池(Pool)和内存区(Area)。
oracle 内存结构  = sga +pga


SGA :system global area 系统全局区  所有服务进程和后台进程都共享一个SGA 。SGA是有很多内存区域组成的池。

PGA :Program Global Area (PGA) 程序全局区 :每个进程都独享一个区域 。

UGA(User Global Area)UGA 是为会话变量分配的会话内存,如登录信息和数据库会话所需的其他信息。UGA 存储了会话状态。
UGA ,在使用专用服务器的连接时,进程和会话是一对一的关系,UGA被包含在PGA中 。当使用共享服务器的连接时,进程和会话是一对多的关系, UGA 被存储在 SGA中(largepool),使任何共享服
务器进程都能访问它。此时UGA会在在大池(Large Pool)中分配。但如果从大型池中分配失败,如大型池太小,或是根本没有设置大型池,则从共享池(Shared Pool)中分配。使任何共享服务器进程都
能访问它。


3、实例进程结构

用户进程:当数据库用户或批处理进程连接到Oracle DB时启动
数据库进程:服务器进程:可以连接到Oracle实例,它在用户建立会话时启动
             守护进程(侦听进程  ,grid进程)
               后台进程:在启动Oracle实例时启动

实例启动至少需要哪些进程?6个
dbwn
ckpt
lgwr
smon
pmon
reco

4、逻辑存储结构


数据块:在最细的粒度级别, Oracle 数据库将数据存储为数据块。一个逻辑数据块对应于特定字节数的物理磁盘空间,比如 2 KB。数据块是Oracle 数据库可以使用或分配的最小存储单位。

 扩展区:是一组逻辑上连续的数据块,被分配来用于存储特定类型的信息。在图12-2中,这个24 KB的扩展区有12 个数据块,而这个72 KB的扩展区有 36个数据块。

 段:是为一个特定数据库对象(如一个表)分配的一组扩展区。 每个段属于且仅属于一个表空间。
一个段的所有扩展区存储在相同的表空间中。
通常类型段:数据段,索引段,回滚段,临时段

在一个表空间中,一个段可以包括多个数据文件中的扩展区,单个扩展区绝不会跨越多个数据文件。

表空间:
SYSTEM表空间
系统表空间,用于存放Oracle系统内部表和数据字典的数据
SYSAUX表空间
Oracle11g新增加,用于存储数据字典以外的其他数据对象,充当SYSTEM表空间,降低SYSTEM表空间的负荷
UODO表空间
撤销表空间,用于存储撤销信息
USERS表空间
用户表空间,Oracle建议用户使用的表空间,创建各种数据对象,比如创建表,索引,用户等数据对象

原文地址:https://www.cnblogs.com/liuxing0007/p/8334671.html