Oracle将数据逻辑的存放到表空间中,物理的存放到与表空间相关的数据文件中。
数据库,表空间和数据文件关系紧密,但是存在以下区别 1. Oracle数据库有一个或者多个成为表空间的逻辑单元组成,它存放了所有的数据库数据
2. 每一个表空间都由一个或多个数据文件组成,数据文件是符合oracle所在操作系统的物理结构
3 数据库数据全部存放在组成表空间的数据文件中。例如,最简单Oracle数据库有一个表空间和一个数据文件,另一个数据库可能拥有三个表空间,每个表空间由两个数据文件组成
Oracle管理的文件
Oracle-managed文件不需要你,DBA直接去管理组成Oracle数据库的操作系统文件,你在数据库对象不是文件名上进行操作。,Oracle内部使用标准文件系统接口去建立删除下列数据库结构的文件 Tablespace,redo log file,control file.
通过初始化参数,你可以指定特定类型文件的目录,oracle保证建立一个唯一的oracle管理的文件,在不需要的时候删除。
为数据库分配更多的空间
表空间的大小等于组成表空间的数据文件的大小。
数据库的大小等于组成数据库的表空间的大小。
你可以通过三种方式扩大数据库
1对表空间增加数据文件
2增加表空间
3扩大数据文件
当你对已经存在的表空间,增加一个数据文件。你提高了相应表空间的磁盘空间总量
另外,你可以建立一个新的表空间,以提高数据库的大小
第三个扩大数据库的方法是,改变数据文件的大小或者需要更多空间的时候,让数据文件自动的增长。
表空间的概念
数据库被划分成一个或者多个称为表空间的逻辑结构,表空间被划分成一个或者多个称为段的逻辑存储单元。段在进一步的被划分成区,区是连续的数据块的集合。
大文件表空间
Oracle能够让你建立大文件表空间。它允许oracle数据库包含单个较大的数据文件组成的表空间。这样使Oracle数据库利用64位系统的能力,建立和管理超大的文件,这样的结构是oracle数据库能够达到8eb个字节。
在oracle管理文件的环境中,大文件表空间使数据文件完全对用户透明。换句话说,你在表空间上执行操作,而不是在底层的数据文件,大文件表空间使表空间成为磁盘管理,备份和恢复等的主要单元。
大文件表空间不需要增加新的数据文件和处理多个文件,因此可以简化数据文件的管理和自动存储管理。
系统默认建立小文件的表空间。小文件表空间是oracle表空间的一般形式。
System和sysaux表空间的类型总是使用系统默认的类型。
大文件表空间只支持带有自动段空间管理的属性的本地管理表空间
有两个异常的情况:
本地管理的undo和temporary表空间,即使它们的段是手动管理的,也可以是大文件表空间。
Oracle数据库可以同时包含大文件和小文件表空间
不同类型的表空间在没有明确涉及数据文件的SQL中,无法区分。
你可以建立一组临时表空间,让用户从多个表空间消耗临时空间,一个表空间组可以被指定为数据库的默认临时表空间。
大文件表空间的优点
1.。大文件表空间可以显著的提高oracle数据库的存储容量。小文件表空间能够包含1024个文件。大文件表空间只能包含一个文件,但是那个文件是小文件表空间大小的1024倍。
小文件表空间和大文件表空间,总的表空间容量是一样的,可因为每个数据库都存在64K个数据文件的限制,一个数据文件包含的大文件表空间是小文件表空间的1024倍。所以大文件表空间将数据库的容量提交了三个数量级。换句话说,数据块大小为32k,使用大文件表空间可以使数据库到达8ET.
大文件表空间减少了数据文件的数量,从而简化了超大型数据库中数据文件的管理。
你也可以调整参数,减少用于数据文件信息的SGA空间和控制文件的大小
由于数据文件透明,从而简化了数据库的管理
使用大文件表空间时,需要考虑的
大文件表空间用来和自动存储管理或者支持动态扩展卷的逻辑卷管理器,striping或者raid一起使用
避免在不支持striping的操作系统上建立大文件表空间,因为这样不利于并行执行和rman的并行备份
不推荐在不支持大文件的平台上使用大文件表空间,因为这样可能会限制表空间的容量。
如果数据存放在大文件表空间而不是普通的表空间中,那么数据库打开,checkpoint和dbwr进程的性能就会得到提高,然后增大数据文件的大小会提交恢复损坏的文件或者建立新的数据文件的时间。
系统表空间
每一个oracle数据库都包含了一个名称为system的表空间。当数据库建立的时候,Oracle自动建立该表空间,当数据库打开的时候,system表空间总是online
立通本地管理表空间的优点,你可以建立一个本地管理的系统表空间,你也可以将一个字典管理的系统表空间转移成本地管理格式
在一个系统表空间为本地管理的数据库中,字典管理的表空间无法建立。你可以使用传输功能能加入一个字典管理的表空间,但是该表空间无法进行写操作。
提示
如果一个表空间是本地管理,那么你无法将它转换回字典管理。
数据字典
系统表空间包含了存储了整个数据库的数据字典表,数据字典表存放在datafile 1中。
PL/SQL程序单元描述
代表PL/SQL程序单元(Procedure,Function,Trigger,package)存放的数据,保存在system表空间中,如果数据库包含了多个这样的程式单元。那么数据库管理员必须在SYSTEM表空间中,提供这些单元所需要的空间
SYSAUX表空间
SYSAUX表空间是SYSTEM的辅助表空间。许多数据库的组件将SYSAUX表空间作为它们存放数据的默认表空间。因此,SYSAUX表空间一般都在数据库建立或者数据库升级的时候建立。
SYSAUX表空间为没有保存到SYSTEM表空间的元数据提供了集中的位置。它减少了默认创建的表空间的数量。无论是在seed数据库,还是在用户自定义的数据库。
一般的数据库操作,oracle数据库服务不允许删除或者重命名SYSAUX表空间。关于sysaux表空间的传输也不支持。
Undo表空间
Undo表空间是专用用于存放undo信息的特殊的数据库。
你不能在undo表空间中建立其他类型的段(例如table或者index). 每个数据库可以包含0个或者多个Undo表空间,在自动undo管理模式中,每个oracle实例都会分到一个且仅有一个undo表空间
在undo表空间中的undo数据,使用Undo段进行管理。Undo段由oracle自动建立和维护。
当事务中执行第一个dml语句的时候,事务在当前的undo tablespace中绑定到一个undo段和一个事务表。在很少的情况下,如果实例没有一个指定的undo表空间,事务会被绑定到系统回滚段
警告
在建立undo表空间并将它上线之前,不要运行任何的用户事务。
每个undo表空间都由一组Undo file组成,同时它也是本管理的。
和其他类型的表空间类似,undo块在extent