Oracle的表空间

原创 2008年09月30日 15:27:00
导读:




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


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

Oracle查看用户所在的表空间

oracle 查看表空间有哪些表 select * from dba_tables where tablespace_name='表空间名',注意表空间名大小写敏感。 select tab...
  • truelove12358
  • truelove12358
  • 2017年04月10日 16:02
  • 2104

oracle用户默认表空间

DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,这个用户就会采用默认的表空间——users表空间(sys和system等系统用户...
  • yu870646595
  • yu870646595
  • 2016年04月16日 15:12
  • 2931

Oracle 表空间扩展和数据迁移

表空间对应关系逻辑结构 表空间 – ——省 数据文件 — –市(数据文件真正存放数据的地方) 段 ———- —县 区 ————- 乡 块 ——- ——村 建表空间有利于 1. ...
  • qq_25067905
  • qq_25067905
  • 2017年01月05日 14:08
  • 567

Oracle 表空间的状态

1.读写(Read-Write) 实际上为online状态,只用表空间的状态为read only时才能转换到此状态,默认情况下所有的表空间都是读写状态。任何具有表空间配额并且具有适当权限的用户都可以...
  • gz153016
  • gz153016
  • 2015年12月04日 19:40
  • 805

oracle 11g 表空间迁移 实验过程

参考文档:在复制或移动表空间前,用户首先将表空间置于只读状态,再复制表空间的数据文件(datafile),最后使用export/import工具迁移位于数据字典(data dictionary)中的数...
  • xuejianxinokok
  • xuejianxinokok
  • 2011年07月04日 23:29
  • 8635

Oracle命令--表空间扩容

表空间操作 //表空间扩展 alter database datafile '/opt/oracle/oradata/ora11g/system01.dbf' resize 2g; //表空间查...
  • lzqinfen
  • lzqinfen
  • 2013年05月31日 17:24
  • 1133

oracle减小数据库表空间

数据库表空间占用过大,缩减表空间大小。 1、首先确认表空间,空闲空间比例比较大。 SELECT C.TABLESPACE_NAME,A.BYTES/1048576 MEGS_TOTAL,(A.BYTE...
  • okgoodyes
  • okgoodyes
  • 2015年09月27日 13:15
  • 1714

oracle查看表空间的属性 ,修改表空间的状态

表空间的状态属性主要有在线(online),离线(offline),只读(read only)和读写(read write)这四种,其中只读与读写状态属于在线状态的特殊情况,通过设置表空间的状态属性,...
  • qq_20545159
  • qq_20545159
  • 2015年03月06日 18:52
  • 1322

ORACLE表空间的创建修改删除

ORACLE表空间的创建修改删除 作者:Vashon 时间:20151208 创建表空间(以管理员身份创建): 范例:创建一个emp_data的数据表空间 1.create temporary ...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2015年12月08日 22:31
  • 2807

Oracle查看用户默认表空间使用情以及手动扩展表空间sql语句

查看用户默认的表空间.sql: select username,default_tablespace from dba_users; 查看各个表空间占用磁盘情况.sql: select b...
  • liao1989126
  • liao1989126
  • 2016年04月24日 23:50
  • 781
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle的表空间
举报原因:
原因补充:

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