表空间、数据文件和控制文件的概念

转载 2007年09月18日 21:14:00
 

一个Oracle数据库由一个或多个逻辑存储单元——表空间构成,表空间存储着数据库中所有的数据;

Oracle数据库中的每个表空间由一个或多个文件组成,这些文件就是数据文件,它们是Oracle所在操作系统上的物理结构。

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信息,用于在恢复时指定哪些恢复操作是没有必要的,它们已经写到数据文件中了。

 

由于控制文件的重要性,因此一定要建立多个控制文件,并放到不同的物理磁盘上,同时注意对控制文件的备份。

Oracle系统紧急故障处理(数据文件、日志文件以及表空间损坏的处理)

确实很好,已经用到了。 Oracle系统紧急故障处理(数据文件、日志文件以及表空间损坏的处理) Oracle物理结构故障的处理方法: Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各...
  • BrotherDong90
  • BrotherDong90
  • 2015年09月14日 20:44
  • 1708

表空间,数据文件和控制文件

表空间、数据文件和控制文件概述 Oracle数据库逻辑上在表空间保存数据,物理上在表空间对应的数据文件保存数据。图3-1描述了其中的关系。 图3-1 数据文件和表空间 数据库、表空间和数据文...
  • bd0806
  • bd0806
  • 2013年05月25日 14:21
  • 392

oracle数据库-修改表空间表数据文件

数据库-修改表空间表数据语句 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象存放在指定的表空间中。但主要存放的是表, 所以称作表空间。 数据库中中少存在一个表空间,即SYST...
  • tb_bdata
  • tb_bdata
  • 2016年03月17日 15:38
  • 595

Oracle删除表空间的同时删除数据文件

临时表空间主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze...
  • leader1989
  • leader1989
  • 2014年08月20日 15:31
  • 5558

第二天2-1,2,3,4】【自动扩展】【添加数据文件】【创建表空间】【undo表空间】【修改用户默认表空间】【释放没用的空间|移动表到新的表空间】

--2-1 select * from dba_tables where tablespace_name='USERS' select * from dba_tablespaces select * ...
  • BiYanWangShiJie
  • BiYanWangShiJie
  • 2013年09月21日 15:33
  • 901

ORACLE数据库增加表空间大小或给表空间增加数据文件

----查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)",...
  • naruto0025
  • naruto0025
  • 2017年11月24日 11:00
  • 86

修改数据库文件为自动扩展以达到表空间自动扩展的目的

 表空间自动扩展 1.数据文件自动扩展的好处 1)不会出现因为没有剩余空间可以利用到数据无法写入 2)尽量减少人为的维护 3)可以用于重要级别不是很大的数据库中,如测试数据库等 2...
  • Matrix_Designer
  • Matrix_Designer
  • 2014年04月28日 16:31
  • 1529

Oracle RAC添加新表空间时数据文件误放置到本地文件系统的修正

今天看了一篇文章说是误将新创建的表空间的数据文件放置在了本地系统而不是共享存储上。 是Oracle的中文技术支持博客题目是:RAC中误将数据文件创建在本地盘时的修正   于是我想11...
  • u012232730
  • u012232730
  • 2017年06月17日 18:40
  • 922

RAC中数据文件创建到了本地路径(系统表空间)

参考文档: 1607292.1 如果是系统表空间的数据文件创建到了本地,那么是需要停机时间的。 1.模拟创建 节点一: SQL> alter tablespace system add datafil...
  • ghostliming
  • ghostliming
  • 2016年01月22日 14:19
  • 1893

oracle自动添加数据文件

一旦数据块大小为8k的数据文件达到32g将无法再拓展,我们就需要手动添加数据文件,很麻烦。所以,下面介绍自动为表空间添加数据文件的存储过程,并将其加入到job中定时执行。 存储过程: crea...
  • u011478909
  • u011478909
  • 2016年01月21日 12:56
  • 1262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表空间、数据文件和控制文件的概念
举报原因:
原因补充:

(最多只允许输入30个字)