Oracle9i数据库体系结构详述

上传人:876****10 文档编号:127669478 上传时间:2020-04-04 格式:PPT 页数:63 大小:617KB
返回 下载 相关 举报
Oracle9i数据库体系结构详述_第1页
第1页 / 共63页
Oracle9i数据库体系结构详述_第2页
第2页 / 共63页
Oracle9i数据库体系结构详述_第3页
第3页 / 共63页
Oracle9i数据库体系结构详述_第4页
第4页 / 共63页
Oracle9i数据库体系结构详述_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Oracle9i数据库体系结构详述》由会员分享,可在线阅读,更多相关《Oracle9i数据库体系结构详述(63页珍藏版)》请在金锄头文库上搜索。

1、Oracle9i数据库体系结构 Oracle9i数据库体系结构 Oracle9i物理结构 SGA SystemGlobalArea BackgroundProcesses Servers Users DataFiles RedoLogFiles ControlFiles ParameterFile ServerParameterFile E mail tengyc 5 日志文件 RedoLogFiles RedoLog文件记录对于数据库的所有修改 用于数据库的恢复如果对于日志文件进行镜像 则相同的RedoLog信息被写入多个联机的RedoLog文件中Oracle运行NOARCHIVELOG时只

2、有历史日志 没有归档日志 E mail tengyc 6 日志文件 RedoLogFiles 每个Oracle数据库至少有两个RedoLog日志文件组 每组有一个或多个日志文件建议对RedoLog文件进行镜像 以保证数据库安全运行建议使用四个RedoLog文件组 每组2或3个日志文件组内RedoLog文件位于不同磁盘RedoLog文件是循环使用的 Servers Users DataFiles RedoLogFiles DatabaseBufferCache SharedPool RedoLogBuffer SGA SystemGlobalArea DBWR ARCH LGWR 日志产生过程

3、1 2 3 E mail tengyc 8 RedoLog文件镜像 一个日志组中RedoLog文件具有相同的信息选择合适的日志文件大小组中的成员同时被更新每组应包含与其他组中数目相同的日志成员镜像的RedoLog文件可以防止RedoLog文件丢失 Oracle9iDatabase WindowsNT Oracle9iDatabase Unix E mail tengyc 11 日志切换 当ORACLE从一个RedoLog文件切换到另一个日志文件时发生日志切换当LGWR写满一组日志文件时发生日志切换DBA可强制日志切换数据库关闭时发生日志切换日志切换时 当前日志文件被赋予一个新的日志序列号 用于

4、标识其中的信息日志切换时产生检查点CKPT Checkpoint RedoLog文件组 Group1MemberA Group2MemberA Group3MemberA Group1MemberB Group2MemberB Group3MemberB Group1MemberC Group2MemberC Group3MemberC LogFile1 LogFile2 LogFile3 Oracle9iforUnix日志文件结构 SunSolaris redo01 log redo02 log redo03 log 三个日志文件组 每组一个日志成员 Oracle9i日志文件结构 Windo

5、wsNT Redo01 log 三个日志文件组 每组一个日志成员 Redo02 log Redo03 log Oracle9i数据库参数文件 服务器参数参数spfile ServerParameterFile 文本参数pfile ParameterFile E mail tengyc 16 控制文件 ControlFiles 控制文件是描述数据库结构的二进制文件控制文件所有必须的数据文件和日志文件在控制文件中标识数据库名存储在控制文件中控制文件用于打开和存取数据库数据库恢复所需的同步信息存储在控制文件中控制文件数据库的物理组成与控制文件中的记录不同时 系统则不能正常启动或发生down机现象 E

6、 mail tengyc 17 控制文件 ControlFiles 建议设置 至少使用两个控制文件 并存放于不同磁盘参数Control Files指明控制文件控制文件的镜像可以在数据库创建或创建完成后进行 Oracle9iDatabase WindowsNT Oracle9iDatabase Unix Oracle9i逻辑结构 Database Tablespace Segment Data Index Temp Rollback Extent Free Used DataBlock Partof Partof Oracle9i数据库的逻辑结构 表空间 Oracle表空间类型 数据字典管理表空

7、间 Oracle7 8 8i 本地化管理表空间 Oracle8i 9i Uniform AutoAllocate Oracle表空间类型 E mail tengyc 24 Oracle9i临时段管理 Oracle9i的缺省临时表空间 DefaultTemporaryTablespace 用于用户排序时SQL的Orderby语句使用 在创建用户时指定用户缺省的临时表空间 在Oracle9i中 允许数据库管理员重新创建并设置系统临时表空间 而不使用系统表空间作为排序 汇总等临时表空间使用 如果系统设置了系统缺省临时表空间 则用户不得使用其他表空间作为临时表空间使用 E mail tengyc 25

8、 回退段 RollbackSegments 为什么要设回退段 回退段是数据库的一部分 是Oracle数据库的一个重要参数 其设计是否正确直接影响到数据库的动态性能 Rollback段的使用用于保存一个事务的操作 以便在某些情况下回退或取消操作 每个Oracle数据库都有多个回退段回退段的作用并发操作时 保证数据的读一致性使用SQL语句rollback回退一个事务的操作 E mail tengyc 26 回退段 RollbackSegments 事务恢复的需要回退段操作举例由于语句错误回退一个事务回退一个事务 或回退事务到一个保存点 SavePoint 由于异常进程中断而回退在例程恢复中回退所有

