ORACLE-体系结构

来源:互联网 发布:php程序员面试宝典 编辑:程序博客网 时间:2024/06/05 04:27

1、oracle内存结构:sga + pga ;

2、oracle数据库体系结构:

ORACLE-体系结构

 

3、oracle工作原理:

a.在数据库服务器上启动oracle实例;

b.应用程序在客户端的用户进程中运行,启动oralce网络服务驱动器与服务器创建连接;

c.服务器运行oralce网络服务驱动器,创建专用的服务器进程执行用户进程;

d.客户端提交事务;

e.服务器端进程获取SQL语句,检查共享池中是否有相同SQL语句,如果有,服务器进程再检查用户权限,反之则分配新的SQL共享区分析并执行SQL语句;

f.服务器从数据文件或SGA中获得所需数据;

g.服务器进程再sga中更新数据,DBWN将更新过的数据写入磁盘,进程LGWR在重做日志中记录事务;

h.事务成功,服务器进程发送消息到应用程序中.

 

4、oracle服务器:

a.oralce服务器由数据库和实例组成;

b.数据库是一个数据的集合,存放在数据文件中;

c.实例:内存结构 + 后台进程;

 

5、oracle数据库实例:

a.oracle实例由内存结构和后台进程组成;

b.启动oracle数据库实例,即分配内存、启动后台进程;

c.oracle内存结构:SGA和PGA

d.oralce实例后台进程:SMON、PMON、DBWR、LGWR、CKPT等;

 

6、SGA(System Global Area):系统全局区

系统全局区(System GlobalArea,SGA)是包含了一个oralce实例所拥有的数据及控制信息的共享内存区域.oralce在实例启动时分配SGA空间,并在实例关闭时回收,每个实例都有自己的SGA.

 

SGA包括:共享池(shared pool)、数据库缓冲区(Database Buffer)、重做日志缓冲区(Redo LogBuffer)、大池、Java池、Stream池.

 

a.共享池(shared pool)中包含的是共享的内存结构,例如共享sql区(shared sql area).处理所有提交到数据库的sql语句都要用到共享sql区. 共享sql区中包含了语句对应的解析树(parsetree)、执行计划(execution plan)等信息.一个共享sql区可以被提交了相同sql语句的多个应用程序使用,以便节约内存空间.

 

b.数据库缓冲区(DatabaseBuffer)存储最近使用的数据块.一个实例中全部的数据库缓冲区被称为"数据缓存".数据缓存同时包含修改过和没修改的数据块.如果最近使用的数据被放在了内存中,对磁盘I/O的需求就减少了,因此性能也得到提高.

 

c.重做日志缓冲区(Redo Log Buffer)用户存储重做条目(redoentry)--用于记录数据库变化的日志。重做日志缓冲区中存储的条目将被写入联机的重做日志(online redolog)文件中,以备份数据库恢复使用。重做日志文件的容量是固定的。

 

d.大池:为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。

 

e.Stream池:为了stream应用而分配的内存空间

 

f.Java池:为java应用而分配的内存空间

 

7、PGA(program global area,PGA) 程序全局区

 

PGA(program global area,PGA) 程序全局区是供服务进程(serverprocess)存储数据及控制信息内存区域。这是一种在服务进程启动时由oracle创建的非共享的内存区。只有服务进程才能访问属于它的PGA,而对PGA的读写操作是由oralce代码实现的。一个oralce实例中为所有服务进程分配的全部PGA内存也被称为此实例的合计PGA。

 

8、后台进程

a.PMON 进程监控进程,监控用户进程是否正常

  1)清理出现故障的进程

  2)释放所有当前挂起的锁定

  3)释放故障进程使用的资源

b.SMON 系统监控进程,实时监控oralce状况

  1)在实例失败之后,重新打开数据库自动恢复实例

  2)负责清除系统中不再使用的临时段

  3)整理数据文件的自由空间,将相邻区域结合起来

c.DBWR 数据写入进程

  1)管理数据缓冲区,将最近使用过的块保留在内存中

  2)将修改后的缓冲区数据写入数据文件中

d.LGWR 日志写入进程

  1)负责将日志缓冲区中的日志数据写入日志文件

  2)系统有多个日志文件,该进程以循环的方式将数据写入文件

e.CKPT 检查点进程

  1)为了防止实例崩溃,为了尽快进行实例恢复的进程

  2)检查点包括两种:完全检查点、增量检查点

 

9、物理结构

a.主要物理文件可分为三类:

数据文件:数据文件用于存储数据,如表、索引数据等

控制文件:控制文件是记录数据库物理结构的二进制文件

日志文件:记录对数据库所有的修改信息,用于故障恢复

注:丢失以上任意一种文件数据库都无法正常运行,需要进程介质恢复。

 

b.非主要物理文件:参数文件、密码文件、告警和跟踪文件...

 

10、表空间:

a.表空间是数据库中最大的逻辑单位,一个oralce数据库至少包含一个表空间

b.每个表空间都由一个或多个数据文件构成,一个数据文件只能与一个表空间关联

c.表空间的大小等于构成表空间的数据文件的大小之和

 

 



 

 

0 0
原创粉丝点击