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

转自:https://www.6ccn.com/article/10451.shtml

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

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)容量可能会增加备份与恢复的时间。

猜你喜欢

转载自blog.csdn.net/kangsa998/article/details/80105107