admin 管理员组文章数量: 887021
2024年1月15日发(作者:sqlserver数据库单个用户)
Oracle 建立大文件表空间
从Oracle 10g开始,Oracle引入了一个新增的表空间类型——大文件(BIGFILE)表空间,从而显著的增强了存储能力。一个大文件表空间中对应一个单一的数据文件或临时文件,但是文件可以达到4G个数据块大小。理论上,当数据块大小为8K时,大文件表空间的数据文件最大可以达到32T字节;当数据块尺寸为32K时,那么大文件表空间的数据文件最大尺寸可以达到128T。在实际环境中,这还受到操作系统的文件系统的限制。
在创建表空间时,默认的创建的表空间为SMALLFILE类型的表空间,通过查询数据字典视图DATABASE_PROPERTIES,可以显示当前数据库默认创建的表空间是否为BIGFILE类型的表空间。具体如下:
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;
数据库已更改。
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> alter database set default smallfile tablespace;
数据库已更改。
建立大文件表空间是使用CRETAE BIGFILE TABLESPACE语句完成的。需要注意,当执行该语句建立大文件表空间时,不能使用SEGMENT SPACE MANAGEMENT MANUAL子句,并且只能指定一个数据文件。例如,下面的语句将创建一个大文件的表空间BIG_TBS:
SQL> create bigfile tablespace big_tbs
2 datafile 'd:oracledatabigfile_' size 10m;
表空间已创建。
执行上述语句后,将建立名称为BIG_TBS的大文件表空间,该表空间的空间管理方式为本地化管理,并且区尺寸由系统自动分配。
通过查询数据字典DBA_TABLESPACES,可以了解表空间是否为大文件表空间类型。例如:
SQL> select tablespace_name, bigfile
2 from dba_tablespaces
3 where tablespace_name='BIG_TBS';
TABLESPACE_NAME BIG
------------------------------ ---
BIG_TBS YES
在前面曾提及过,大文件表空间的最大尺寸与数据块有关。例如,下面将显示当前数据库的数据块大小:
SQL> show parameters db_block_size;
NAME TYPE VALUE
--------------------- ----------- -----------
db_block_size integer 8192
也就是说,理论上创建的BIGFILE表空间可以创建最大32T。
版权声明:本文标题:Oracle 建立大文件表空间 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705298548h480221.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论