第4章 Oracle体系结构--《Oracle数据库基础与应用教程》书籍教案分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《Oracle数据库基础与应用教程》书籍教案人民邮电出版社出版於岳编写作者联系方式:airfish2000@126.com本书内容:本书全面讲述了Oracle数据库的日常管理工作内容。全共14章,包含Oracle简介和安装、Oracle客户端、管理Oracle环境、Oracle体系结构、管理Oracle存储结构、SQL语言、表、约束、视图、同义词和序列、索引、实现数据库安全、DataPump数据导出和导入、数据库备份和恢复。每章结尾提供适量的选择题、简答题和操作题,通过练习和操作实践,帮助读者巩固所学内容。本书适合Oracle爱好者、Oracle工程师、数据库管理员、培训机构以及大专院校计算机专业教师和学生使用。第4章Oracle体系结构内存结构4.1进程结构4.2物理存储结构4.3逻辑存储结构4.4数据字典4.5动态性能视图4.6小结4.74.1内存结构Oracle服务器由Oracle实例和Oracle数据库两部分组成。而Oracle实例又由后台进程和共享内存组成,所以Oracle的结构又包含了内存结构和进程结构;而Oracle数据库由物理文件和逻辑结构组成,所以Oracle结构也包含了物理存储结构和逻辑存储结构。4.1.1系统全局区系统全局区(SystemGlobalArea,SGA)是一块容量较大的共享的内存结构,包含一个Oracle实例的数据或控制信息,可以被Oracle服务器进程和后台进程所共享使用。1.数据库缓冲区高速缓存数据库缓冲区高速缓存(DatabaseBufferCache)也称为缓冲区高速缓存(BufferCache),是由许多小缓冲区组成的,其主要作用是缓存最近访问的数据块信息,Oracle数据库中对数据的所有修改操作都是在该内存中进行的。图4-1SGA结构(1)缓冲区状态(2)缓冲池2.重做日志缓冲区重做日志缓冲区(RedoLogBuffer)是一个SGA中的循环缓冲区,用于按顺序存储对数据库所做更改的重做条目的描述,然后LGWR后台进程会将重做日志缓冲区中的记录写到联机重做日志文件中。3.共享池共享池(SharedPool)是SGA中最重要的内存区域,主要用于提高SQL和PL/SQL语句的执行效率,包括执行计划及运行SQL语句的语法分析树。图4-2共享池结构(1)库缓存(2)数据字典缓存(3)服务器结果缓存(4)保留池4.大池大池(LargePool)是一个可选的内存池,供一次性大量的内存分配使用,为共享SQL分配会话内存,数据库避免了因收缩共享SQL缓存的性能开销。通过为RMAN操作、I/O服务器进程、并行缓冲区分配内存,大池比共享池更好地满足大内存要求。5.Java池Java池(JavaPool)是用于存储所有特定于会话的Java代码和Java虚拟机(JVM)内数据的内存区域。Java池的大小可以通过JAVA_POOL_SIZE初始化参数来进行设置。6.流池流池(StreamsPool)存储缓冲队列消息,并为Oracle流捕获进程和应用进程提供内存。4.1.2程序全局区程序全局区(ProgramGlobalArea,PGA)是一个用于存储服务器进程的数据和控制信息的内存区域,当用户连接到Oracle服务器时,Oracle服务器会为每个服务器进程分配相应的PGA。1.排序区2.会话区3.游标区4.堆栈区4.2进程结构Oracle进程主要由用户进程、服务器进程和后台进程组成。用户进程通过监听器来访问Oracle实例,触发生成一个服务器进程,用来处理该用户进程的请求进程。后台进程主要用来对Oracle数据库进行各种维护和操作。4.2.1用户进程用户进程运行于客户端,将用户的SQL语句传递给服务器进程,是一个需要与Oracle服务器进行交互的程序。同一个用户可以同时创建多个会话,如图4-3所示,以用户hr两次连接到同一个Oracle实例,创建两个会话。图4-3连接和会话4.2.2服务器进程服务器进程用来处理连接到Oracle实例的用户进程提交的请求,是一个直接与Oracle服务器交互的程序。在应用程序和Oracle服务器运行在一台主机的情况下,可以将用户进程和对应的服务器进程合并来降低系统开销。服务器进程可以执行以下工作内容。解析和执行应用程序提交的SQL语句。如果数据在SGA中不存在,则将所需的数据块从磁盘上的数据文件读入SGA的数据库缓冲区高速缓存。以应用程序可以理解的形式返回SQL语句的执行结果。服务器进程可以分为以下两类。(1)专用服务器进程(2)共享服务器进程4.2.3后台进程后台进程是Oracle的程序,用来管理数据库的读写、恢复和监视等相关工作。服务器进程主要是通过后台进程和用户进程进行联系和沟通的,并由后台进程和用户进程进行数据的交换。一个Oracle实例中可以包含多种后台进程,这些进程不一定全部出现在实例中。系统中运行的后台进程数量非常多,可以通过V$BGPROCESS动态性能视图查询后台进程的信息。1.DBWn2.LGWR3.CKPT4.SMON5.PMON6.ARCn7.RECO8.Dnnn4.3物理存储结构Oracle物理存储结构是指数据库物理文件的组成结构,物理存储结构主要是由控制文件、数据文件和联机重做日志文件组成的,这3类文件是组成数据库不可或缺的关键性文件。除这3种文件之外,数据库还可以具有归档日志文件、参数文件、密码文件、警告日志文件和跟踪文件等。4.3.1控制文件控制文件(ControlFile)是一个很小的二进制文件,包含了数据库物理结构的信息,如各数据文件和重做日志文件的存储位置、数据库名称、检查点信息、数据库创建的时间戳、当前日志序列号和RMAN备份信息等。4.3.2数据文件每一个表空间都是由一个或多个数据文件(Datafile)组成的,一个数据文件只能存在于一个表空间中。4.3.3联机重做日志文件联机重做日志文件(OnlineRedoLogFile)是用于存储重做日志的文件,可以维护数据库的一致性,进行数据库的恢复。重做日志是由重做条目构成的(也称为重做记录),主要功能是记录对数据所作的全部修改。如图4-4所示例子,Oracle具有两个联机重做日志文件组,每一个联机重做日志文件组具有两个联机重做日志文件,分别处于不同的磁盘上(磁盘A和磁盘B)。图4-4联机重做日志文件组4.3.4归档日志文件为了避免联机重做日志文件重写时丢失重做记录,需要对联机重做日志文件进行归档。归档日志文件是处于非活动(INACTIVE)状态的重做日志文件的备份,它对Oracle数据库的备份和恢复起到非常重要的作用。4.3.5参数文件参数文件记录了Oracle数据库的基本参数信息,主要包括数据库名、控制文件所在路径、进程信息等内容。4.3.6密码文件Oracle密码文件的作用是存放所有以SYSDBA或SYSOPER系统权限连接数据库的用户的口令,如果要以SYSDBA系统权限远程连接数据库,必须使用密码文件,否则不能连接。即使数据库不处于打开(OPEN)状态,依然可以通过密码文件验证来连接数据库。如果数据库的SYSDBA是通过数据库身份验证的,那么密码的信息就保存在密码文件中,如果不小心把sys用户的密码忘记了,只需重新创建密码文件即可。使用orapwd命令可以在操作系统中创建密码文件。orapwd命令选项如表4-1所示。表4-1orapwd命令选项4.3.7警告日志文件警告日志文件是一个文本文件,用来在Oracle数据库运行的时候,按时间顺序记录实例的信息和错误信息。如果一项管理性操作成功执行,那么Oracle将在警告日志文件中记录一条“完成”消息和当时的时间戳。4.3.8跟踪文件跟踪文件是Oracle实例在系统出现异常的时候,由Oracle系统自动创建的文件,它与警告日志文件一起构成完整的故障信息描述体系。跟踪文件包括后台跟踪文件或用户跟踪文件两种。4.4逻辑存储结构Oracle数据库为数据库中的所有数据分配逻辑空间。Oracle数据库的逻辑存储结构是一种层次结构,数据库空间分配的逻辑单位是数据块、区、段和表空间。逻辑存储结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑存储结构。在Oracle数据库中,逻辑存储结构和物理存储结构之间的关系如图4-5所示。图4-5逻辑存储结构和物理存储结构4.4.1数据块数据块(DataBlock)是Oracle数据库中最小的存储单位,存储Oracle数据。一个数据块占用一定的磁盘空间。特别注意的是,这里的数据块是Oracle的数据块,而不是操作系统的块。数据块是Oracle在数据文件上执行I/O的最小单位,其大小一般是操作系统块的整数倍。Oracle数据块和操作系统块之间的关系如图4-6所示。图4-6数据块和操作系统块1.数据块格式块中存放表的数据和索引的数据,无论存放哪种类型的数据,块的格式都是相同的,数据块是由块头、表目录、行目录、空余空间和行数据5部分组成的,如图4-7所示。图4-7数据块格式(1)块头(2)表目录(3)行目录(4)空余空间(5)行数据2.行链接和行迁移当出现行链接和行迁移两种情况时,会导致表中某行数据过大,一个数据块无法容纳,Oracle在读取这样记录的时候,会扫描多个数据块,执行更多的I/O操作,这样会引起数据库性能降低。(1)行链接(2)行迁移4.4.2区区(Extent)是一组连续的数据块,是Oracle进行空间分配的逻辑单元,它是由相邻的数据块组成的。4.4.3段段(Segment)是由多个数据区组成的,它是为特定的数据库对象分配的一系列数据区。段内包含的数据区可以不连续,并且可以跨越多个文件。使用段的目的是保存特定对象。表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件。Oracle数据库具有以下4种类型的段。1.数据段2.索引段3.临时段4.UNDO段4.4.4表空间表空间是用于存储段的逻辑存储容器。一个数据库必须要具有SYSTEM和SYSAUX表空间。图4-8显示了一个典型的Oracle数据库中的表空间类型。图4-8表空间类型1.SYSTEM表空间SYSTEM表空间是在创建数据库时创建的一个管理表空间,其所有者是sys用户。SYSTEM表空间包含以下信息。数据字典。表和包含有关数据库的管理信息的视图。编译存储对象,如触发器、存储过程和包。2.SYSAUX表空间SYSAUX表空间是在创建数据库时自动创建的,它充当SYSTEM表空间的辅助表空间,主要存储除数据字典以外的其他对象。3.UNDO表空间UNDO表空间(撤销表空间)是一个特殊的表空间,是保留给系统管理UNDO数据的本地管理表空间,用户不能在该表空间中创建段。像其他永久性表空间一样,UNDO表空间包含数据文件。4.临时表空间临时表空间用于存储Oracle数据库运行期间所产生的临时数据,主要用于保存数据库排序操作、分组时产生的临时数据。5.USERS表空间USERS表空间(用户定义表空间)用于存储永久性用户对象的数据和私有信息。可以在USERS表空间上创建各种数据库对象,如表和索引等。4.5数据字典4.5.1数据字典简介数据字典是由Oracle服务器创建和维护的一组只读的系统表,它存储了有关数据库和数据库对象的信息,Oracle服务器依赖这些信息来管理和维护数据库。数据字典中存储了以下数据库信息。数据库中所有方案对象的信息,如表、视图、同义词和索引等。数据库的逻辑结构和物理结构,如表空间和数据文件的信息。列的默认值。完整性约束的信息。Oracle用户的名称。用户和角色被授予的权限。用户访问或使用的审计信息。数据库对象的磁盘空间分配信息,如对象所分配的和当前使用的磁盘空间。其他产生的数据库信息。4.5.2数据字典内容数据字典中包含数据字典基表和数据字典视图两种内容。(1)数据字典基表(2)数据字典视图4.5.3数据字典分类数据字典组织方式是先基于数据字典基表创建数据字典视图,然后再基于数据字典视图创建同义词,以便用户能够

1 / 90
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功