标签:
数据库结构
每一个运行的Oracle 数据库都与一个Oracle 实例关联。在数据库服务器上启动数据库后,Oracle 软件会分配一个称为系统全局区(SGA) 的共享内存区,还会启动若干个Oracle 后台进程。这种由SGA 和Oracle 进程组成的组合就称为一个Oracle 实例。
启动实例后,Oracle 软件会将实例与特定的数据库关联。这个过程称为装载数据库。然后可打开数据库,使得授权用户可访问数据库。在同一台计算机上可以并发执行多个实例,每一个实例只访问它自己的物理数据库。
您可以将Oracle 数据库体系结构看作各种不同的、相互关联的结构化组件。
Oracle 数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制。
Oracle 内存结构
与Oracle 实例关联的基本内存结构包括:
? 系统全局区(SGA):由所有服务器进程和后台进程共享
? 程序全局区(PGA):专用于每一个服务器进程或后台进程。每一个进程使用一个PGA
SGA 是包含实例的数据和控制信息的内存区。
SGA 包含以下数据结构:
? 数据库缓冲区高速缓存:缓存从数据库检索的数据块
? 重做日志缓冲区:高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘中存储的物理重做日志文件
? 共享池:缓存可在用户间共享的各个结构
? 大型池:是一个可选区域,可为某些大型进程(如Oracle 备份和恢复操作、I/O 服务器进程)提供大量内存分配
? Java 池:用于Java 虚拟机(JVM) 中所有特定会话的Java 代码和数据
? Streams 池:由Oracle Streams 使用
通过使用Enterprise Manager 或SQL*Plus 启动实例,可以显示为SGA 分配的内存量。
程序全局区(PGA) 是包含每一个服务器进程的数据及控制信息的内存区。Oracle 服务器进程为客户机的请求提供服务。每一个服务器进程都有自己专用的PGA,这个PGA 是在服务器进程启动时创建的。由该服务器进程独占对PGA 的访问,PGA 只由对它自身执行操作Oracle 代码读写。
使用动态SGA 基础结构时,可以在不关闭实例的情况下更改数据库缓冲区高速缓存、共享池、大型池和Java 池和Streams 池的大小。
Oracle 数据库使用初始化参数创建并配置内存结构。例如,SGA_TARGET参数用于指定
SGA 可用的总空间量。如果SGA_TARGET设置为0,则会禁用“自动共享内存管理”。
进程结构
调用应用程序或Oracle 工具时,如调用Enterprise Manager 时,Oracle 服务器会通过创建服务器进程来执行应用程序发出的命令。Oracle 服务器还会针对一个实例创建一组后台进程。这些进程不仅彼此进行交互操作,还与操作系统进行交互操作,这样可以管理内存结构,通过异步执行I/O 操作将数据写入磁盘,而且还可以执行其它所需的任务。存在哪些后台进程取决于数据库中当前使用的功能。
标签:
原文地址:http://my.oschina.net/u/242764/blog/377301