《Oracle 9i数据库系统基础论述》由会员分享,可在线阅读,更多相关《Oracle 9i数据库系统基础论述(36页珍藏版)》请在金锄头文库上搜索。
1、Oracle9i 数据库系统基础 数据库 是信息的载体 是一个服务于一个核心目标的数据有组织的集合 其系统主要包括 数据 硬件 软件和数据库用户 数据库管理员 DataBaseAdministrator DBA 其主要任务是 了解ORACLE数据库的体系结构安装并且升级数据库服务器和应用工具 为数据库系统分配存储空间并规划存储空间 启动和关闭数据库 管理和监控数据库用户 建立数据库 维护系统安全 控制并监视数据库用户对数据库的存取操作 备份并恢复数据库 前言 数据库与数据库管理员 Oracle9i的版本企业版 构建安全可靠的 大容量的互联网应用和各种大集中系统 面向企业级应用 标准版提供能够通
2、过Web浏览器进行管理的高性能数据库服务 面向部门级应用 个人版全功能单用户版本 面向开发技术人员 Oracle9i介绍 Oracle体系结构决定了数据库如何使用内存 硬盘 cpu和网络 一个Oracleserver是由Oracle实例 instance 和数据库两部分组成 实例 内存结构 一组后台进程一个Oracle数据库是一个数据单位的集合 主要目的是为了储存和读取信息 Oracle数据库可以分为逻辑结构和物理结构 Oracle9i的体系结构 Oracle数据库基本结构 逻辑结构主要是从数据库使用者的角度考查数据库的组成 逻辑结构 ORACLE的逻辑结构是由一个或多个表空间组成 一个数据库
3、由若干个表空间组成一个表空间由逻辑对象组成一个逻辑对象由多个数据段组成一个数据段由一批数据区间组成一个数据区间由若干个连续的数据块组成一个数据库块对应一个或多个物理块 ORACLE的逻辑结构 数据块 DataBlock 是数据库使用的I O最小单元 又称逻辑块或ORACLE块 常用大小为2KB或者4KB 是OS块的倍数 一个数据库块对应一个或多个物理块 块的大小由参数DB BLOCK SIZE确定 init ora 数据块 区间 Extent 是数据库存储空间分配的逻辑单位 一个区间由一组数据块组成 区间是由段分配的 分配的第一个区间称初始区间 以后分配的区间称增量区间 段 Segment 是
4、表空间中一个指定类型的逻辑存储结构 它由一个或多个区间组成 段将占用并增长存储空间 段的分类 表空间 Tablespaces 是数据库的逻辑组成部分 对应一个或多个数据文件 表空间的大小是它所对应的数据文件大小的总和 一个表空间只能同时属于一个database 一个表空间可能包含一个或多个段 但段不能跨越表空间 数据文件日志文件控制文件参数文件 物理结构 数据文件 DataFile 用于物理存储ORACLE数据库数据数据 如 系统数据 用户数据等 其特点如下 每一个数据文件只与一个数据库相联系 在oracle数据库中 至少要包含一个数据文件 当数据库空间不足时 数据文件具有自动扩展的特性 一个
5、或者多个数据文件构成数据库的逻辑存储单元叫做表空间 tablespace 数据文件 日志文件 LogFile 记录所有对数据库数据的修改 以备恢复数据时使用 其特点如下 每一个数据库包含多个日志文件 日志文件以循环方式进行写操作 每一个日志文件成员对应一个物理文件 工作模式为 归档模式和非归档模式 日志文件 日志切换 LogSwitch 是为实现日志文件的循环使用而设置的 出现日志切换的情况如下 当一个日志文件被填满时DBA手动切换日志 日志文件写操作图示 控制文件 ControlFile 是一个较小的二进制文件 用于记录和维护数据库的物理结构 描述信息如下 数据库名称及创建时间 数据文件的位
6、置及大小 重做日志文件的位置及大小 日志序列号 要点注意 在打开和存取数据库时都访问该文件 数据库至少包含一个控制文件 镜像控制文件 记录控制文件名及路径的参数为 CONTROL FILES 控制文件 参数文件 ParameterFile 是一个文本文件 可直接使用操作系统下的文本编辑器对其内容进行修改 该文件只在建立数据库或启动实例时才被访问 在修改该文件之前必须关闭实例 初始参数文件 init ora生成参数文件 initSID ora 参数文件 确定存储结构的大小 设置数据库的全部缺省值 设置数据库的区间 设置数据库的各种物理属性 优化数据库性能 参数文件的作用 参数文件中参数的数据类型
7、 整型例 DB BLOCK SIZE 8192字符型例 DB NAME ora9 逻辑型例 LOG ARCHIVE START true 物理结构数据文件 日志文件 控制文件 参数文件系统全局区 SystemGlobalArea 共享池 数据缓冲区 日志缓冲区进程用户进程 服务器进程 后台进程 体系结构 使用计算机的内存存放常用的信息和所有调度运行的程序 系统全局区 SGA 由所有用户进程共享的一块内存区域 数据缓冲区 存储最近从数据库中读取出来的数据块重做日志缓冲区 记录事务共享池 程序高速缓冲区 程序全局区 PGA Oracle9i的内存结构 数据缓冲区 DatabaseBufferCac
8、he 用于存储最近从数据库中读取出来的数据块 DB BLOCK SIZE确定数据块的大小 一般为2K或4K 对于大数据块的数据库 此参数值为物理块的倍数 DB nK CACHE SIZE定义非标准数据块的大小 数据缓冲区 重做日志缓冲区 RedoLogBuffer 是由一条条重做记录组成 每条记录记载了被修改数据块的位置和变化后的数据 LOG BUFFER确定日志缓冲区的大小 共享池 SQL程序的高速缓冲区存放的是所有通过SQL语法分析并准备执行的SQL语句主要由库高速缓存和数据字典高速缓存组成SHARED POOL SIZE定义其大小 用户进程 向服务器进程提出操作请求当用户运行一个应用程序
9、时 就建立一个用户进程 后台进程 多进程系统中 使用的一些附加进程为所有数据库用户异步完成各种事务 服务器进程 接受用户进程发出的请求并完成其相应的操作 服务器进程主要包括 分析 优化和执行SQL语句 将硬盘数据读到系统全局区 SGA 将SQL语句的结果返回给用户进程 完成系统的维护等 Oracle9i的进程结构 主要的后台进程有DBWR DatabaseWriter 数据库写进程LGWR LogWriter 日志写进程CKPT Checkpointprocess 检查点写进程SMON SystemMonitor 系统监控进程PMON ProcessMonitor 进程监控进程ARCH Arc
10、hiveProcess 归档进程RECO恢复进程LCKn封锁进程 后台进程 DBWR DatabaseWriter 将数据缓冲区中所有修改过的缓冲块数据写到数据文件中 并使用LRU算法 最近最少使用算法 来保持缓冲区中的数据块为最近使用的 以减少I O次数 该进程在启动实例时自动启动 通过设置DB Writer processes定DBWR个数 LGWR LogWriter 将日志缓冲区中的所有记录项写到日志文件中 该进程在启动实例时自动启动 LGWR进行写操作的情况 用户进程提交一个事务 Commit 重做日志缓冲区达到1 3区间在DBWR进程将脏缓冲区写入到数据文件之前出现超时 3秒钟内未
11、活动 则进行一次写操作 Oracle总是 先日志后修改 检查点 Checkpoint 在检查点出现期间 DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中 LGWR将日志缓冲区中的所有记录项写到日志文件中 以确保上一个检查点至今修改过的所有数据块都被写到磁盘上 用于执行例程恢复 合并空间碎片并释放临时段主要包括 REDO打开数据库UNDO SMON进程 监视服务器进程的执行 并且在服务器进程失败时清除该服务器进程 主要执行以下操作 回退用户的当前事务释放服务器进程所占用的所有表锁和行锁释放用户所占用的其他资源 PMON进程 ORACLE数据库中的数据逻辑存储在表空间中 物理存储在数据文件中 数据库结构 访问oracle数据库时 必须首先连接到OracleServer 才能执行各种数据库访问操作 连接到oracleServer应用程序的所有SQL操作都是由服务器进程来执行的 用户进程只是发送SQL语句并接收SQL语句的结果 OracleServer工作原理 处理查询操作客户端运行Select语句是 首先送到oracleserver 由服务器进程处理Select 包括 解析 检查SQL语句的语法和语义 生成SQL语句的执行计划 存放在共享池中 执行 服务器进程按SQL语句执行计划执行SQL 提取数据 将被选择行数据返回到客户端 OracleServer工作原理