9、没未完成的事务 Oracle9i自动Undo空间管理在Oracle8i以前的数据库中 对于回退段的设置与管理已一直是一个十分复杂的工作 其正确的设置既困难又费时 对于大的事务往往产生回退段不足的错误 或在RBS表空间回退段中消耗过大 Oracle9i引如了一个新的概念 即AutomaticUndoManagement Undo空间自动管理 在Oracle9i中 可以使用传统的回退段 也可以使用Undo表空间 Oracle9i对Undo空间自动管理 使回退段的管理变的十分容易 在Oracle9i中 可以使用自动Undo管理代替回退段 Oracle9i使用Undo表空间 并对Undo空间自动管理

10、Oracle9i自动Undo空间管理在Oracle8i中 私通使用手动管理Undo空间 使用在RBS表空间中创建大的回退段的方法处理大的事务 由于一个事务只可以使用一个回退段 当一个回退段动态扩展超过区最大值 或超过数据文件的允许扩展范围时 将产生回退段不足的错误 事务被进行过程被终止 在Oracle9i中 一个事务可以使用多个回退段 使用Oracle9i的Undo空间自动管理特点 当一个回退段不足时 Oracle会自动使用其他回退段 不终止事务的运行 在Oracle9i中 数据库管理员只需了解Undo表空间是否有足够的空间即可 自动Undo空间管理 Oracle9i内存结构 Servers

11、Users DataFiles RedoLogFiles DatabaseBufferCache SharedPool RedoLogBuffer SGA SystemGlobalArea DBWR ARCH LGWR 系统全局区SGA Servers Users DataFiles RedoLogFiles DatabaseBufferCache SharedPool RedoLogBuffer SGA DBWR ARCH LGWR 数据缓冲区 DatabaseBufferCache DB数据缓冲区 Dirtylist LRUlist Datafiles Datafiles 数据缓冲区 Da

12、tabaseBufferCache Server DBWR SGA Free Dirty Pinned Servers Users DataFiles RedoLogFiles DatabaseBufferCache SharedPool RedoLogBuffer SGA DBWR ARCH LGWR 日志缓冲区 RedoLogBuffer Servers Users DataFiles DatabaseBufferCache SharedPool SGA DBWR 共享池 SharedGlobalArea Servers Servers Users Users Oracle9i实例的进程结

13、构 E mail tengyc 37 Oracle启动时 将分配系统全局区SGA并启动Oracle后台进程 BackgroundProcesses 内存区域和后台进程合称为一个Oracle实例 Instance SGA是由Oracle为一个实例分配的一组共享内存区域后台进程异步地为所有的数据库用户执行不同的任务参数文件决定了实例的特征及大小不正确的参数文件 会导致实例启动失败Oracle数据库的Instance决定了动态运行的数据库的ORACLE SID Oracle实例 Instance SystemGlobalArea BackgroundProcesses Servers Users D

14、ataFiles RedoLogFiles ControlFiles Oracle数据库进程结构 Oracle可以在多进程和单进程配置下工作 多进程配置多个进程执行Oracle代码的不同部分多进程允许多个用户同时使用单进程配置所有的Oracle代码由一个进程执行单进程实例只允许单个用户使用主要用于单任务的机器上通常使用的Oracle都是多进程实例结构 DatabaseBufferCache SharedPool SGA Oracle数据库单进程结构 ORACLERDBMSSERVER 应用软件 DatabaseBufferCache SharedPool SGA LISTENER Oracle

15、数据库多进程结构 DBWR LGWR Dnnn USER RECO CKPT SMON PMON ARCH 用户进程与服务器进程 Servers Users DataFiles DatabaseBufferCache SharedPool SGA DBWR User与Server进程 Servers Servers Users Users E mail tengyc 44 用户进程与服务器进程 用户进程 UserProcess 在用户运行应用程序时自动产品产生系统创建服务器进程 ServerProcess 处理用户进程的请求Server进程和User进程通信并为所连接的User进程请求服务 E

16、 mail tengyc 45 Server进程工作过程 分析 编译 执行用户的SQL语句确定执行计划 形成分析树从磁盘数据文件将数据读入SGA的共享数据库缓冲区将SQL语句的结果返回给用户进程相同的SQL代码只编译一次存在SQL优化问题 DBWR进程 E mail tengyc 47 DBWR进程 在存储数据之前 服务器进程必须将数据放入数据缓冲区快存中修改后的数据块通过后台进程 数据库写 DatabaseWriter DBWR 写回磁盘为处理SQL语句 Server进程使用了SGA中的共享内存 E mail tengyc 48 DBWR进程 DBWR管理DatabaseBufferCache以便user进程总能找到空闲的缓冲区将所有修改后的缓冲区数据写入数据文件使用LRU算法来将最近使用过的块保留在内存中通过延迟写来优化磁盘I O读写可以启动多个数据写入进程参数DB WRITER PROCESSES决定DBWR启动的个数进程名称分别为DBW0 DBW1 DBWj E mail tengyc 49 DBWR进程 DBWR在下面情况将dirty缓冲区写入磁盘 dirty队列达到一定长度

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

当前位置:首页 > 办公文档 > 活动策划

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