2oracle9i体系结构ppt课件_第1页
2oracle9i体系结构ppt课件_第2页
2oracle9i体系结构ppt课件_第3页
2oracle9i体系结构ppt课件_第4页
2oracle9i体系结构ppt课件_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 Oracle9i体系构造2.1 Oracle9i体系构造概述2.2 Oracle9i的物理构造2.3 Oracle9i的逻辑构造2.4 数据库例程 2.5 Oracle9i的内存构造2.6 Oracle9i的进程构造2.7 数据字典2.1 Oracle9i体系构造概述例程SGA2.1 Oracle9i体系构造概述口令文件 例程 SGA重做日志缓冲区 共享池 数据字典高速缓存库高速缓存 DBWRSMONPMONCKPTLGWR其它 用户进程 效力器进程 PGA控制文件 数据文件 数据库 数据库缓冲区高速缓存 重做日志文件 Java 池 大型共享池 参数文件 归档日志文件 2.2 Orac

2、le9i的物理构造 数据库的物理(存储)构造是指构成数据库的操作系统文件Oracle数据库的物理构造主要包括四种文件数据文件日志文件控制文件配置文件2.2.1 数据文件用于存放数据库中一切的数据一个数据库可包含多个数据文件一个数据文件只能属于一个数据库数据文件的后缀是.DBF2.2.1 数据文件查看数据文件select tablespace_name,file_name from dba_data_files;col tablespace_name format a20;col file_name format a50;select tablespace_name,file_name from

3、 dba_data_files;select tablespace_name,bytes/1024/1024,autoextensible,file_name from dba_data_files;set linesize 200;select name from v$datafile;日志文件又称重做日志文件或联机重做日志文件Online Redo Log File) 日志文件记录一切对数据库进展的修正,以便在系统发生缺点时,用它对数据库进展恢复。日志文件的后缀是.LOG2.2.2 日志文件每一个数据库至少包含两个日志文件组。每一个日志文件组至少包含一个日志文件成员。每一个日志文件成员对应

4、一个物理文件。日志文件组以循环方式进展写操作。日志文件的特点:2.2.2 日志文件LogFile1.logLogFile2.logGroup 1Group 2Member 2.1Member 1.12.2.2 日志文件日志文件任务原理 镜像日志文件是为防止日志文件丧失,在不同磁盘上同时维护两个或多个联机日志文件的副本。2.2.2 日志文件2.2.2 日志文件Group 1Group 2Logfile1.logLogfile2.logMember 2.1Member 1.1Logfile3.logLogfile4.logMember 2.2Member 1.2Disk 1Disk 2镜像日志文件

5、任务原理根据在事务信息将被覆盖时,能否应该将文件归档,数据库分为以下两种归档方式:归档日志方式Archivelog):全恢复方式,适宜银行系统等非归档日志方式(NoArchivelog):适宜对数据库中数据要求不高的场所2.2.2 日志文件2.2.2 日志文件ARCH存储介质Log File 1Log File 2Group 1Group 2Member 2.1Member 1.1归档日志方式查看日志文件SELECT * FROM V$LOGFILE;SELECT * FROM V$LOG;select name,log_mode from v$database; archive log li

6、st;2.2.2 日志文件是一个较小的二进制文件,用于翻开、存取控制 数据库控制文件记录了数据库的物理构造,如数据库名、 数据文件和日志文件的名字及位置等信息。控制文件的后缀是.CTL控制文件对于数据库的胜利启动和正常运转至关重要。2.2.3 控制文件在启动数据库时,必需先找到控制文件,以确定 数据文件和日志文件,只需控制文件一切正常, 才干翻开数据库。并且在数据库运转过程中,控制文件必需一直坚持 可用形状,以接受对数据库物理构造所做的任何修 改信息。假设翻开数据库时找不到可用的控制文件,或控制 文件所记录的信息出错,那么无法翻开数据库。控制文件的内容只能由Oracle本身来修正。每个数据库至

