资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
讲义 Oracle数据库 2009 3 李明俊 第四章Oracle数据库体系结构 本章内容 4 1Oracle数据库的逻辑结构4 2Oracle数据库的物理结构4 3数据字典4 4Oracle的内存结构 4 1Oracle数据库的逻辑结构 从逻辑上看 Oracle数据库可以划分为表空间 段 区和块 以有效管理 存储 检索数据 Oracle数据库结构 数据库 表空间 用户表空间 索引表空间 临时表空间 回退表空间 段 数据段 索引段 临时段 回退段 区 空闲区 使用区 数据文件 用户文件 索引文件 临时文件 回退文件 数据块 4 1 1表空间 TABLESPACE 1 表空间及其作用逻辑上来说 Oracle数据库划分为表空间 一个表空间通常将相关的逻辑结构组织在一起 一个数据库通常由一个或多个表空间组成 表空间可分为系统 SYSTEM 表空间和非系统表空间 数据库的数据逻辑上存储在表空间上 实际上存储在表空间所对应的物理数据文件上 2 表空间类型数据字典管理表空间 Oracle8以下版本采用 本地化管理表空间 Oracle8i以上版本采用 Oracle8i Oracle9iRelease1两种方法都可采用 Oracle9iRelease2完全采用本地化管理表空间 两种管理方法的区别 数据字典管理表空间当空间需要扩充时必须通过查询数据字典来查找空闲块 对磁盘碎片不能自动合并 本地化管理表空间使用位图的方法查找空闲空间 产生的磁盘碎片可以自动合并 目前安装的数据库是Oracle9iRelease2版 可通过查询DBA TABLESPACES了解表空间的状态 表空间 用户表空间 系统表空间 数据库 磁盘驱动器1 磁盘驱动器2 数据文件1 数据文件2 数据文件3 一个表空间中的数据文件的个数与操作系统有关 一般来说是1022个 一个数据库中的数据文件的最大个数是65533 使用CREATEDATABASE或CREATECONTROLFILE语句中的MAXDATAFILES参数会限制每一个数据库的数据文件个数 数据库的表空间个数没有限制 但数据库只允许65533个数据文件 一个表空间至少有一个数据文件 因此数据库的表空间数不能超过65533个 数据库管理员 DBA 可利用表空间完成下列工作 控制数据库数据的磁盘分配 将确定的空间份额分配给数据库用户 通过使单个表空间联机或脱机 控制数据的可用性 执行部分数据库后备或恢复操作 为提高性能 跨越设备分配数据存储 3 建立表空间 下列命令建立一个表空间的格式 CREATETABLESPACEtablespaceDATAFILEdatafileSIZEnnnM autoxtendonnextnnnMmaxsizennnnM unlimited EXTENTMANAGEMENTLOCALUNIFORMSIZEnnnM AUTOALLOCATE tablespace 表空间datafile 数据文件autoxtendonnext 文件空间自动增加EXTENTMANAGEMENTLOCAL 代表本地化表空间UNIFORM 区大小相同AUTOALLOCATE 区大小系统动态自动分配 下列命令建立一个USER DATA本地化管理表空间 尺寸为100M CREATETABLESPACEUSER DATADATAFILE f oracle oradata test userl data dbf SIZE100mautoxtendonnext100mmaxsize1000mEXTENTMANAGEMENTLOCALUNIFORMsize500k 其中 f oracle oradata test userl data dbf SIZE100mautoxtendonnext100mmaxsize1000m是对数据文件的描述 而下面的子句是对表空间的描述 EXTENTMANAGEMENTLOCALUNIFORMsize500k 下列命令建立一个USER DATA本地化管理表空间 尺寸为300M DATAFILE从句指定多个数据文件 并用逗号隔开 以建立大容量的数据文件 CREATETABLESPACEUSER DATADATAFILE f oracle oradata test userl data dbf SIZE100mautoxtendonnext100mmaxsize1000m f oracle oradata test user2 data dbf SIZE100mautoxtendonnext100mmaxsizeunlimited f oracle oradata test user3 data dbf SIZE100mEXTENTMANAGEMENTLOCALUNIFORMsize500k 下列命令建立一个临时表空间 使用临时表空间可以使得排序操作更加有效 以改进性能 临时表空间内不能驻留永久数据 只能为临时段指定临时表空间 CreatetemporaryTablespaceTEMP2Tempfile D oracle oradata test Temp01 dbf Size500MEXTENTMANAGERMENTLOCALUniformSize5M 4 修改表空间 1 修改表空间的数据文件 给表空间增加数据文件ALTERTABLESPACEUSER DATAADDDATAFILE f oracle oradata user01 dbf SIZE30M 2 修改表空间的可用性 将表空间联机ALTERTABLESPACEUSER DATAONLINE 3 修改表空间的非可用性 将表空间脱机ALTERTABLESPACEAPPL DATAOFFLINE 4 修改表空间管理只读模式ALTERTABLESPACEUSER DATAREADONLY 5 修改表空间管理只读写模式ALTERTABLESPACEUSER DATAREADWRITE 5 查询表空间信息 有关表空间的信息 可以查询DBA TABLESPACES DBA DATA FILES DBA FREE SPACE V TABLESPACE V SORT USAGE V DATAFILE等数据字典和视图 DBA TABLESPACES包含了数据库中所有表空间的信息 表空间名字 默认的存储参数 类型 状态 是否永久 临时等 而USER TABLESPACES包含了用户拥有的表空间的信息 查询DBA DATA FILES返回表空间数据文件信息 表空间名 表空间的数据文件 数据文件尺寸 是否自动扩展设置信息 SELECTFILE NAME TABLESPACE NAME BYTES AUTOEXTENTSIBLE MAXBYTESFROMDBA DATA FILES 查询DBA FREE SPACE返回所有表空间中可用的自由区 查询一个表空间总的自由空间 USER FREE SPACE显示当前用户拥有的表空间中的自由区 SELECTTABLESPACE NAME SUM BYTES FREE SPACEFROMDBA FREE SPACEGROUPBYTABLESPACE NAME 查询该视图从控制文件获得表空间名 SELECT FROMV TABLESPACE V DATAFILE 这是动态性能视图 包含数据文件名字 尺寸 数据文件所在的表空间名 数据文件的状态 OFFLINE ONLINE READWRITE READONLY 其他视图DBA SEGMENTS ALL SEGMENTS USER SEGMENTS 包含段的类型 段的尺寸 表空间相关的存储参数 DBA EXTENTS ALL EXTENTS USER EXTENTS 包含区的尺寸 与区相关的段和表空间信息 DBA TEMP FILES 包含本地化管理的临时表空间的临时文件 DBA USERS 包含为用户指定的默认表空间和临时表空间 V TEMP EXTENT MAP 包含一个本地化管理的临时表空间的所有区的信息 6 UNDO表空间UNDO表空间Oracle9i中引入的全新的概念 它自动对回退段进行管理 当一个回退段不足时 一个事务可以使用多个回退段 Oracle会自动使用其他回退段 不终止事务的运行 4 1 2段 SEGMENT 段是表空间中指定类型的逻辑存储结构 是为表 索引等逻辑结构分配的区 extent 的集合 Oracle的段主要有5种类型 数据段 用于存储表 分区的数据 每建立一张表 就分配一个段 索引段 存储索引数据 每建立一个索引 就分配一个索引段 临时段 数据库执行排序或子查询时需要临时工作区 系统自动建立临时段 操作执行结束自动释放临时段 回退段 当用户对数据库执行修改操作时 系统将修改前的数据存入回退段 在执行回退命令rollback时 回退段中的数据用于撤消所作的修改 4 1 3区 EXTENT 区是分配空间的最小单位 一个区由一组连续的逻辑块组成 一个段至少包含一个区 当一段中所有空间已使用完 Oracle为该段分配一个新的区 区的分配和回收是系统自动完成的 4 1 4块 BLOCK 块是Oracle内最小的逻辑单元 是I O的最小单位 一个数据块对应一个或多个操作系统物理块 块的大小是在数据库建立时 使用参数DB BLOCK SIZE决定 系统缺省值为8K 该参数在数据库建立后不能更改 除非重建数据库 4 2Oracle数据库的物理结构 数据库的物理结构是数据库中操作系统文件的集合 4 2 1数据文件 数据文件有如下特点 每个数据库至少有一个数据文件 每个数据文件只与一个表空间 一个数据库相关 在数据库中建立的表 索引等对象只能存储在一个表空间中 但这些对象的物理存储可以在该表空间的不同数据文件上 一般的做法是将表数据与索引数据存放在不同的数据文件上 将回退信息与临时数据存放在不同的数据文件上 对象1 对象2 对象3 表空间1 表空间2 数据文件1 数据文件2 数据文件3 对象4 对象5 创建数据文件 当建立一个表空间时 会建立相应的数据文件 如建立一300M的数据文件 CREATETABLESPACEAPPL DATADATAFILE f oracle oradata test appl data dbf SIZE300M 也可以给已经存在的表空间增加数据文件 ALTERTABLESPACEUSERSADDDATAFILE f oracle oradata test appl data dbf SIZE25M 查询数据文件通过V DATAFILE V TEMPFILE DBA DATA FILES DAB EXTENTS等数据字典和视图可以查询数据文件的相应信息 例如查询数据文件中的状态 名字 其中system01 dbf文件的状态为system 表明该文件是系统表空间的一部分 调整数据文件的尺寸建立文件时设置AUTOEXTEND 使得数据文件尺寸自动扩展 或使用ALTERDATABASE设置自动扩展 CREATETABLESPACEAPPL DATADATAFILE f oracle oradata test appl data dbf SIZE500MAUTOEXTENDONNEXT100MMAXSIZE2000M ALTERDATABASEDATAFILE f oracle oradata test appl data dbf AUTOEXTENDONNEXT100MMAXSIZE2000M 另一方法是手工操作 执行命令ALTERDATABASEDATAFILE的RESIZE从句来调整数据文件尺寸 ALTERDATABASEDATAFILE f oracle oradata test appl data dbf RESIZE1500M 4 2 2重做日志 Oracle数据库的重做日志 redolog 也称为事务日志 transactionlog 是数据库的重要组成部分 用于保护所有已提交事务的工作 日志文件分为联机重做日志文件和归档日
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号