oracle 数据库物理结构PPT

上传人:日度 文档编号:145146260 上传时间:2020-09-17 格式:PPT 页数:40 大小:304.50KB
返回 下载 相关 举报
oracle 数据库物理结构PPT_第1页
第1页 / 共40页
oracle 数据库物理结构PPT_第2页
第2页 / 共40页
oracle 数据库物理结构PPT_第3页
第3页 / 共40页
oracle 数据库物理结构PPT_第4页
第4页 / 共40页
oracle 数据库物理结构PPT_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《oracle 数据库物理结构PPT》由会员分享,可在线阅读,更多相关《oracle 数据库物理结构PPT(40页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 Oracle数据库体系结构续,杨进 ,2,2.4 数据库物理结构,数据库是数据存储的容器,作用是用来收集、存储数据和返回信息。 数据库的存储结构就是数据库存储数据的方式。前面已经谈到数据库的存储结构可以分为逻辑结构和物理结构两个方面,两者相互独立又密切相关。,3,从逻辑结构方面讲,Oracle 数据库以逻辑结构进行内部的管理和维护的,这些结构包括表空间、段、区和块。 从物理结构方面讲,Oracle 数据库有外部的存储方法,Oracle 数据库由一系列的物理文件组成,主要有数据文件、控制文件和重做日志文件,4,物理结构以及和表空间的关系如图,5,数据文件:用于存放所有的系统和用户数据

2、,默认以DBF 为扩展名。 日志文件:记录了对数据库进行的所有操作,默认以LOG 为扩展名。 控制文件:记录了数据库所有文件的控制信息,默认以CTL 为扩展名。 Oracle 将这些文件默认安装在Oracle 安装目录下的oradata 子目录下,以实例命名的子 目录下。在创建新的数据库时,可以选择数据库的安装目录。,6,2.4.1 数据文件(Data Files),数据文件是用于存储数据库数据的物理文件,它由若干个操作系统文件组成,在数据文件中存储着用户数据(表、索引等)、数据字典以及回滚段数据等。 数据文件和表空间有着密切的关系,Oracle 数据库至少要包含一个数据文件,并且数据文件是表

3、空间的物理组成元素,一个表空间可以包含多个数据文件,并且每个数据文件只能惟一地属于某个表空间。 关于“表空间”在后面会给大家详细介绍。,7,【实例2-3】查看数据文件的位置和名称。,1)以管理员身份登录 SQL CONNECT / AS SYSDBA 已连接。,8,2.4.2 日志文件(Redo Log Files),重做日志文件是用于记录数据库变化的物理文件,其作用是在发生意外时恢复Oracle数据库。 默认为每个数据库创建3 个重做日志文件,每个日志文件作为一个组(数据库至少要包含两个重做日志组)。日志组的文件是循环使用的,当一个日志写满后,自动切换到另一个日志文件。 重做日志有两种工作模

4、式,归档模式和非归档模式。在归档模式下,将对重做日志文件进行归档,保留所有的重做日志记录,这样数据库可以从所有类型的失败中恢复。非归档模式不保留以前的重做日志记录,这样数据库只能从掉电等事件中恢复。,9,【实例2-4】查看日志文件的位置和名称。,10,2.4.3 控制文件(Control Files),控制文件是一个很小的二进制文件,用于记录和维护数据库结构,Oracle 数据库至少要包含一个控制文件。一般情况下,实例和数据库是一一对应的关系,Oracle 数据库通过控制文件在实例和数据库之间建立关联。 在启动数据库时,系统会根据初始化参数control_files来定位控制文件,Oracle

5、 从控制文件中读取组成数据库所有物理文件的信息,这样就可以打开必要的文件。如果控制文件丢失或出现错误,数据库的启动就会失败。为了保护数据库的安全,Oracle 采用复合控制文件,即控制文件同时可以有多个镜像。,11,查看控制文件内容:Alter database backup controlfrile to trace as /home/oracle/ctl.trc;,【实例2-5】查看日志文件的位置和名称。,12,2.4.4 归档日志文件(ArchiveLog),重做日志可用于进行“实例恢复”(例如电源断电时的恢复), 但如果执行介质恢复(例如数据文件意外丢失),则必须要用到归档日志。归档日