7、少要有一个控制文件。2.2.3 控制文件查看控制文件Select * from v$controlfile;2.2.3 控制文件2.2.4 配置文件配置文件也叫参数文件,用于在启动数据库对数据库和例程进展配置。配置文件的后缀是.ORAOracle9i有两个参数文件init.oraE:oracleadminora9dbpfile)SPFILEORA9DB.ORA(E:oracleora90database)2.2.4 配置文件如何判别当前数据库运用的是哪个配置文件? select name, value from v$parameter where name = spfile; value的值为

8、空, 阐明运用的配置文件是init.ora value的值不为空, 阐明运用的是spfile*.ora 2.2.4 配置文件如何判别当前数据库运用的是哪个配置文件? show parameter spfile value的值为空, 阐明运用的配置文件是init.ora value的值不为空, 阐明运用的是spfile*.ora 2.2.5 其他文件口令文件 用于保管具有SYSDBA、SYSOPER权限的用户名select * from v$pwfile_users;归档日志文件 用于保管曾经写满的重做日志文件2.3 Oracle9i的逻辑构造Oracle的逻辑构造是由一个或多个表空间组成的 一

9、个表空间由假设干个段组成 一个段由假设干个区组成 一个区由假设干数据库块组成 一个数据库块对应一个或多个OS块Oracle数据库的存储构造数据库逻辑物理表空间数据文件O/S 块数据块段范围日志文件控制文件配置文件数据库2.3 Oracle9i的逻辑构造表空间段块区段Oracle数据库的逻辑构造表空间分类SYSTEM表空间自动建立(随数据库创建)存放数据字典存储过程、包、函数和触发器的定义存储数据库对象的定义2.3.1 表空间表空间分类回滚表空间回滚表空间(RollBack Table Space)是用于存放回滚段信息的表空间。回滚段中的信息是暂时的、未提交的事务信息,当需求回滚事务时,从回滚段

10、表空间中提取回滚信息撤销事务。回滚表空间只能建立回滚段,不能在回滚表空间创建数据库对象。2.3.1 表空间表空间分类暂时表空间暂时表空间(Temp Table Space)普通用于存放例程运转过程中产生的暂时数据(如执行用于排序、衔接查询和建立索引的SQL语句时产生的暂时数据)。假设数据库运用过程中的暂时数据较多且频繁,那么该当在数据库中创建一个专门用来存储暂时数据的暂时表空间。否那么 暂时数据会存储在SYSTEM表空间中,影响整个系统的性能。2.3.1 表空间表空间分类用户表空间用于存放用户的私有信息。2.3.1 表空间select * from v$tablespace;select *

11、from dba_tablespaces; select tablespace_name,file_name from dba_data_files;查看表空间2.3.1 表空间 段有多种不同的类型,对应于不同类型的数据对象,常见的有:数据段Data Segment索引段Index Segment回滚段Rollback Segment暂时段Temporary Segment2.3.2 段回滚段Rollback Segment存储为读一致性、回滚或恢复用数据暂时段Temporary Segment存储排序操作期间建立的临时表的数据索引段Index Segment存储表或聚集上最正确查询的一切索引

12、数据段的分类数据段Data Segment存储表或聚集的一切数据事务回滚事务恢复回滚段读一致性控制文件数据文件重做日志回滚段作用当一个会话正在修正数据时,其他的会话将看不到该会话未提交的修正。2.3.2 段是数据库空间分配的逻辑单位,一个区由假设干数据库块组成缺省情况下,数据库会运用表空间中存储的存储参数来管理它们的分区分配给段的第一个区称初始分区,以后分配的区称增量分区2.3.3 区主要的几个存储参数:INITIAL:段建立时分配的第一个区的大小单位:字节NEXT:段内分配的下一个增量区大小单位:字节MAXEXTENTS:分配给段的区总数MINEXTENTS:建立段时分配的区总数,也就是段的

