Oracle bigfile大文件表空间

Database 是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成。表空间内的逻辑存 储单位为段(segment),段又可以继续划分为数据扩展(extent)。而数据扩展是由一组连续的数据 块(datablock)构成。

大文件表空间

在Oracle中用户可以创建大文件表空间(bigfile tablespace)。这样Oracle数据库使用的表空间 (tablespace)可以由一个单一的大文件构成,而不是若干个小数据文件。这使Oracle可以发挥64位 系统的能力,创建、管理超大的文件。在64位系统中,Oracle数据库的存储能力被扩展到了8 EB(1EB =1024PB,1PB = 1024TB,1TB=1024GB)。

当数据库文件由Oracle管理(Oracle-managed files),且使用大文件表空间(bigfile tablespace)时,数据文件对用户完全透明。换句话说,用户只须针对表空间(tablespace)执行管 理操作,而无须关心处于底层的数据文件(datafile)。使用大文件表空间,使表空间成为磁盘空间 管理,备份,和恢复等操作的主要对象。使用大文件表空间,并与由Oracle管理数据库文件(Oracle -managed files)技术以及自动存储管理(Automatic Storage  Management)技术相结合,就 不再需要管理员手工创建新的数据文件(datafile)并维护众多数据库文件,因此简化了数据库文件 管理工作。

数据库默认创建的是小文件表空间(smallfile tablespace),即Oracle中传统的表空间 (tablespace)类型。数据库中 SYSTEM 和 SYSAUX 表空间在创建时总是使用传统类型只有本地管理 的(locally managed),且段空间自动管理(automatic segmentspace  management)的表空 间(tablespace)才能使用大文件表空间(bigfile

tablespace)。但是有两个例外:本地管理的撤销表空间(undo tablespace)和临时表空间 (temporary tablespace),即使其段(segment)为手工管理(manually managed),也可以使用大 文件表空间。一个Oracle数据库可以同时包含大文件/小文件表空间(bigfile/smallfile   tablespace)。SQL语句执行时无需考虑表空间(tablespace)的类型,除非语句中显式地引用了数据 文件(datafile)名。

管理员可以创建一组临时表空间(temporary tablespace),用户在需要时可以利用组内各个表空 间(tablespace)提供的临时空间。管理员还可以指定表空间组(tablespace group)为数据库默认 的临时表空间。当用户需要大量临时空间进行排序操作时,就可以利用大文件表空间及表空间组。

使用大文件表空间的优势

● 使用大文件表空间(bigfile tablespace)可以显著地增强Oracle数据库的存储能力。一个小 文件表空间(smallfile tablespace)最多可以包含1024个数据文件(datafile),而一个大文件表 空间中只包含一个文件,这个数据文件的最大容量是小数据文件的1024倍。这样看来,大文件表空间 和小文件表空间的最大容量是相同的。但是由于每个数据库最多使用64K个数据文件,因此使用大文件 表空间时数据库中表空间的极限个数是使用小文件表空间时的1024倍,使用大文件表空间时的总数据 库容量比使用小文件表空间时高出三个数量级。换言之,当一个Oracle数据库使用大文件表空间,且 使用最大的数据块容量时(32K),其总容量可以达到8EB。

● 在超大型数据库中使用大文件表空间减少了数据文件的数量,因此也简化了对数据文件的管理 工作。由于数据文件的减少,SGA中关于数据文件的信息,以及控制文件(control file)的容量也得 以减小。

● 由于数据文件对用户透明,由此简化了数据库管理工作。

使用大文件表空间时需要考虑的因素

● 大文件表空间(bigfile tablespace)应该和自动存储管理(Automatic  Storage Management)或其他逻辑卷管理工具(logical volume manager)配合使用,这些工具应该能够支持 动态扩展逻辑卷,也能支持striping(数据跨磁盘分布)或RAID。

● 应该避免在不支持striping的系统上使用大文件表空间,因为这将不利于并行执行(parallel execution)及 RMAN 的并行备份(backup

parallelization)。