6、志是非活动重做日志的备份,数据库只有处于ARCHIVELOG 模式时才会生成归档日志,并且每次日志切换都会生成归档日志。,13,如图所示:,假定数据库只包含两个日志组,并且处于ARCHIVELOG 模式。初始阶段LGWR 会将事务变化写入到日志组一,当日志组一写满之后,LGWR 会将事务变化写入到日志组二中, 并且会促使ARCn 进程将日志组一的内容保存到归档日志中,依此类推。,14,【实例2-6】查看归档模式。,15,2.4.5 初始化参数文件,除了以上文件,Oracle 数据库中还用到初始化参数文件(Parameter File)、口令文件(Password File)、跟踪文件(Trac

7、e File)和警告文件(Alert File)。 实例是由一组内存结构和后台进程组成的,那么这些内存结构到底要占用多大内存,且当启动实例时会运行哪些后台进程呢?这是通过定义参数文件中的初始化参数来完成的, 初始化参数文件有两种: 静态初始化参数文件,该文件是一个可以编辑的文本文件; 服务器端初始化参数文件,一个二进制格式的文件,驻留在服 务器端。 初始化参数会在以后的章节介绍。,16,2.4.6 其他文件,其他文件主要包括口令文件(Password File)、跟踪文件(Trace File)和警告文件(AlertFile)。它们属于操作系统文件,不是数据库文件的一部分。 口令文件用于存放特

8、权用户及其口令的文件,“特权用户”是指具有启动、关闭Oracle服务器并建立数据库等特殊权利的用户。SYS 账户是一个具有系统管理员特权的账户。 跟踪文件用于存放后台进程和服务器进程的跟踪信息。后台进程跟踪文件存放着后台进,17,2.4.6 其他文件,跟踪文件用于存放后台进程和服务器进程的跟踪信息。后台进程跟踪文件存放着后台进程的警告和错误信息,并且每个后台进程都有相应的跟踪文件。服务器进程跟踪文件用于存放SQL 语句的跟踪信息,并且只有在激活SQL 跟踪后才会生成服务器进程跟踪文件,该类文件会记载SQL 语句的执行时间、执行计划等信息,并且主要用于SQL 语句调整。 警告文件由连续的消息和错

9、误组成。通过查看警告文件,可以查看到Oracle 内部错误、块损坏错误以及非默认的初始化参数值,并且可以监视特权用户的所有操作,例如启动、关闭数据库等。,18,2.5 数据库逻辑结构,在Oracle 数据库中,数据被组织成逻辑对象,如我们常用的表、视图、索引等数据对象。 为了很好的组织和管理这些对象,需要合理的分配空间。逻辑对象存储是通过表空间 (Table Space)、段(Segment)、数据区间(Extent,简称区)和数据块(Block)来完成的。 它们并不是相互独立的,表空间包含一些段,段由数据区间组成,数据区间由连续的数据块 组成。它们的作用和相互的关系如图,19,2.5 数据库

10、逻辑结构,20,2.5.1 表空间,表空间用于组织数据库的数据,数据库逻辑上由一个或多个表空间组成,而表空间物理 上是由一个或多个数据文件组成的。 通过使用多个表空间,数据库的数据对象被分门别类存放在不同的表空间中。这样数据库的管理员可以有效的控制数据库的磁盘空间,并控制用户的空间使用配额。 通过使用不同类型的表空间,还可以提高数据访问的性能。,21,SYSTEM 表空间是系统表空间,用来存放表空间、数据文件等管理信息;USERS 表空间,用来存放用户的私有信息。管理员可以为其他数据库应用创建新的表空间。,【实例2-7】查看表空间。,22,2.2 Oracle 内存结构,Oracle 的内存由

11、系统全局区(System Global Area,简称SGA)和程序全局区(Program Global Area,简称PGA)组成。 SGA 是一组由Oracle 分配的共享内存区域,用户和进程可以共享其中的信息,在实例 启动时分配。当实例启动时,SGA 存储区被自动分配,当实例关闭时,存储区被回收。,23,在启动数据库实例时,可以看到SGA 分配的信息 在实例启动后也可用SHOW SGA(或SELECT * FROM v$sga)显示SGA 信息。 PGA 是数据库服务器内存中为进程分配的专用的内存区域,是进程私有的内存区,在 进程启动时分配。,24,1.5.2 段,段是一个动态存储分配概

