oracle一个数据文件不可以给多个表空间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle一个数据文件不可以给多个表空间一个Oracle数据库由一个或多个逻辑存储单元——表空间构成,表空间存储着数据库中所有的数据;根据时间和用途不同,分成不同的表空间:如系统表空间,临时表空间,用户表空间。
Oracle数据库中的每个表空间由一个或多个文件组成,这些文件就是数据文件,它们是Oracle所在操作系统上的物理结构。
段就是在表空间中某一个特定逻辑结构的集合,例如特定逻辑结构指的是一类别,如表这个类别所占用空间的集合就是表段,索引这个类所占用的空间的集合就是索引段。一个段是不可以跨表空间的,但是可以同时跨同一表空间的多个数据文件,如上图。
段在申请空间分配的时候是按照一个一个分区来拿到的,分区来只源于某一个数据文件,不可同时属于多个数据文件,如上、下图结合;分区最终由Block组成的,块的一般大小是8K,是基本的存储单位。
Oracle数据库中的所有数据物理的存储在数据文件中。
除了普通表空间外,Oracle还有几种特殊的表空间。系统表空间(SYSTEM表空间)、UNDO 表空间(9i以前的回滚表空间)、临时表空间。
系统表空间中除了保存数据字典外还保存所有的存储过程、函数、包、触发器和对象。
UNDO表空间用于保存被DML语句影响的记录的原始状态,以便在事务失败的时候可以进行回滚。
当大的排序操作发生时,排序无法在内存中完成,这是会使用临时表空间。
Oracle推荐使用多个表空间,使用多个表空间的优点:
控制数据库的磁盘空间分配;
为数据库用户指定不同的配额(QUOTA);
通过设置单独的表空间ONLINE或OFFLINE来控制数据的可用性;
执行部分数据库的备份和恢复操作;
将数据存储分布到多个物理设备来提高性能。
Oracle支持两种管理空间方式的表空间:
本地管理表空间(Locally managed tablespace):通过表空间头部的BITMAP来管理空闲空间。
数据字典管理表空间(Dictionary managed tablespace):通过数据字典中的表来管理空闲空间。
对于本地管理表空间还可以选择如何管理段内的空闲空间:
AUTO方式:通过BITMAP管理,这种方式又叫做automatic segment-space management。
MANUAL方式:通过FREELISTS来管理。
Oracle为了更好的支持传输表空间,Oralce从9i开始支持表空间的BLOCK_SIZE和数据库的db_block_size的设置不同。
表空间可以设置为ONLINE和OFFLINE,OFFLINE的表空间无法进行访问。通过对单独表空间的ONLINE和OFFLINE,可以减少对系统的影响。
表空间可以设置为READ ONLY和READ WRITE两种状态,只读的表空间不可以进行锁操作,因此甚至可以放到只读设备上如CDROM。
数据文件是操作系统上的物理文件。一个表空间中包含一个或多个数据文件。在Oracle9i以后,组成临时表空间的文件和普通数据文件区分开,叫做临时文件。
临时文件具有以下特性:
临时文件总是设置为NOLOGGING模式;
临时文件不能设置为READ ONLY;
临时文件不能重命名;
不能通过ALTER DATABASE语句创建临时文件;
当建立建立临时文件时,Oracle只是分配空间,没有进行初始化,这样可以加快建立临时文件的速度;
临时文件的查询通过这两个视图:V$TEMPFILE和DBA_TEMP_FILES。
控制文件中保存着下列信息:
数据库名称、数据库创建的时间、所有数据文件和重做日志文件的名称和位置、表空间信息、OFFLINE数据文件信息、重做日志历史信息、归档日志文件信息、备份集信息、备份数据文件和重做日志文件信息、数据文件拷贝信息、当前重做日志序号和检查点信息。
当数据文件和联机重做日志文件发生变化时,都会将信息写道控制文件中。Oracle记录这些信息是为了:
在启动时,Oracle可以找到并打开数据文件和重做日志文件;
Oracle可以确定数据库恢复是否需要或是否可能。
控制文件还记录CHECKPOINT信息,用于在恢复时指定哪些恢复操作是没有必要的,它们已经写到数据文件中了。
由于控制文件的重要性,因此一定要建立多个控制文件,并放到不同的物理磁盘上,同时注意对控制文件的备份。