● 当表空间正在使用的磁盘组(disk group)可能没有足够的空间,且扩展表空间的唯一办法是 向另一个磁盘组加入数据文件时,应避免使用

大文件表空间。

● 不建议在不支持大文件的平台上使用大文件表空间,这会限制表空间(tablespace)的容量。 参考相关的操作系统文档了解其支持的最大文

件容量。

● 如果使用大文件表空间替代传统的表空间,数据库开启(open),checkpoints,以及 DBWR 进 程的性能会得到提高。但是增大数据文件

(datafile)容量可能会增加备份与恢复的时间。

时间: 2024-12-31 13:58:01

Oracle bigfile大文件表空间的相关文章

Oracle bigfile大文件表空间介绍及其优势和劣势分析

Database 是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成.表空间内的逻辑存 储单位为段(segment),段又可以继续划分为数据扩展(extent).而数据扩展是由一组连续的数据 块(datablock)构成. 大文件表空间 在Oracle中用户可以创建大文件表空间(bigfile tablespace).这样Oracle数据库使用的表空间 (tablespace)可以由一个单一的大文件构成,而不是若干个小数据文件.这使Oracle可以发挥64位 系统的能力,创建.

Oracle Bigfile Tablespace大文件表空间

  Oracle表空间Tablespace是逻辑结构的最高层次,其他分别对应段对象segment.区extent和块block.而物理层面的Oracle数据库是通过一系列的文件构成,其中数据文件datafile是与Tablespace进行对应的对象.     Tablespace与Datafile的关系是一对多的关系.一个表空间Tablespace可以对应多个Datafile,Datafile则是只能归属在一个Tablespace里.传统的Oracle管理概念中,倡导一个表空间中创建多个数据文件

Oracle一次缩小表空间的处理过程

Oracle一次缩小表空间的处理过程 1  BLOG文档结构图       2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 收缩表空间的几种办法 ② 表空间大小查询 ③ AIX下查询磁盘空间大小的shell脚本 ④ 删除数据文件的正确方法 ⑤ ORA-03262处理 ⑥ 缩小数据文件 ⑦ su - grid asmcmd lsdg的使用 ⑧ 其他常用命令   Tips: ① 本文在ITpub

oracle中如何创建表空间

ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户 对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额. 因此,在创建对象之前,首先要分配存储空间. 分配存储,就要创建表空间: 创建表空间示例如下: CREATE TABLESPACE "SAMPLE" LOGGING DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SI

Oracle启动、建立表空间、用户、授权、数据库导入导出使用教程

  数据库最基本的操作就是数据的导入导出及建立表空间.用户.授权了,今天小编也为各位介绍一下关于Oracle启动.建立表空间.用户.授权.数据库导入导出的命令吧. **启动**1.启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例. 1.1进入到sqlplus启动实例{{{ [oracle@redhat ~]$ su - oracle --"切换到oracle用户" [oracle@redhat ~]$ lsnrctl start --"打开监听"

探索ORACLE之RMAN_07 system表空间丢失恢复

探索ORACLE之RMAN_07 system表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com     1.     SYSTEM表空间数据文件丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 3.1 删除system表空间的所有数据文件. [oracle@wwldb WWL]$ rm -rf syste* [oracle@wwldb WWL]$ exit   3.2

Linux下Oracle删除用户和表空间的方法_oracle

本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

Oracle 删除用户和表空间详细介绍

Oracle 删除用户和表空间 Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删除tablespace DROP TABLESPACE tablespace_name INCLUDIN

Oracle的数据库、表空间及数据文件简介

数据文件是数据库的物理存储单位,而表空间TableSpace则是数据库的逻辑组成部分.数据库的数据是存储在表空间中的,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间.一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行. 数据库,表空间,数据文件是紧密关联的,但它们有着重要的区别: 数据库和表空间 一个Oracle数据库由一个或多个叫做表空间的逻辑存储单元组成,表空间存储了所有数据库的数据. 表空间和数据文件 在Or