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 StorageManagement)技术相结合,就不再需要管理员手工创建新的数据文件(datafile)并维护众多数据库文件,因此简化了数据库文件管理工作。

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

tablespace)。但是有两个例外:本地管理的撤销表空间(undo tablespace)和临时表空间(temporary tablespace),即使其段(segment)为手工管理(manually managed),也可以使用大文件表空间。一个Oracle数据库可以同时包含大文件/小文件表空间(bigfile/smallfiletablespace)。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)应该和自动存储管理(AutomaticStorage Management)或其他逻辑卷管理工具(logical volume manager)配合使用,这些工具应该能够支持动态扩展逻辑卷,也能支持striping(数据跨磁盘分布)或RAID。

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

parallelization)。

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

大文件表空间。

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

件容量。

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

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

提示:

当用户在创建表空间(tablespace)时没有指定数据扩展

(extent)的管理方式,默认使用本地管理(locally managed)。

10g 新增的表空间类型:大文件 (Bigfile) 表空间。

大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。 大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。(以下用 BFT 指代 BIGFILE Tablespace。

BFT 可以和以下存储技术结合使用:

自动存储管理(ASM)

LVM

OMF

理论上的 BFT 可以达到下面所列的值:

数据块大小(单位:K) BFT 最大值(单位:T)

2k 8T

4k 16T

8k 32T

16k64T

32k 128T

在实际环境中,这还受到操作系统的文件系统的限制。

BFT基本操作

10g 数据库在创建的时候,会指定默认的表空间类型。如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。

SQL> SELECT *

2  FROM database_properties

3 WHERE property_name = 'DEFAULT_TBS_TYPE';

PROPERTY_NAME    PROPERTY_VALUE DESCRIPTION

-------------------- --------------- ----------------------------------------

DEFAULT_TBS_TYPE   SMALLFILE    Default tablespace type

这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:

SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;

Database altered.

SQL> SELECT *

2   FROM database_properties

3   WHERE property_name = 'DEFAULT_TBS_TYPE';

PROPERTY_NAME    PROPERTY_VALUE DESCRIPTION

-------------------- --------------- ----------------------------------------

DEFAULT_TBS_TYPE   BIGFILE Default tablespace type

SQL>

SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;

创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,其他和原有创建表空间语法类似:

CREATE BIGFILE TABLESPACEbftbs

DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;

DBA_TABLESPACES (USER_TABLESPACES)与 V$TABLESPACE 这两个视图可以查看 BIGFILE 表空间的相关信息。先看看 DBA_TABLESPACES 在 10g 中有了什么变化:

SQL> SELECT tablespace_name, bigfile

2  FROM dba_tablespaces;

TABLESPACE_NAME        BIG

------------------------------ ---

SYSTEM             NO

UNDOTBS            NO

SYSAUX             NO

TEMP              NO

USERS             NO

EXAMPLE            NO

TEST              NO

BFTBS             YES

8 rows selected.

BFT 属性

BFT有一些特有的属性。

1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:

SQL> ALTER TABLESPACE bftbs

2 ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;

ALTER TABLESPACE bftbs

*

ERROR at line 1:

ORA-32771: cannot add file to bigfile tablespace

2.只有自动段空间管理的 LMT (locally managed tablespaces ) 支持 BFT

SQL> CREATE BIGFILE TABLESPACE bftbs02

2   DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M

3 EXTENT MANAGEMENT DICTIONARY;

CREATE BIGFILE TABLESPACE bftbs02

*

ERROR at line 1:

ORA-12913: Cannot create dictionary managed tablespace

SQL> CREATE BIGFILE TABLESPACE bftbs02

2     DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M

3   SEGMENT SPACE MANAGEMENT MANUAL;

CREATE BIGFILE TABLESPACE bftbs02

*

ERROR at line 1:

ORA-32772: BIGFILE is invalid option for this type of tablespace

3.相对文件号(RELATIVE_FNO)为1024 ( 4096 on OS/390)

因为BFT只有一个数据文件,所以其相对文件号也是固定的:1024

SQL> SELECT tablespace_name, file_id, relative_fno

2  FROM dba_data_files;

TABLESPACE_NAME          FILE_ID RELATIVE_FNO

------------------------------ ---------- ------------

USERS                  4      4

SYSAUX                 3      3

UNDOTBS                 2      2

SYSTEM                 1      1

EXAMPLE                 5      5

TEST                  6      6

BFTBS                  7     1024

7 rows selected.

SQL>

转载于:https://blog.51cto.com/xu3jin/1322373

Oracle bigfile 大文件表空间会影响rman等备份效率相关推荐

  1. 大文件表空间+创建大文件表空间+查询数据库表空间类型信息+查询数据库表空间类型信息...

    1用于解决存储文件大小不够的问题 2与普通表空间不同的地方在于大文件表空间只对应唯一一个数据文件或临时文件,普通表空间可最多1022个数据文件或临时文件 3大文件表空间对应文件可达4G个数据块大小,普 ...

  2. 【Oracle数据库】实验-表空间

    1.创建表空间 [5-1]为案例数据库创建一个永久性的表空间hrtbs1,区自动扩展,段采用自动管理方式: create tablespace hrtbs1 datafile 'C:\ORACLE\P ...

  3. oracle查看表空间的内容,学习笔记:Oracle查看object对象 表空间 表 索引 数据文件的使用空间...

    天萃荷净 运维DBA咨询想要查看Oracle的object对象的使用空间大小,包括表空间 表 索引 数据文件的使用空间 1.查看Oracle表空间大小 Select Tablespace_Name,S ...

  4. oracle system和sysaux表空间清理和回收

    oracle system和sysaux表空间清理和回收   前几天和一个网友讨论了下SYSAUX表空间使用率过高的问题,今天有时间整理一下,正好我们的测试数据库也存在这个问题.本案例数据库版本为11 ...

  5. mysql 直接删表空间文件_oracle删除(释放)数据文件/表空间流程

    oracle删除(释放)数据文件/表空间流程 生产环境:数据库里空间不足,niptest表空间251G,只使用了17G 再alter database datafile '...../niptest1 ...

  6. Oracle数据库空间突然增大,oracle BUG 5890312导致表空间瞬间暴涨

    oracle BUG 5890312导致表空间瞬间暴涨 据悉,最近某些同行出现oracle数据库BUG(5890312),对业务造成影响.bug发作后,如果是在system表空间上,可能造成整个数据库 ...

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

    Oracle一次缩小表空间的处理过程 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩ ...

  8. oracle创建用户和表空间

    前提要求是电脑上要安装了oracle数据库,首先启动命令行窗口 进去后会让你输入用户名 如下图所示 这里输入system和对应的密码,不记得密码的话可以参考这个文章修改一下密码: 修改system用户 ...

  9. 数据库-Oracle【Oracle数据库设置默认表空间问题及Oracle,SQL,MySQL的自增变量设置】...

    一. Oracle数据库设置默认表空间问题 DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间-- ...

最新文章

  1. JUC学习笔记及拓展
  2. 让人期待的2011年度最佳 jQuery 插件发布啦
  3. python 获取字符串中的字典_python cookies提取——从字符串到字典(一行Python代码)...
  4. 机载计算机结构,机载计算机
  5. origin 设置数据显示位数
  6. Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)
  7. Stream篇(2)【TextReader】
  8. 7-2 温度转换 (5 分)
  9. Landsat7大气校正后图像变色
  10. 关于顶级域名、二级域名、子域名的问题
  11. access orcad 数据库_cis(orcad)本地元件access数据库创建跟加载方法详解.doc
  12. 城堡争霸显示服务器忙,城堡争霸 - 阵营守护神显示应用未安装怎么办
  13. QUIC传输协议设计
  14. 定制个性化App 引领企业跨入互联网时代
  15. git版本回退的最佳操作
  16. 计算机网络基础知识 - 应用层
  17. 雷达导引头伺服系统的建模与仿真
  18. 大数据技术在CBTC列车控制系统中的应用
  19. 这是最简单解决Android适配之【虚拟按键遮挡布局】
  20. ssm毕设项目民宿平台bwla1(java+VUE+Mybatis+Maven+Mysql+sprnig)

热门文章

  1. hdu 4391 Paint The Wall 线段树 +优化 2012 Multi-University Training Contest 10 )
  2. Oracle9i 问题汇总--不断更新中
  3. Ubuntu开启NFS、SSH服务(驱动开发用到、电脑端登录ARM板用到)
  4. 智能家居(工厂模式)
  5. Linux有趣指令(二)
  6. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
  7. python dataframe 查看为空值_Python pandas.DataFrame 找出有空值的行
  8. 采样频率和带宽的关系_基于矢量网络分析仪的 TDR 与传统采样示波器 TDR 之间的测量性能和优势比较...
  9. idea建立一个java工程_IntelliJ IDEA(三、各种工程的创建 -- 之一 -- 创建一个简单的Java工程)...
  10. ubuntu php 树莓派,树莓派3 安装ROS环境(ubuntu mate 16.04+kinetic)