学习bigfile的记录,参考文档:
http://www.oracle-base.com/articles/10g/ImprovedVLDBSupport10g.php
bigfile表空间是针对大型数据库存储时db_files和maxdiatafiles数量不够用时使用的,一个数据库最多有64000个datafile,bigfile tablespace相对small tablespace有以下特点:
1.一个bigfile表空间只能有一个datafile
2.bigfile表空间的大小可以达不到4G个block,即8K的block一个bigfile可以达到32T,32K的block可达到128T大小。
3.bigfile的大小要受到OS的限制,所以建议放在ASM或支持striping或RAID的逻辑卷管理设备上。
4.可以直接用alter tablespace语句来修改bigfile的属性。
5.bigfile tablespace必须使用本地管理的ASSM。
由于我没有测试bigfile的环境,所以就直接用文档上的例子。
1.建立bigfile表空间
-- Valid statement.
CREATE BIGFILE TABLESPACE mybigtbs
DATAFILE '/u01/oracle/MYSID/mybigtbs01.dbf' SIZE 100G;
-- Valid statement.
CREATE BIGFILE TABLESPACE mybigtbs
DATAFILE '/u01/oracle/MYSID/mybigtbs01.dbf' SIZE 100G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
-- invalid statement.
CREATE BIGFILE TABLESPACE mybigtbs
DATAFILE '/u01/oracle/MYSID/mybigtbs01.dbf' SIZE 100G
EXTENT MANAGEMENT DICTIONARY
SEGMENT SPACE MANAGEMENT MANUAL;
2.数据库默认的datafile类型
ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;
ALTER DATABASE SET DEFAULT SMALLFILE TABLESPACE;
create tablespace语句会覆盖掉database的设定,可以通过dba_tablespace,user_tablespace,V$tablespace的bigfile
栏位是YES/NO来确定表空间的类型。
3.可以用alter tablespace来直接更改bigfile的属性,不用指定datafile子句
ALTER TABLESPACE mybigtbs RESIZE 100G;
ALTER TABLESPACE mybigtbs AUTOEXTEND ON NEXT 10G;