13、最小区数量PCTINCREASE:为段分配的每个增量区超越上一个区的百分比2.3.3 区存储子句优先级 Oracle 缺省设置 表空间 段(表/索引) 2.3.3 区数据库块又称逻辑块或Oracle块。一个数据库块对应一个或多个物理块(OS块)数据库块的大小由参数DB_BLOCK_SIZE确定。2.3.4 数据库块2.4 数据库例程数据库例程(instance) ,也叫数据库实例,是Oracle DBMS中用来访问数据库文件集的存储构造以及后台进程的集合,它是存取和控制数据库的软件机制。 数据库例程是运转数据库时后台运转的程序、占用的内存等的集合。 数据库例程是用户进程与数据文件之间 的桥梁,

14、它由一系列的内存区与后台进程组成 ,用户进程必需经过例程才干读写数据文件。 2.4 数据库例程数据库由一些文件组成,用户不能直接了解数据库数据文件的内容,例程能了解这些信息,并把数据库里的数据取出来,翻译后展现给用户。例程还能把修正的数据,以数据库的格式存到数据文件中。另外例程还有监视进程、存档等功能 2.4 数据库例程口令文件 例程 SGA重做日志缓冲区 共享池 数据字典高速缓存库高速缓存 DBWRSMONPMONCKPTLGWR其它 用户进程 效力器进程 PGA控制文件 数据文件 数据库 数据库缓冲区高速缓存 重做日志文件 Java 池 大型共享池 配置文件 归档日志文件 Oracle S

15、erverOracle 效力器2.4 数据库例程通常数据库与例程是一一对应的,即一个数据库对应一个例程;在并行数据库效力器构造中,数据库与例程是一对多关系,即一个数据库对应多个例程;多个例程同时驱动一个数据库的架构称作“集群,同一时间一个用户只能与一个例程联络,当某一个例程出现缺点时,其他例程照常运转,从而保证了数据库的平安运转。2.4 数据库例程例程数据库单例程数据库系统例程1数据库多例程(集群)数据库系统例程2例程3例程4Oracle 的内存构造由四个内存区组成,分别是: 系统全局区 (SGA) 程序全局区 (PGA)排序区软件代码区2.5 Oracle9i的内存构造 2.5.1系统全局区

16、 系统全局区SGA,System Global Area,是内存构造的主要组成部分,是Oracle为一个例程分配的一组共享内存缓冲区,保管着Oracle系统与一切数据库用户的共享信息,包括数据维护、SQL语句分析、重做日志管理等,是例程的主要部分。SGA 在例程启动时自动分配,当例程封锁时收回。数据库的一切操作都要经过SGA来进展。2.5 Oracle9i的内存构造 2.5.1系统全局区 根据存放信息的不同,SGA分为:数据块缓冲区共享池:库高速缓存 数据字典高速缓存重做日志缓冲区两个可选区:Java池 大池2.5 Oracle9i的内存构造 SGA重做日志缓冲区 共享池 数据字典高速缓存库高

17、速缓存 数据块缓冲区Java 池 大池 2.5.1系统全局区 2.5 Oracle9i的内存构造 数据块缓冲区用于存放Oracle最近从数据文件中读取的数据块。数据块缓冲区的任务原理:教材P35数据块缓冲区的大小有由配置文件中的db_cache_size指定。2.5.1系统全局区 2.5 Oracle9i的内存构造 1 数据块缓冲区Database Buffer Cache 它包括两个部分:库高速缓存(Library Cache)和数据字典高速缓存(Data Dictionary Cache)库高速缓存存放已提交的SQL文本、编译后的代码和执行方案数据字典高速缓存存放用于分析SQL语句的数据字

18、典行,包含表、列定义以及权限信息共享池的大小由配置文件中 shared_pool_size 参数指定2.5.1系统全局区 2.5 Oracle9i的内存构造 2 共享池Shared Pool 对数据库进展的任何修正在记录到日志文件之前都必需先存放到重做日志缓冲区里。重做日志缓冲区的大小由 log_buffer 指定2.5.1系统全局区 2.5 Oracle9i的内存构造 3 重做日志缓冲区 Redo log Buffer作用:为大数据集的操作提供内存空间,以便提高这些操作的性能。大池是一个可选的内存构造。DBA可以根据实践需求来决议能否在SGA区中创建大池。需求大池的操作:数据库备份和恢复,具