12、念。它用来存储能够自动增长的数据库对象,如表会随着数据的插入不断扩大所占有的存储空间, 一般情况下一个数据库对象拥有一个段。 段由多个区组成,这些区可以连续,也可以不连续。表空间可以包含一个或多个段,但一个段只能属于一个表空间。 段有多种类型,不同的数据库对象需要分配不同类型的段。存放表的段称为数据段; 存放索引的段称为索引段; 用来存放排序操作所产生的临时数据的段称为临时段,临时段在必要时创建,使用完毕后即撤销; 存放事务对数据的修改的旧值的段称为回滚段,回滚段的作 用是用来撤销对数据的修改。,25,2.5.3 区(Extents),数据区间简称为区,区是为段分配空间的逻辑单位,Oracle

13、 在分配空间时,并不是以块为单位进行的,而是将多个连续的块一次性的分配给数据库对象。这些连续的块在回收存储 空间时,也一起回收。这些连续的数据块就是数据区间。 当创建一个数据库对象时,Oracle为这些对象创建一个段,并分配初始区。当段中的初始区的存储空间使用完毕后,Oracle会为段自动分配新的区,每个区的大小不要求相同,26,2.5.4 数据块,数据块是Oracle 数据库I/O 最基本的单位,也是最小的逻辑存储单位。Oracle 数据库以块为单位进行逻辑读/写操作。常见块的大小为2KB 或4KB,通常为操作系统数据块大小的整数倍。 在Oracle9i 之前,数据块的尺寸是由初始化参数DB

14、_BLOCK_SIZE 确定的。在建立了数据库之后数据块的尺寸是不能改变的,并且所有表空间的数据块尺寸都是完全相同的。 从Oracle9i 开始,允许不同类型的表空间采用不同的数据块尺寸,Oracle9i 仍然保留了初始化参数DB_BLOCK_SIZE,此时该参数用于定义默认(也称标准)数据块的尺寸,并且SYSTEM表空间的数据块会使用该尺寸,而其他表空间则可以根据情况来确定数据块尺寸。,27,【实例2-8】查看标准块的大小。,28,2.6 SQL 语句的处理,在本章的最后,我们通过SQL 语句的提交和处理过程来进一步了解Oracle 服务器的工 作原理。用户的SQL 语句根据其特点可划分为,

15、 返回查询结果的查询语句; 生成日志记录DML 操作; 确保数据写入数据库,并在实例故障时可以恢复的Commit 操作。,29,2.6.1 连接和建立会话,当客户应用需要执行SQL 语句时,首先要建立用户进程,同时在服务器端会自动为该用户进程派生一个新的服务进程。默认情况下,用户进程与服务器进程是一一对应的关系。 当客户端运行SQL 语句时,用户进程会通过网络将该SQL 语句发送到对应的服务进程,并且由服务进程执行该SQL 语句,服务器进程在执行了SQL 语句之后,会将SQL 语句的结果通过网络返回到用户进程。,30,2.6 SQL 语句的处理,“连接”(Connection)是用户进程到服务

16、器进程的网络通信通道,连接和用户进程是一 一对应的; 而“会话”(Session)则是特定用户的连接,连接和会话是一对多的关系,但同一时刻一个连接对应于一个会话。 例如,当以SQL*Plus 连接到Oracle 服务器时,需要建立了一个物理“连接”。而以SCOTT用户登录后,会建立SCOTT 会话。,31,2.6.2 处理查询语句),查询操作分为4 个步骤: 语句解析(Parse) 绑定变量(Bind) 执行(Execute) 提取数据(Fetch),32,1)语句解析,当一个查询语句(SELECT)发送到服务器端后,服务进程首先使用Oracle 内部的“散列”(HASH)函数取得该语句的解析代码值,如果在共享池中存在相同的解析代码值,表明 该语句已经存在,那么服务器进程会跳过“解析”阶段,直接转入下一阶段。 如果该解析代码值在共享池中不存在,服务器进程会检查该语句是否符合SQL 语法规则,并检查表名、列名是否正确,以及是否有相应的查询权限,然后生成该语句的“执行计 划”,最终将SELECT 语句和执行计划装载到库高速缓存。 执行计划实际是Oracle 内部执行SQL 语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号