频道栏目
首页 > 数据库 > Oracle > 正文
教学笔记-Oracle体系结构02-Oracle数据库的物理结构和逻辑结构
2011-08-20 11:34:29           
收藏   我要投稿

·Oracle数据库的物理结构:
         Oracle数据库的存储结构包括数据的物理存储结构和逻辑存储结构,物理存储结构是实际的数据存储单元,而逻辑存储结构是数据概念上的组织。
         Oracle的物理存储结构主要包括:
(1)       一个或多个数据文件(oracle/product/10.2.0/oradata/orcl文件夹下的.DBF文件)
(2)       两个或多个重做日志文件(oracle/product/10.2.0/oradata/orcl文件夹下的REDO01.LOG文件)
(3)       一个或多个控制文件(oracle/product/10.2.0/oradata/orcl文件夹下的.CTL文件)
(4)       其他OS文件
数据文件:用户存储数据库数据,包括系统数据(数据字典)、用户数据(表、索引等)、撤销数据、临时数据等。在Oracle数据库中,至少包含一个数据文件,在逻辑上数据库是由表空间组成,而表空间物理上则是由一个或者多个数据文件组成,一个数据文件包括多个OS上的物理磁盘块。
重做日志文件:用于记录数据库变化,目的是为了在出现数据库实例失败或者介质失败时恢复数据库。Oracle需要至少两个重做日志文件组。当Oracle数据库运行在归档模式时,所有的重做日志文件在被覆盖前都会为其创建一个副本,即对数据库进行的所有事务都有一个备份,是一种最安全的数据库工作方式,并允许扩展恢复功能(包括指定时间恢复),但是这种方式会增加系统的开销。非归档模式下,当一个重做日志文件被覆盖式,之前的所有事务记录则都被清空了,这种模式下只有有限的恢复能力,只要被设计在例行故障时保护数据。
控制文件:用于记录和维护数据库的物理结构。数据库必须包含至少一个控制文件,有与控制文件至关重要,所以应在联机时多保存及格备份,这些文件存储在多个磁盘上,以降低磁盘失效引起的潜在危险。控制文件主要记录:①数据文件的大小、位置②重做日志文件的大小、位置③数据库名、创建时间④日志序列号。
其他文件:
①     归档日志文件(重做日志文件的备份文件)
②     参数文件(用于定义数据库实例启动时需要初始化的参数,参数文件默认存放在ORACLE_HOME/db_1/database中的.ora文件;文本参数文件的名称格式为inti<SID>.ora,服务器参数文件的名称格式为SPFILE<SID>.ora;SID为数据库实例)
③     口令文件(存放特权用户信息,特权用户例如SYSDBA,SYSOPER;db_1/database/pwdorcl.ora)
④     警告文件(由连续的消息和错误信息组成,按照时间顺序存放;通过警告文件可以查看Oracle内部错误也可以监视特权用户操作,警告文件的位置由初始化参数background_dump_dest确定,名称格式为:oracle/product/10.2.0/admin/orcl/bdump/alert_orcl.log)
⑤     后台进程跟踪文件(记载后台进程的警告和错误信息,每个后台进程都相应的跟踪文件。存放位置由初始化参数background_dump_dest确定,名称格式为:<数据库实例名>_<后台进程名>_<进程对应的OS进程号>.trc)
⑥     服务器进程跟踪文件(用于跟踪SQL语句,诊断SQL语句的性能,并做出响应的调整。存放位置由初始化参数user_dump_dest确定,名称格式为:<数据库实例名>_ora_<进程对应的OS进程号>.trc)
 
·Oracle数据库的逻辑结构:
         数据库的逻辑结构是面向用户的,它描述了数据库在逻辑上是如何组织和存储数据的。数据库的逻辑结构支配一个数据库如何使用系统的物理空间。数据库中的数据物理上存储在数据文件中,而逻辑上则存放在表空间中。Oracle数据库中使用表空间、段、区间、数据块等逻辑结构来管理空间对象。

  
