第二章Oracle体系结构

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.表空间的使用
在数据库中使用多个表空间具有如下优势: (1)能够将数据字典与用户数据分离开来,避免 由于字典对象和用户对象保存在同一个数据文件 中而产生的1/0冲突。 (2)能够将回退数据与用户数据分离开来,避免 由于硬盘损坏而导致永久性的数据丢失。 (3)能够将表空间的数据文件分散保存到不同硬 盘上,平均分布物理1/0操作。
(4)LGWR日志文件写进程 该进程是日志缓冲区的管理进程,负责把日志缓冲区中 的日志项写入磁盘上的日志文件中。 (5)ARCH归档进程(archiver process) 该进程把已经填满的在线日志文件拷贝到一个指定的存 储设备上。 (6)RECO恢复进程 该进程是在具有分布式选项时使用的一个进程,主要用 于解决引用分布式事务时所出现的故障。 (7)LCKN封锁进程
2.4.2 进程
进程又称任务,是操作系统中一个极为重要的 概念。一个进程执行一组操作,完成一个特定 的任务。对Oracle数据库管理系统来说,进程由 用户进程、服务器进程和后台进程所组成。 进程与程序的区别在于前者是一个动态概念, 后者是一个静态实体;程序仅仅是指令的有序 集合,而进程则强调执行过程。进程可以动态 地创建,完成任务后即会消亡。
2.2.4 数据库块
数据库块也称逻辑块或Oracle块,它对应 磁盘上一个或多个物理块,它的大小由初 始化参数db_block_size(在文件init.ora中) 决定,典型的大小是2k。
Pckfree和Pctused两个参数用来优化数据 块空间的使用。 PCTFREE : 块 中 保 留 用 于 UPDATE 操作的空间百分比,当数据占用的空间达 到此上限时,新的数据将不能再插入到此 块中; PCTUSED:指定块中数据使用空间 的最低百分比;
1.数据块缓冲区
数据块缓冲区中存放着Oracle系统最近从数据 文件中读取的数据块。 数据块缓冲区又称用户数据高速缓冲区,为所 有与该实例相链接的用户进程所共享。
数据块缓冲区的容量受物理容量限制。
在Oracle9i中,数据库缓存的大小可以直接由初 始化参数DB_ACHESIZE指定,该参数可以直接 以K字节或M字节为单位来设置数据库缓存的大 小。
1.用户进程服务器进程
当用户运行一个应用程序时,系统就为 它建立一个用户进程。用户进程执行的 是一个应用程序或Oracle工具程序的代 码,以完成用户所指定的任务。用户进 程不是实例。
2.服务器进程
服务器进程处理与应用程序相连的用户 进程的请求,它与用户进程相通讯,为 相连的用户进程的Oracle请求服务。
4.回退段
回滚段用于存放数据修改之前的值(包括 数据修改之前的位置和值)。 回滚段的作用主要有以下几方面: (1)事务回滚 (2)事务恢复 (3)读一致性
2.2.3 区
区是由很多连续的数据块组成的数据 库存储空间。 缺省情况下,数据库会使用表空间中 存储的存储参数来管理他们的区。
主要的几个存储参数:
2.1.2 日志文件
日志文件(又称重做日志文件),用于 记录数据库所做的全部变更(如增加、 删除、修改),以便在系统发生故障时, 用它对数据库进行恢复。 名字通常为Log*.dbf格式
根据在事务信息将被覆盖时,是否应该 将文件归档,数据库分为以下两种归档模 式:ARCHIVELOG(归档日志)或 NOARCHIVELOG(非归档日志)模式。
2.4 数据库实例与进程
2.4.1 Oracle数据库实例 2.4.2 进程
2.4.1 Oracle数据库实例
数据库是指物理上的数据库文件或逻辑上的 数据库结构。 基于之上管理和控制物理数据库的软件系统, 称为数据库管理系统(DBMS)。 数据库实例是指软件系统中用来访问数据库 文件集的存储结构以及后台进程的集合,它 是存取和控制数据库的软件机制。
5.Java池
Java池为Java命令提供语法分析。
6.多缓冲池
缓冲池把大数据集与其他的应用程序分 开,以减少它们争夺数据块缓冲区内相 同的资源。可以在SGA中创建多个缓冲 池 。
2.3.2 程序全局区
程序全局区PGA(Program Global Area,PGA), 是单个Oracle进程使用的内存区域,不属于实例的 内存结构。它含有单个进程工作时需要的数据和 控制信息,PGA是非共享的,只有服务进程本身 才能够访问它自己的PGA区。
INITIAL:段建立时分配的第一个区的大小(单位:字节) NEXT:段内分配的下一个增量区大小(单位:字节) MAXEXTENTS:分配给段的区总数。 MINEXTENTS:建立段时分配的区的总数,也就是段的最 小区数量。 PCTINCREASE:为段分配的每个增量区超过上一个区的 百分比。 INITRANS:为初试数量的DML事务条目(并发访问数据 块中的行)保留的预分配空间数量。 NTKXTRANS:当多个事务同时访问同一数据块的行时, 为数据块中每个DML事务的条目分配的空间。
2.1.3 控制文件
每个Oracle数据库都有相应的控制文件, 用于打开、存取数据库。它们是较小的二 进制文件,其中记录了数据库的物理结构。
名字通常为Ctr*.ctl格式
控制文件中的内容只能够由Oracle本身来修 改。每个数据库必须至少拥有一个控制文 件。一个数据库也可以同时拥有多个控制 文件,但是一个控制文件只能属于一个数 据库。
1.数据段
数据段中保存的是表中的记录。
2.索引段
在Oracle数据库中每个未分 区索引都有一个索引段保存 索引中的索引条目。对于一 个分区索引,每个分区都有 一个索引段保存它的数据。
3.临时段
当处理查询时,Oracle可能会 需要使用到一些临时存储空间, 用于临时保存解析过的查询语 句以及在排序过程中产生的临 时数据。Oracle会自动在专门 用于存储临时数据的表空间为 操作分配临时段。
2.字典缓冲区
字典缓冲区用于保存数据字典中的行。 数据字典缓冲区也通过最近最少使用 (LRU)算法来管理。大小由数据库内部 管理。字典缓存区是SQL共享池的一部分, 共享池的大小(以字节为单位)由数据 库 文 件 init.ora 中 的 SHARED_POOL_SIZE 参数来设置。
3.重做日志缓冲区
2.3.3 排序区
排序区存在于请求排序的用户进程的内存中, 由于排序需要内存空间,Oracle利用该内存 排序数据,这部分空间称为排序区。该空间 的大小为适应排序数据量的大小,可增长, 但受初始化参数SORT_AREA_SIZER所限制。
2.3.4 软件代码区
软件代码区(Software Code Area)用于 存储正在执行的或可以执行的程序代码。 软件代码区是只读,可安装成共享或非共 享 。 Oracle 系 统 程 序 是 共 享 的 , 多 个 Oracle用户可存取它,而不需要在内存有 多个副本。用户程序可以共享也可以不共 享。
3.后台进程
Oracle的后台进程主要包括: (1)SMON系统监控进程(system monitor) 该进程负责完成自动实例恢复和回收分类表空间. 该进程实例启动时执行实例恢复,还负责清理不再使 用的临时段。 (2)PMON进程监控进程(process monitor) 该进程在用户进程出现故障时执行进程恢复,负责 清理内存储区和释放该进程所使用的资源。 (3)DBWR数据库写进程 该进程是数据库缓冲区的管理进程,使数据库缓冲 区中总保持有一定数量的自由缓冲块。2. Nhomakorabea 逻辑结构
2.2.1 表空间 2.2.2 段 2.2.3 区 2.2.4 数据库块 2.2.5 模式对象
2.2.1 表空间
1.表空间的分类 2.表空间的使用 3.表空间中对象的存储
1.表空间的分类
Oracle中除了用户创建的存放数据对象 的数据表空间外,还有以下类型的表空间: (1)System表空间 (2)回滚表空间(RollBack TableSpace) (3)临时表空间(Temp TableSpace)
2.2.5 模式对象
Oracle数据库的模式对象包括表、视 图、序列、同义词、索引、触发器、存 储过程等。
2.3 内存结构
2.3.1 系统全局区 2.3.2 程序全局区 2.3.3 排序区 2.3.4 软件代码区
2.3.1 系统全局区
系统全局区(SGA,System Global Area.)是内 存结构的主要组成部分,是Oracle为一个实例分配 的一组共享内存缓冲区,保存着Oracle系统与所有 数据库用户的共享信息,包括数据维护、SQL语句 分析,重做日志管理等。是实例的主要部分。
3.表空间中对象的存储
如果表空间只对应一个数据文件,该表空间中 所有的对象都存储在此数据文件中。如果表空 间对应于多个数据文件,可将一个对象的数据 存储在该表空间的任意一个数据文件中,也可 将同一个对象的数据分布在表空间的多个数据 文件中。
2.2.2 段
1.数据段 2.索引段 3.临时段 4.回退段
第二章 Oracle体系结构
2.1 2.2 2.3 2.4 2.5 物理结构 逻辑结构 内存结构 数据库实例与进程 数据字典
2.1 物理结构
2.1.1 数据文件 2.1.2 日志文件 2.1.3 控制文件 2.1.4 配置文件
2.1.1 数据文件
数据文件用来存储数据库中的全部数据, 如数据库表中的数据和索引数据。通常为后 缀名为.dbf格式的文件。
2.1.4 配置文件
配置文件是一个ASCII文本文件,记录Oracle 数据库运行时的一些重要参数。名字通常为 initsid*.ora格式,如:initCIMS.ora,SID相当 于它所控制的数据库的标识符。每个Oracle 数据库和实例都有它自己惟一的init.ora文件。
Oracle9i 新 引 入 一 个 服 务 器 参 数 文 件 ( SPFILE ) , 一 个 服 务 器 参 数 文 件 (SPFILE)可以被认为是在Oracle数据库服 务器端的初始化参数文件。存储在一个服务 器参数文件的初始化参数是永久的,它提供 了由Oracle数据库服务器自我调节的一个基 础。服务器参数文件是二进制文件,不能使 用一个文本编辑器浏览或编辑。Oracle提供 了浏览和查看相关参数的另外接口。
该进程用于并行服务器系统,主要完成实例之间的封锁。
2.5 数据字典
2.5.1 数据字典的结构 2.5.2 数据字典的用途
数据字典是Oracle数据库的核心组 件,它是对用户来说为只读类型的 表和视图组成。在其中保存着关于 数据库系统本身以及其中存储的所 有对象的基本信息。
•数据库对象所有的框架对象的定义(表、视图、 索引、群集、同义词、序列、过程、函数、包、 触发器等) •为框架对象如何分配和使用空间 •列的默认值 •完整性约束信息 •数据库安全信息,包括用户、权限、角色等 •审计信息
4.共享SQL池
共享SQL池(Shared SQL Pool)相当于程 序高速缓冲区,所有的用户程序都存放在 共享SQL池中。
SQL共享池包括库高速缓存、数据字典高 速缓存和服务器控制结构。
共 享 池 的 大 小 取 决 于 init.ora 文 件 参 数 SHARED_POOL_SIZE,它是以字节为单 位的。用户必须将这个值设得足够大, 以确保有足够的可用空间来装载和存储 PL/SQL块和SQL语句。
(4)能够将某个表空间设置为脱机状态或联机 状态,以便对数据库的一部分进行备份和恢复。 (5)能够将某个表空间设置为只读状态,从而 将数据库的一部分设置为只读状态。 (6)能够为某种特殊用途专门设置一个表空间, 比如临时表空间等,以优化表空间的使用效率。 (7)能够更加灵活地为用户设置表空间限额。
对数据库进行修改的任何事务(Transaction) 在记录到重做日志之前都必须首先放到重做日 志缓冲区(Redo Log Buffer.)中。重做日志缓 冲区是专为此开辟的一块内存区域,重做日志 缓存中的内容将被LGWR后台进程随时写入重 做日志文件。
重做日志缓存是一个循环缓存区,在使用时从 顶端向底端写入数据,然后再返回到缓冲区的 起始点循环写入。重做日志缓冲区的大小(以 字节为单位)由init.ora文件中的LOGBUFFER 参数决定。
相关文档
最新文档