Oracle 10g bigfile表空间简介 01. A Bigfile 表空间包含一个非常大的数据文件02. SMALLFILE表空间和BIGFILE表空间可以在同一个数据库共存1.创建一个bigfile表空间    SQL> CREATE BIGFILE TABLESPACE  big01           datafile '/oracle/oradata/orcl/big01.dbf' size 50M;Tablespace created.1.2 查看数据库所有表空间bigfile属性,BIG01为bigfile表空间SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES;TABLESPACE_NAME                BIGFILE------------------------------ --------SYSTEM                         NOUNDOTBS1                       NOSYSAUX                         NOTEMP                           NOUSERS                          NOTEST                           NOBIG01                          YES  1.3 表空间TEST为SMALLFILE表空间,现在做一个测试resize TEST表空间SQL> alter tablespace test  resize 20M;alter tablespace test  resize 20M*ERROR at line 1:ORA-32773: operation not supported for smallfile tablespace TEST由此可见small不支持表空间的resize,当然我们可以通过alter database reszie datafile 来实现smallfile表空间某个数据文件的resize2.bigfile表空间文件  bigfile表空间只能包含一个文件,它可以非常大,我们不能对bigfile表空间增加数据文件      SQL> alter tablespace big01 add  2  datafile '/oracle/oradata/orcl/big02.dbf' size 10M;alter tablespace big01 add*ERROR at line 1:ORA-32771: cannot add file to bigfile tablespace3.BIGFILE表空间的寻址   bigfile表空间的数据文件大小远远大于smallfile的表空间,其优势得益于Oracle 10g新的寻址方案   一个rowid寻址存储在传统的SMALLFILE表空间中的对象使用其中的12个字节      例: rowid寻址        . 相对File# 3个字节, Block#需要6个字节相同的rowid寻址在bigfile表空间只需要9个字节,9个字节存储block#在唯一的文件中                       bigfile 表空间只有一个数据文件,因此不必需要另外3个字节的相关连file#   新寻址方案         允许在一个单独的数据文件里最多4G个的数据块,        数据文件大小blocksize 2K的数据文件最大支持8TB,blocksize 32K的数据文件最大支持到128TB      4.bigfile表空间的优势  只有一个数据文件的表空间更方便管理,因此唯一的表空间就变成了管理单元        修改表空间的扩展 SQL> alter tablespace big01 autoextend on;Tablespace altered.SQL> alter tablespace big01 autoextend off;Tablespace altered.    在线修改bigfile表空间大小SQL> alter tablespace big01 resize 2M;Tablespace altered.smallfile表空间相对灵活性就不如bigfile表空间SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES where TABLESPACE_NAME='TEST';TABLESPACE_NAME                BIG------------------------------ ---TEST                           NOSQL> alter tablespace test  resize 20M;alter tablespace test  resize 20M*ERROR at line 1:ORA-32773: operation not supported for smallfile tablespace TEST5.bigfile表空间支持以下存储管理方式       --> ASM (Automatic Storage Management)       --> a logical volume manager supporting striping/RAID      --> dynamically extensible logical volumes      --> Oracle Managed Files (OMF)  6. 修改数据库创建表空间的bigfile类型 SQL> select * from database_properties           where property_name='DEFAULT_TBS_TYPE';当前数据库创建表空间的默认方式是SMALLFILE表空间PROPERTY_NAME                  PROPERTY_VALUE                           DESCRIPTION------------------------------ ---------------------------------------- ------------------------------DEFAULT_TBS_TYPE               SMALLFILE                                Default tablespace type更改数据库创建表空间为BIGFILE表空间SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;Database altered.SQL> CREATE TABLESPACE big02 datafile '/oracle/oradata/orcl/big02.dbf' size 10M;Tablespace created.SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES;TABLESPACE_NAME                BIG------------------------------ ---SYSTEM                         NOUNDOTBS1                       NOSYSAUX                         NOTEMP                           NOUSERS                          NOTEST                           NOBIG01                          YESBIG02                          YES7. bigfile表空间比传统的smallfile表空间的启动,检查点和DBWR的操作更具有性能优势.查看数据库文件的文件号和相对文件号SQL> select file_name, file_id, relative_fno from dba_data_files;    FILE_NAME                                                       FILE_ID RELATIVE_FNO------------------------------------------------------------ ---------- ------------/oracle/oradata/orcl/big01.dbf                                        8         1024/oracle/oradata/orcl/big02.dbf                                        9         1024/oracle/oradata/orcl/users01.dbf                                      4            4/oracle/oradata/orcl/sysaux01.dbf                                     3            3/oracle/oradata/orcl/undotbs01.dbf                                    2            2/oracle/oradata/orcl/system01.dbf                                     1            1/oracle/oradata/orcl/system02.dbf                                     6            6/oracle/oradata/orcl/test02.dbf                                       7            7/oracle/oradata/orcl/test.dbf                                         5            5注:bigfile 表空间只有一个数据文件,相对文件号为10248.bigfile 表空间、smallfile表空间SQL> SELECT TABLESPACE_NAME,bigfile from dba_tablespaces where tablespace_name='TEST';TABLESPACE_NAME                BIG------------------------------ ---TEST                           NO1- 在smallfile表空间里从表的rowid中获取相对文件号的信息   SQL> create table st0 (c number) tablespace TEST;     Table created.SQL> insert into st0 values (1);     1 row created.     SQL> select dbms_rowid.rowid_relative_fno(rowid,'SMALLFILE') from st0;DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID,'SMALLFILE')------------------------------------------------                                               5                                                                                              2- 在smallfile表空间里从表的rowid中获取相对文件号的信息 :SQL> create table bt01 (c number) tablespace big01;     Table created.     SQL> insert into  bt01 values (1);     1 row created. SQL> select dbms_rowid.rowid_relative_fno(rowid,'BIGFILE') from bt01;     DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID,'BIGFILE')     ----------------------------------------------                                               10249.bigfile表空间支持alter table move 支持smallfile 表空间总的对象move至bigfile 表空间SQL> select name, bigfile, table_name from dba_tables t, v$tablespace v             where table_name='T11' and v.name=t.tablespace_name;NAME                           BIG TABLE_NAME------------------------------ --- ------------------------------USERS                          NO  T11 SQL> ALTER TABLE scott.emp MOVE TABLESPACE BIG01;Table altered.  SQL> Select name, bigfile, table_name from dba_tables t, v$tablespace v  2            where table_name='T11' and v.name=t.tablespace_name;NAME                           BIG TABLE_NAME------------------------------ --- ------------------------------BIG01                          YES T11 特性限制------------ 新特性仅支持      --> locally managed tablespaces 本地管理表空间     --> with ASSM (automatic segment space management) ASSM管理表空间