1,  表空间(TableSpace)是数据库的逻辑组成部分,将相关的逻辑结构进行分组。一个Oracle10g数据库中至少包含一个SYSTEM表空间和一个SYSAUX表空间,还应该包含数据表空间、索引表空间、临时表空间和UNDO表空间等。一个表空间只能属于一个数据库实例。Oracle数据库中的表空间大部分都是永久表空间,也允许创建临时表空间。表空间的控件信息可以直接保存在数据文件中,也可以保存在数据字典中。
(1)       SYSTEM表空间:每一个数据库实例至少要包含SYSTEM表空间,该表空间为系统表空间,存储数据库的数据字典,以及数据表意外的其他对象(如:视图、序列等)的定义。
由于SYSTEM表空间被保留用于存放系统信息,因此用户数据对象不应保存在这个表空间中,否则对系统的运行性能和安全造成危害。
(2)       SYSAUX表空间:在Oracle10g新增的辅助系统表空间,用于减少系统表空间的负荷,提高系统的作业效率。该表空间由系统创建,作为存储数据的默认位置。
(3)       非系统表空间:Oracle数据库通常还有几个表空间,用于数据的逻辑和物理存储,下列表空间是大多数数据库必备或者常见的。
a>     撤销表空间 UNDOTBS1,用于保存事务回退信息(rollback)
b>     用户表空间 USERS,存放用户的私有信息
c>      临时表空间 TEMP,用于存放临时表和临时数据
d>     样例表空间 EXAMPLE,包含一些如人力资源、订单输入等的实例方案
实际上系统中只要有SYSTEM,SYSAUX和TEMP表空间就可以正常工作了,查询数据字典DBA_TABLESPACES可以看到系统中表空间的状态。
(4)       表空间在实际工程中的应用:对于一个Oracle数据库应用方案来说,方案用户应当建立自己专用的存放用户数据的数据表空间和索引表空间,同时还应当创建专用的临时表空间。目的是提高数据访问性能,另一方面也便于数据管理、备份、恢复等工作。
(5)       表空间的状态和工作模式
①     联机表空间与脱机表空间:联机表空间中的数据对于数据库而言是可以访问的,脱机表空间的数据是不可访问的,必要时数据库管理员可以将某个表空间(临时)脱机以阻止用户对应用数据的访问。注意:SYSTEM必须始终保持联机,因为数据字典要时刻处于可被访问的状态。
②     只读表空间与可读写表空间:新创建的表空间总是可读写的。当一个表空间的数据不能被改变时(如用于数据仓库应用的历史数据),可以将其设置为只读表空间。
2,  段(Segment)是一个对象的物理表示,由一个或多个区间组成,用于存储特定对象的所有数据,包含表空间中一种指定类型的逻辑存储结构,段不能够跨表空间,一个段只能属于一个表空间。段的类型:表、表分区、簇、索引、按索引组织的表、索引分区、回退段、临时段、LOB段、嵌套表等。可分为数据段、索引段、临时段和回退段。
簇:将多个表的数据按照关键字存储在一起,一个簇表可以包括多个表的数据。
索引:存储表关键字及对应记录的rowid,索引本质上也是一张表。
Lob段:针对大数据
3,  区间(Extent)是Oracle进行空间分配的逻辑单元,是Oracle数据库中最小的存储分配单元。
4,  数据块,也称为Oracle块,是Oracle管理数据文件中存储空间的单位。它是Oracle在数据文件上执行I/O操作的最小单位。可以通过修改初始化参数DB_BLOCK_SIZE用于定义标准块尺寸。一个数据块分为了三个区域(Header:保存数据块的地址/表目录/行目录/和为事务保留的空间,FreeSpace:保留用于以后数据更新,Data:),这中设计虽然浪费了一部分空间,但是却换来了更新系统开销的显著减少,从而极大的改善了系统性能。
本文出自 “IT记事薄” 博客

点击复制链接 与好友分享!回本站首页
上一篇:Oracle的锁表与解锁
下一篇:Oracle 10g日期时间函数
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站