Oracle表空间基础(1)

一、Oracle表空间概述

表空间是Oracle数据库中的一种逻辑结构。从逻辑层面上来说,表空间包含段,数据库中的对象是以段的形式来组织的,诸如表段,索引段等;从物理层面上来说,表空间是由文件构成的,数据库中的数据实际上是存储在文件当中的。表空间不是Oracle数据库中的特有概念,如在DB2中也有表空间这个概念。

二、本地管理的表空间

1、本地管理表空间中的扩展(extent)管理

使用extent management local子句显示声明创建本地管理的表空间,对于新的永久表空间来说,这是一个默认的选项(基于数据字典管理的表空间已经过时)。同时,还可以指定扩展管理的方式,使用autoallocate子句表明将由数据库自动分配扩展,使用uniform子句表明将按照统一的大小分配扩展。

如果表空间内的对象对于扩展尺寸的要求是多种多样的,那么使用autoallocate选项是一个不错的选择。另外,由于autoallocate选项简化了对空间的管理,势必会造成一定的空间浪费。如果控制空间的分配和回收对你来说并不是那么重要,那么autoallocate也将是一个不错的选择。autoallocate带来的收益绝对超过其造成的损失。uniform选项可以明确的指出每一次为空间的申请分配多少扩展,如果表空间内的对象每次对空间的请求都是固定的,那么这个选项将会是一个不错的选择。在实际使用过程中,应根据表空间内的对象的具体情况作出抉择。

创建本地管理表空间的分区管理创建语句如下:

# 自动分配扩展
create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50m
extent management local autoallocate;

# 统一分配扩展
create tablespace uni_tbs datafile ‘/u02/oracle/data/uni_tbs.dbf‘ size 50m
extent management local uniform size 128k;

2、本地管理表空间中的段(segment)管理

在本地管理的表空间中,Oracle使用两种方法管理段空间:自动和手动。手动段空间管理使用一个被称为”freelist“的队列来管理段内的空间,由pctused和pctfree两个参数用来控制空间的”入列“和”出列“,与之不同的是,自动段空间管理使用的是位图的管理方式,在自动段空间管理中,只需要设置pctfree参数。自动段空间管理是一种更为有效的空间管理方式。对于新的基于本地管理的表空间来说自动段空间管理是默认的。

自动段空间管理的创建语句如下:

create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50m
extent management local autoallocate
segment space management auto;

三、大文件表空间

一个小文件表空间最多能容纳1024个数据文件,在Oracle中可以创建大文件表空间,这样Oracle数据库使用的表空间就可以由一个单一的大文件构成,而不是若干个小数据文件。

1、使用大文件表空间的优势

  • 使用大文件表空间可以显著地增强Oracle数据库的存储能力。由于每个数据库最多使用64K个数据文件,因此使用大文件表空间时数据库中表空间的极限个数是使用小文件表空间时的1024倍。
  • 在超大型数据库中使用大文件表空间减少了数据文件的数量,因此也简化了对数据文件的管理工作。由于数据文件的减少,SGA中关于数据文件的信息,以及控制文件(control file)的容量也得以减小。
  • 由于数据文件对用户透明,由此简化了数据库管理工作。

2、使用大文件表空间时需要考虑的问题

  • 大文件表空间应该和自动存储管理或其他逻辑卷管理工具配合使用,这些工具应该能够支持动态扩展逻辑卷,也能支持striping(数据跨磁盘分布)或RAID。
  • 应该避免在不支持striping的系统上使用大文件表空间,因为这将不利于并行执行及RMAN的并行备份
  • 当表空间正在使用的磁盘组可能没有足够的空间,且扩展表空间的唯一办法是向另一个磁盘组加入数据文件时,应避免使用大文件表空间。
  • 不建议在不支持大文件的平台上使用大文件表空间,这会限制表空间(tablespace)的容量。参考相关的操作系统文档了解其支持的最大文件容量。
  • 如果使用大文件表空间替代传统的表空间,数据库打开,checkpoints,以及 DBWR 进程的性能会得到提高,但是增大数据文件容量可能会增加备份与恢复的时间。

