分类: Oracle
2008-03-14 15:35:01
http://superman-chenzs.itpub.net/post/29327/287364
一些注意点概述:
--- 一个tablespace可以有0或者多个segments
--- 一个segment可以有1或者多个extent
--- 除了SYSTEM表空间和包含获得undo段(an active undo segment)的表空间以外,表空间可以被tablen offline,而数据库仍照常运行
--- 在数据库运行时,可以把表空间brought online
--- 一个segment可以跨越属于同一个表空间的多个数据文件,但是不能跨越多个表空间
--- 一个extent不能跨越多个数据文件
系统表空间(SYSTEM)与非系统表空间(NON-SYSTEM):
--- 在创建数据库的时候创建
--- 包含数据字典
--- 包含SYSTEM undo segment
--- 9i中还有一个辅助系统表空间SYSAUX,也属于系统表空间
--- 其他的表空间叫NON-SYSTEM表空间:
表空间的区管理方式:
1--- 数据字典管理方式(dictionary-managed tablespace):
当在表空间中分配行的区,或回收已分配的区时,oracle将对数据字典的相关基础表进行更新。由于对表的更新操作会产生回退信息和重做信息,因此,在分配区或回收区时,会在数据库中产生回头信息和重做信息。这是此方式的特点,也是它的缺点。
在此方式下,可以在DEFAULT STORAGE子句中设置INITIAL,NEXT,MINEXTENTS,MAXEXTENTS,PCTINCREASE等参数来设置默认的存储管理方式。
如果其他的表空间是数据字典管理方式,则SYSTEM表空间必须是数据字典管理方式。
2--- 本地管理方式(local-managed tablespace):
在本地管理方式下,表空间中区的分配与回收的管理信息都被存储在表空间的数据文件中,而与数据字典无关。表空间会在每个数据文件中维护一个位图(bitmap)结构,用于记录表空间中所有区的分配情况。
当在表空间中分配新的区,或回收已分配的区时,oracle将对数据文件中的位图进行更新。这种更新不是对表的更新操作,所有不会产生回退信息和重做信息。
当SYSTEM表空间为本地管理方式时,其他的表空间必须是本地管理方式管理。
DBMS_SPACE_ADMIN包对本地管理的表空间提供维护过程。
在本地管理方式下,可以用如下两个关键字来指定表空间的分配方式:
i>. UNIFORM:统一分配,指定表空间中所有区的大小都相同。
ii>. AUTOALLOCATE:自动分配,指定由oracle来自动管理区的大小,这是默认值。
在AUTOALLOCATE区的分配方式下,区的大小随表的大小自动地动态改变,它们之间的对应关系如下表,这个关系由系统自动维护:
表大小 |
区大小 |
64KB |
64KB |
1MB |
1MB |
64MB |
8MB |
1000MB |
64MB |
表空间的段管理方式:
段管理方式主要是指oracle用来管理段中已用数据块和空闲数据块的机制。
在本地管理方式下,可以用如下两个关键字来指定表空间的段管理方式:
1--- MANUAL(手工)方式:这时,oracle将使用可用列表(free list)来管理段的空闲数据块,这是默认的设置。可用列表时传统的段管理方式,段中所有的空闲块都被放入一个列表(free list)中,在需要存储空间时就在该列表中进行搜索。
2--- AUTO(自动)方式:这时,oracle将用位图(bitmap)来管理段的已用数据块和空闲数据块。即,通过位图中单元的取值来判断段中的数据块是否可用。
表空间的状态:
1--- 读写状态:
两种取值,读写(Read-Write)状态和只读(Read-Only)状态。只读状态表示任何人不能修改里面的数据,其限制与权限无关。
2--- 脱机状态:
两种取值,联机(Online)状态和脱机(Offline)状态。
在脱机状态下,有四种脱机模式:
1>.正常(Normal):这是默认的脱机模式,其表示表空间以正常方式切换到脱机状态。在此过程中,oracle会执行一次检查点,将相关信息写入数据文件中,然后再关闭表空间的所有数据文件;若在这个过程未发生任何错误,则进入了normal的脱机状态。下次转回online的时候,不需要恢复。
2>.临时(Temporary):表示表空间以临时的方式切换到脱机状态。在此过程中,oracle会执行一次检查点,但在执行检查点的时候并不会检查各个数据文件的状态,即使某些数据文件处于不可用的状态,oracle也会忽略这些错误而进入temporary状态。因此在下次转回online的时候,可能要恢复。
3>.立即(Immediate):表示表空间以立即的方式切换到脱机状态。这是oracle不会执行检查点,也不会检查数据文件是否可用,而是直接将属于该表空间的数据文件设置为脱机状态。因此在转回online的时候,必须恢复。
4>.用于恢复(For Recovery):表示表空间以用于恢复的方式切换到脱机状态。如果要对表空间进行基于时间的恢复,可用此种模式。