第一章 简介
1. “G”的意义
G代表网格,ORACLE网格基础结构:低成本,高服务质量,易于管理。
Oracle 的网格计算技术包括:
• Automatic Storage Management (ASM)--------存储网格
• Real Application Clusters (RAC)-----------------数据库网格
• Oracle Streams--------------------------------------应用程序网格
• Enterprise Manager Grid Control-----------------网格控制
2. Oracle 数据库体系结构
2.1. Oracle 服务器:
• 是一个数据库管理系统,它提供了一种开放、全面、
集成的方法来管理信息
• 由Oracle 实例和Oracle 数据库组成
每一个运行的Oracle 数据库都与一个Oracle 实例关联。在数据库服务器上启动数据库后,
Oracle 软件会分配一个称为系统全局区(SGA) 的共享内存区,还会启动若干个Oracle 后
台进程。这种SGA 和Oracle 进程的组合就称为一个Oracle 实例。
启动实例后,Oracle 软件会将实例与特定的数据库关联。这个过程称为装载数据库。接下
来可以打开数据库,以便授权用户访问数据库。在同一台计算机上可以并发执行多个实例,
每一个实例只访问自己的物理数据库。
可以将Oracle 数据库体系结构看作多种不同的、相互关联的结构化组件。
Oracle 数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据
库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为
“控制线程”或操作系统中可以运行一系列步骤的机制。
2.2. ORACLE内存结构
Oracle 内存结构
与Oracle 实例关联的基本内存结构包括:
• 系统全局区(SGA):由所有服务器进程和后台进程共享
• 程序全局区(PGA):专用于每一个服务器进程或后台进程。每一个进程使用一个PGA
SGA 是包含实例的数据和控制信息的内存区。
SGA 包含以下数据结构:
• 数据库缓冲区高速缓存:缓存从数据库检索的数据块
• 重做日志缓冲区:高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘
中存储的物理重做日志文件
• 共享池:缓存可在用户间共享的各个结构
• 大型池:是一个可选区域,可为某些大型进程(如Oracle 备份和恢复操作、
I/O 服务器进程)提供大量内存分配
• Java 池:用于Java 虚拟机(JVM) 中特定会话的所有Java 代码和数据
• Streams 池:由Oracle Streams 使用
通过使用Enterprise Manager 或SQL*Plus 启动实例,可以显示为SGA 分配的内存量。
2.3. 进程结构
用户进程:在数据库用户请求连接到Oracle 服务器时
启动
服务器进程:可以连接到Oracle 实例,它在用户建立
会话时启动
后台进程:在启动Oracle 实例时启动
2.4. ORACLE 实例管理
2.5 服务器进程和数据库缓冲区高速缓存
缓冲区高速缓存中的缓冲区可能处于以下四种状态之一:
• 已连接:可防止多个会话同时对同一数据块执行写操作。此时,其它会话正等待
访问该块。
• 干净:缓冲区现已解除连接,如果没有再次引用当前内容(数据块),则可以考虑
立即腾出该缓冲区。此时,不是缓冲区的内容已与磁盘中存储的数据块内容同步,
就是缓冲区中包含块的一致读取(CR) 快照。
• 空闲或未使用:实例刚刚启动,缓冲区为空。此状态与“干净”状态非常相似,
不同之处在于缓冲区尚未使用。
• 脏:缓冲区不再处于已连接状态,但是内容(数据块)已更改,DBWn 必须先将内
容刷新到磁盘,才能腾出缓冲区。
2.6 物理数据库结构
构成Oracle 数据库的文件可分为以下几类:
• 控制文件:包含有关数据库本身的数据(即物理数据库的结构信息)。这些文件对
数据库而言至关重要。没有这些文件,就无法打开用于访问数据库数据的数据文件。
• 数据文件:包含数据库中的用户数据或应用程序数据。
• 联机重做日志文件:可用来实现数据库实例恢复。如果数据库已崩溃但未丢失任何
数据文件,那么使用这些文件中的信息可以通过实例恢复数据库。
要成功运行数据库,以下附加文件非常重要:
• 参数文件:用于定义启动实例时如何配置实例。
• 口令文件:允许用户远程连接到数据库并执行管理任务。
• 备份文件:用于恢复数据库。当因介质故障或用户错误而损坏或删除了原始文件时,
通常需要还原备份文件。
• 归档日志文件:包含实例生成的数据更改(重做)的实时历史记录。使用这些文件
和数据库备份可以恢复丢失的数据文件。也就是说,使用归档日志可以恢复还原的
数据文件。
.跟踪文件:每个服务器和后台进程都可以对关联的跟踪文件执行写操作。如果在进
程中检测到内部错误,进程就会将关于错误的信息转储到进程的跟踪文件中。写入
到跟踪文件中的某些信息专门供数据库管理员使用,另一些信息则供Oracle 支持服
务部门使用。
• 预警日志文件:是特殊的跟踪文件,又称为预警日志。数据库预警日志是按时间顺
序列出的消息日志和错误日志。Oracle 建议您查看这些文件。
2.7 表空间和数据文件
一个表空间中包括一个或多个数据文件
一个数据文件仅属于一个表空间
2.8 SYSTEM 和SYSAUX 表空间
SYSTEM 和SYSAUX 表空间是必需存在的表空间。
这些表空间是在创建数据库时创建的。
这些表空间必须是联机的。
SYSTEM 表空间用于核心功能(例如,数据字典表)。
辅助的SYSAUX 表空间用于附加的数据库组件
2.9 段,区和块
段存在于表空间中。
段由区的集合构成。
区是数据块的集合。
数据块将映射到磁盘块中。
3.0 逻辑和物理数据库结构
.表空间
数据库分为多个逻辑存储单元,这些单元称为表空间,表空间可以将相关的逻辑结构分组
在一起。例如,为了简化某些管理操作,表空间通常会对应用程序的所有对象进行分组。
此时,可以对应用程序数据使用一个表空间,对应用程序索引使用另一个表空间。
.数据库、表空间和数据文件
每个数据库按逻辑都分为一个或
多个表空间。可以为每个表空间显式创建一个或多个数据文件,这样可在表空间中按物理
方式存储所有逻辑结构的数据。如果它是TEMPORARY 表空间而不是数据文件,则这个表
空间拥有一个临时文件。
. 方案
方案是数据库用户拥有的数据库对象的集合。方案对象是直接引用数据库数据的逻辑结
构。方案对象包括表、视图、序列、存储过程、同义词、索引、集群和数据库链接等结构。一般而言,方案对象包括应用程序在数据库中创建的任何内容。
.数据块
Oracle 数据库的数据以最细的粒度级存储在数据块中。一个数据块对应于磁盘上特定字节
数的物理数据库空间。每个表空间的数据块大小是在创建表空间时指定的。数据库可以使用和分配Oracle 数据块中的空闲数据库空间。
.区
块的上一级逻辑数据库空间称为区。区是特定数目的相邻数据块(在一次分配中获取的),
用于存储特定类型的信息。
.段
区之上的逻辑数据库存储级别称为段。段是为特定逻辑结构分配的区集。例如,各种类型的段包括:
• 数据段:每个非集群、非索引的组织表都有一个数据段。该表的所有数据都存储在表数据段的区中。对于分区表,每个分区都有一个数据段。每个集群都有一个数据段。集群中每个表的数据都存储在集群的数据段中。
• 索引段:每个索引都有一个索引段,用于存储索引的所有数据。对于已分区索引,每个分区都有一个索引段。
• 还原段:数据库管理员会创建一个UNDO 表空间,用于临时存储还原信息。还原段中的信息用于生成一致读取信息,在数据库恢复过程中,还可用于回退用户的未提交事务。
• 临时段:当SQL 语句需要一个临时工作区来完成执行时,Oracle 数据库会创建临时段。执行完语句后,临时段的区会返回到实例,以供将来使用。请为每个用户指定
一个默认临时表空间,或指定一个在数据库级别使用的默认临时表空间。
Oracle 数据库可动态分配空间。如果段的现有区已满,则会添加更多的区。由于区是按需分配的,因此,段的区在磁盘上不一定是相邻的。