19、有大量排序操作的SQL语句,并行化的数据库操作。2.5.1系统全局区 2.5 Oracle9i的内存构造 4 大池(Large Pool)假设没有大池,上述操作所需的内存空间将占据共享池内存。由于这些操作所占据的内存比较多,会导致影响到共享池的运用效率,这时候,就应该思索在SGA区中创建大池,在大池中为这些操作分配内存 大池的大小由large_pool_size指定2.5.1系统全局区 2.5 Oracle9i的内存构造 4 大池(Large Pool)用于存放java代码,java语句的语法分析表等 JAVA池的大小由java_pool_size指定2.5.1系统全局区 2.5 Oracle

20、9i的内存构造 5 JAVA池Java Pool是某个Oracle效力器进程运用的内存区域 SGA是一切进程共享的,PGA是非共享的,每个效力器进程有本人的PGA当效力器进程建立时分配2.5.2程序全局区PGA 2.5 Oracle9i的内存构造 用于存放排序操作所产生的暂时数据,其大小由初始化参数sort_area_size指定。关于排序、sort_area_size、暂时表空间(建word文档)2.5.3排序区 2.5 Oracle9i的内存构造 用于存放正在执行的程序代码2.5.4软件代码区2.5 Oracle9i的内存构造 2.6 Oracle9i的进程构造在Oracle数据库管理系统

21、中,进程由用户进程、效力器进程和后台进程组成。口令文件 例程 SGA重做日志缓冲区 共享池 数据字典高速缓存库高速缓存 DBWRSMONPMONCKPTLGWR其它 用户进程 效力器进程 PGA控制文件 数据文件 数据库 数据库缓冲区高速缓存 重做日志文件 Java 池 大型共享池 配置文件 归档日志文件 Oracle ServerOracle 效力器2.6 Oracle9i的进程构造2.6.1用户进程是一个需求与Oracle Server交互的程序运转于客户端当用户运转某个工具或运用程序如SQL*Plus时创建,当用户退出上述程序时终了向Oracle Server发出调用,但它并不与Orac

22、le Server直接交互,而是经过Server Process与Oracle Server进展交互。2.6 Oracle9i的进程构造是一个直接与Oracle Server交互的程序。与Oracle Server运转于同一台机器上运用PGA2.6.2效力器进程2.6 Oracle9i的进程构造效力器进程的功能:处置用户进程的恳求。处置过程: 分析SQL命令并生成执行方案。 从数据块缓冲区中读取数据。 将执行结果前往给用户。效力器进程的分类公用效力器进程: 一个效力进程对应一个用户进程 共享效力器进程: 一个效力进程对应多个用户进程,轮番为用户进程效力。 2.6.2效力器进程2.6 Oracl

23、e9i的进程构造2.6.3后台进程2.6 Oracle9i的进程构造后台进程用来管理数据库的读写,恢复和监视等任务。主要包括:DBWR:数据库写进程LGWR:日志写进程CKPT: 检查点写进程SMON:系统监控进程PMON:进程监控进程ARCH:归档进程RECO:恢复进程LCKN :封锁进程将数据块缓冲区中一切修正正的数据块写到数据文件中,并运用LRU算法来坚持缓冲区中的数据块为最近经常运用的,以减少I/O次数。该进程在启动例程时自动启动。2.6.3后台进程2.6 Oracle9i的进程构造DBWRData Base Writer数据库写进程 (DBWR)在以下情况下写入: 出现检查点脏数据缓