3、创建大文件表空间的语句 

CREATE BIGFILE TABLESPACE bigtbs DATAFILE ‘/u02/oracle/data/bigtbs01.dbf‘ SIZE  1024GB;
时间: 2024-10-10 19:50:26

Oracle表空间基础(1)的相关文章

Oracle表空间基础(2)

一.压缩表空间 压缩表空间是通过压缩表空间内的对象来实现的.数据的压缩体现在数据块上,简单的说就是通过清除数据块上的重复内容来达到降低I/O,提升性能性能的目的.在表空间的创建语句中通过指定default关键字,可以让在该表空间上创建的所有表进行压缩(实际上,压缩是在数据插入时进行的). 根据表空间存储数据对象的不同,表空间压缩类型可以分为OLTP压缩.非结构化文件副本清除.非结构化文件压缩和备份数据压缩等.其中OLTP压缩是指在发生DML操作(包括insert,delete,update)期间

Oracle表空间基础(4)

一.创建非标准块的表空间 在数据库中可以创建不同于数据库标准块大小的表空间,这个特征可以在两个具有不同块大小的数据库之间传输表空间.在创建非标准块表空间之前,必须保证设置了DB_CACHE_SIZE和至少一个DB_nK_CACHE_SIZE初始化参数,DB_nK_CACHE_SIZE即为非标准块表空间的块大小. # 查看参数db_16k_cache_size系统默认值,默认值为0,表示未启用. show parameter db_16k_cache_size NAME TYPE VALUE --

Oracle表空间基础(3)

一.临时表空间 临时表空间仅包含会话期间产生的短暂的数据,可改善多个无法在内存中完成的排序操作的并发性,同时还可以提高在排序操作中空间管理的效率.在临时表空间内,特定实例的排序操作共享一个排序段,排序段在数据库启动时创建,在数据库关闭时被释放. 在完成数据库的安装以后,数据库内默认存在一个名为temp的临时表空间,temp表空间可被数据库内的多个用户所共享.也可以使用create temporary tablespace语句创建临时表空间,同时使用create/alter user语句为用户指定

Oracle表空间基础(5)

一.修改和维护表空间 1.增加表空间容量 可以通过修改表空间数据文件的大小或为表空间添加一个数据文件的方式增加表空间的容量,另外我们还可以使用表空间的自动扩展选项为大文件表空间增加容量.对于本地管理的临时表空间,即无法它增加空间容量,也无法修改它的段空间管理方式. a.小文件表空间增加容量 # 通过为表空间添加数据文件的方式增加表空间容量 SQL> alter tablespace test 2 add datafile '/u01/app/oracle/oradata/stdb/test02.

Oracle表空间

Oracle表空间,布布扣,bubuko.com

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

44.oracle表空间的使用

要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得"这不是我的事,我只是个小打工的",团建要放在首位.不可在下属面前"装B",别人也不傻. Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的. ORACLE数据库被划分成称作为表空间[1]  的逻辑区域--形成ORACLE数据库的逻辑结构.一个ORACLE数据库能够

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客"怎样玩转千万级别的数据"提到了过表分区的概念,其实表分区说到本质上就是按一定条件把不同数据放在不同的数据文件里,这些数据文件在物理上是相对独立的,在逻辑上又是一个整体.特别强调一下,在SQL Server中,建表时是默认把所有的表都保存在PRIMARY默认文件组 ,当数据库中表很多,并且数据量很大时,会

zabbix自动发现oracle表空间并监控其使用率

监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创建表空间时可以根据应用需求指定是否开启表空间自动扩展.那么在这里我们需要分析一个监控策略,就是当zabbix监控到某个表空间使用率达到95%,那么就让触发器触发警告(Warning)信息,并发送邮件给DBA或管理者.当检测到表空间没有开启自动扩展时,则触发Information信息.说明一下:ora