设为首页 收藏本站
查看: 1367|回复: 0

[经验分享] Oracle bigfile大文件表空间介绍,Oracle bigfile大文件表空间优势和劣势分析

[复制链接]

尚未签到

发表于 2018-9-13 12:40:54 | 显示全部楼层 |阅读模式
  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)容量可能会增加备份与恢复的时间。
  提示:
  当用户在创建表空间(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
  16k                  64T
  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 类型的表空间。可以通过>
  SQL>>
  Database>  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>>  创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,其他和原有创建表空间语法类似:
  CREATE   BIGFILE   TABLESPACE   bftbs

  DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf'>  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>>
  2 ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf'>  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'>  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'>  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,>  2  FROM dba_data_files;

  TABLESPACE_NAME          FILE_ID>  ------------------------------ ---------- ------------
  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>
  oracle视频教程请关注:http://down.51cto.com/4202939/up


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-578137-1-1.html 上篇帖子: oracle技术之Small file tablespace extend-Oracle之路 下篇帖子: oracle 不完全恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表