24、冲区到达阈值没有空闲缓冲区出现超时表空间处于 OFFLINE 形状表空间处于 READ ONLY 形状对表执行 DROP 或 TRUNCATE 操作对表空间执行 BEGIN BACKUP 操作 例程 SGA控制文件 数据文件重做日志文件数据库 DBWR数据库缓冲区高速缓存将日志缓冲区中的一切记录项写到日志文件中。该进程在启动例程时自动启动。2.6.3后台进程2.6 Oracle9i的进程构造LGWRLog WriterLGWR 在以下情况下写入: 事务提交时三分之一填满时有 1 MB 的重做时每隔三秒DBWR 写入前 例程 SGA控制文件 数据文件 重做日志文件数据库重做日志缓冲区 LGWR作

25、用:同步数据文件,日志文件和控制文件由于DBWR/LGWR的任务原理,呵斥了数据文件、日志文件、控制文件的不一致,这就需求CKPT进程来同步。CKPT会更新数据文件/控制文件的头信息。2.6.3后台进程2.6 Oracle9i的进程构造CKPT在日志切换的时候 数据库用immediate ,transaction , normal 选项封锁数据库的时候根据初始化文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定用户触发2.6.3后台进程2.6 Oracle9i的进程构造CKPTCKPT任

26、务的主要条件如下:担任完成自动例程恢复和回收暂时表空间该进程在启动例程时自动启动2.6.3后台进程2.6 Oracle9i的进程构造SMONSystem Monitor当某个进程失效时,去除相关的资源。它主要担任以下任务:2.6.3后台进程2.6 Oracle9i的进程构造PMONProcess Monitor 回滚用户的当前事务释放相关的锁释放其它相关的资源ARCH不随例程的启动自动启动,只需当数据库以归档方式运转的时候,Oracle才会启动ARCH进程当重做日志文件被写满时,日志文件进展切换,旧的重做日志文件就被ARCH进程复制到一个/多个特定的目录/远程机器,构成归档日志文件。2.6.3

27、后台进程2.6 Oracle9i的进程构造ARCHRECO是在分布式数据库中运用的一个进程担任处理分布事务中的缺点2.6.3后台进程2.6 Oracle9i的进程构造RECO用于并行效力器系统主要完成例程之间的锁定2.6.3后台进程2.6 Oracle9i的进程构造LCKN口令文件 例程 SGA重做日志缓冲区 共享池 数据字典高速缓存库高速缓存 DBWRSMONPMONCKPTLGWR其它 用户进程 效力器进程 PGA控制文件 数据文件 数据库 数据库缓冲区高速缓存 重做日志文件 Java 池 大型共享池 参数文件 归档日志文件 2.7 数据字典 数据字典是Oracle数据库的中心组件,对用户

28、来说,它由只读类型的表和视图组成。在其中保管着关于数据库系统本身以及其中存储的一切对象的根本信息。 数据字典提供有关以下方面的信息: 一切数据库对象的定义如何为对象分配和运用空间列的默许值完好性约束信息数据库平安信息,如用户和权限、角色等审计信息。存储在 SYSTEM 表空间内由用户 SYS 拥有由 Oracle 效力器进展维护经过 SELECT 访问 2.7 数据字典 2.7 数据字典 数据字典的构造 根底表:存储在数据文件中数据字典视图:基于根底表的视图ALL视图USER视图DBA视图动态性能视图:存储在SGA和控制文件中 根底表存储相关数据库信息,包括表、索引、约束等数据库对象的构造信息

29、; 大部分数据字典根底表的称号中都包含“$等特殊字符。根底表的名字是很难记忆的,所以Oracle为根底表建立了视图,这些视图名不仅简单笼统,还隐藏了数据字典表表之间的关系,我们通常经过视图来查询数据库的信息。2.7 数据字典 数据字典视图按范围分类为: DBA:一切用户的视图 ALL:用户可以访问的视图 USER:用户拥有的视图 USER_xxx 当前用户所拥有的对象 ALL_xxx 当前用户可以访问的对象 DBA_xxx 数据库中的一切对象2.7 数据字典 查看每个表空间占用空间的大小:select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;查看段的信息SQL select segment_name from user_segments;2.7 数据字典查看区的信息SQL col segment_name format a30S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论