CSDN博客

img Xviewee

Oracle的表空间

发表于2008/9/30 15:27:00  713人阅读

导读:




本想先从创建用户开始的 ,但是在创建过程中发现还需要给用户分配表空间,既然如此,先做表空间好了。


oracle 在安装时会有一句提醒,就是说表空间尽量不要和 oracle 程序放在同一个分区下以避免 I/O 资源的争夺,所以说,有条件的话,表空间最好是放在不同分区上,以免在并发访问时I/O资源发生争抢降低效率。


oracle
的表空间,从文件上看就是几个限定容量的数据文件,表空间内的表和数据都存放在这。至于扩展名,有的是DBF,有的是ORA,扩展名似乎是没有什么关系
的,即使没有扩展名也是可行的。就像一个 txt 文件,你给他改名成 ttt 或者没有扩展名,同样也可以用文本编辑器打开一样。


并且一个表空间可以支持多个数据文件,应该是允许一个表空间的数据文件存放在不同的位置,方便其扩充,一般情况下如果需要对表空间的大小做调整直接改表空间的数据文件的大小就可以了。


设定好表空间数据文件,还有几个选项


状态:


就“脱机”和“联机”两个项,但是有需要注意的地方,如果数据库中存在打开的事务处理,或表空间中存在活动的回退段,则取消选中“只读”选项。


类型:由于为用户指定表空间必须指定两种,一种是永久表空间,一种是临时表空间,如果没有指定临时表空间的话,系统会默认把 TEMP 表空间(帮助里写的是SYSTEM)作为用户的临时表空间。不过,我创建之后系统默认是把TEMP设为临时表空间。


永久:指定表空间用于存放永久性数据库对象。该选项为默认值。


临时:指定表空间仅用于存放临时对象 (排序段)。任何永久性对象都不能驻留于临时表空间中。


还原:指定该表空间为支持事务处理回退的撤消表空间。


在存储页中可以看到“区管理”、“段空间管理”,帮助中说:如果应用程序连接到 Oracle8i。。。这是 8i的功能,简单来看一下。


区管理:


本地管理:8i的功能,管理本身各区的表空间在每个数据文件中保留一个位图,用来跟踪记录该数据文件中块的空闲状态或使用状态。位图中的每个位对应
一个数据块或一组数据块。当一个区被分配或空闲并可以重复使用时,Oracle
会更改该位图的各个值,显示数据块的当前状态。因为这些更改不更新数据字典中的表,所以不会生成回退信息
(特殊情况除外,如表空间限额信息)。基本上选择自动分配,统一分配的话就为一个区选择大小,默认是1M。


本地管理表空间会有很多好处:


  1. 提高空间操作的速度和并发性,因为空间的分配和回收主要改变本地管理的资源,而不需要在中心管理资源。
  2. 提高性能,有时在字典管理的空间分配期间需要的递归操作被取消。
  3. 允许可读的备用数据库。因为临时表空间是本地管理的,不会产生撤消或重作事件。
  4. 简化空间分配,减少对数据字典的依赖,因为信息都被存储在位图中了。

段空间:对表空间中空闲的空间进行管理,值得一提的是段空间的管理方法选择后就不能改变,只有永久的、本地管理的表空间能够指定自动段空间管理,如果不是上述表空间类型则没有该项。


重做日志:还是需要选上创建的,否则一旦出现故障,将无法回滚,进行重做。


表空间创建语句


CREATE TABLESPACE ""
    LOGGING
    DATAFILE '/.ora' SIZE 5M EXTENT
    MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO


明天继续表空间管理的学习,还有蛮多内容,今天只是创建一个最简单的表空间。


本文转自

http://blog.csdn.net/likelynn/archive/2007/06/09/1645893.aspx
阅读全文
0 0

相关文章推荐

img
取 消
img