体系架构.
Oracle 体系架构
• Oracle 数据库结构是 Oracle 数据库系 统的主要部分,它是一些可以看得见 的软件,包括:Oracle 数据字典、表 空 间 与 数 据 文 件 、 Oracle 实 例 (Instance)。
Oracle 体系架构图(图1)
图2-1 Oracle 9i体系结构图
镜像日志文件
镜像日志文件图示 Group 1 Group 2 Log File 2
Log File 1 Disk 1 Member 1.1 Log File 3 Disk 2 Member 1.2
Member 2.1 Log File 4
Member 2.2
控制文件(Control File)
是一个较小的二进制文件,用于描述数据库结构。ORACLE的体系结构
共享SQL区包括
系统全局区
• SQL或PL/SQL语句的文本 • SQL或PL/SQL语句的语法分析形式 • SQL或PL/SQL语句的执行方案
共享池(Shared Pool)由共享SQL区和数据字典区组成。 参数SHARED_POOL_SIZE 确定共享池的大小。
数据字典区用于存放数据字典信息行。
描述信息如下: • 数据库建立的日期。 • 数据库名。 • 数据库中所有数据文 件和日志文件的文件名及 路径。 • 恢复数据库时所需的 同步信息。
要点注意: • 在打开和存取数据库 时都要访问该文件。 • 镜像控制文件。 • 记录控制文件名及路 径的参数为: CONTROL_FILES
参数文件(Parameter File)
Oracle 内存结构
Libaray Redo log buffer
Data Dictionary
Cache
cache
Large Pool(Optional) Control Java Pool(Optional) Structures
PL/SQL procedure And Packages
Locks and other structures
• • •
每一个数据文件只与一个数据库相联系。
数据文件一旦被建立则不能修改其大小。 一个表空间可包含一个或多个数据文件。
日志文件(Log File)
重做日志是Oracle的日记帐,负责记录所有用 户对象或系统变更的信息;记录所有对数据 库数据的修改,以备恢复数据时使用。其特 点如下:
• • •
每一个数据库至少包含两个日志文件组。
2.7.1.1 数据高速缓冲区(Data Buffer Cache)
在数据高速缓冲区中存放着ORACLE系统最近使用过 的数据块(即用户的高速缓冲区),当把数据写入 数据库时,它以数据块为单位进行读写,当数据高 速缓冲区填满时,则系统自动去掉一些不常被用访 问的数据。如果用户要查的数据不在数据高速缓冲 区时,ORACLE自动从磁盘中去读取。ORACLE8i以后 将缓冲池分为三个区(使用多个缓冲池特性时):
Shared Pool
图2-4 Oracle内存结构(SGA图)
ORACLE的体系结构
实例( INSTANCE )
系统全局区
是存取和控制数据库的软件机制,它由系统全局
区(System Global Area,简称SGA)和后台进
程组成。
ORACLE的体系结构
系统全局区
SGA是ORACLE系统为实例分配的一组共享缓 冲存储区,用于存放数据库数据和控制信息,以实现 对数据库数据的管理和操作。
Oracle 体系架构图(图2)
数据文件(Data File)
是物理存储ORACLE数据库数据的文件。 用户数据:存放应用系统的数据为用户数据。 系统数据: 管理用户数据和数据库系统本身的 数据,如数据字典,用户建立的表的名字, 类型等都记录在系统数据中。
数据文件(Data File)
其特点如下:
• KEEP 缓冲池( KEEP buffer pool ):在内存中保 留数据块,它们不会被从内存中挤掉; • RECYCLE缓冲池从不需要的内存将数据移掉; • DEFAULT缓冲池包含有被分配的块。 •
数据缓冲存储区(Database Buffer Cache)
数据缓冲存储区(Database Buffer Cache)用于存储从数据文 件中读的数据的备份。 DB_BLOCK_SIZE 确定数据块的大小,一般为 2K或4K,对于大数据块的数据库, 此参数值为物理块的倍数。
日志文件组以循环方式进行写操作。
每一个日志文件成员对应一个物理文件。
ORACLE的体系结构
物理结构
日志文件写操作图示 Group 1
Group 2
Log File 1
Log File 2
Member 1.1
Member 2.1
镜像日志文件
是为防止日志文件的丢失,在不同磁盘上同时维护 两个或多个联机日志文件的副本。 其特点如下: • 每个日志文件组至少包含两个日志文件成员。 • 每组的成员数目相同。 • 同组的所有成员同时被修改。 • 同组的成员大小相同,不同组的成员大小可不同。
• • • •
设臵数据库的全部缺省值。
设臵数据库的范围。 设臵数据库的各种物理属性。 优化数据库性能。
2.7 Oracle内存结构
• 前面提到过Oracle的数据库实例是一组后台 进程和内存结构组成。而内存结构是包括: • 系统全局区(System Global Area) • 程序全局区(Program Global Area)
参数文件(Parameter File)
ORACLE8 之后,多数参数已不在该文件中出现, 需修改这些参数时只能在SQL>下用 SET SESSION 或 SET SYSTEM 来进行。 查看系统 参数可用下面的命令: SQL>select * from v$parameter; 参数文件的作用: 确定存储结构的大小。
是一个文本文件,可直接使用操作系统下的文本编 辑器对其内容进行修改。该文件只在建立数据库或 启动实例时才被访问,在修改该文件之前必须关闭 实例。在oracle8i之前 初始参数文件:init.ora 生成参数文件:initSID.ora 在oracle 9i之后,不允许对参数文件进行编辑,但是, 可以通过命令行的方式进行修改.所使用的参数文件 为: spfileSID.ora