在前一篇文章(Oracle的文件号、相对文件号及其他)中,我们提到Oracle数据文件的相对文件号为1-1023。然而从10g开始,可以使用大文件(BIGFILE)的表空间,这种表空间只能使用1个数据文件。之所以称为大文件,是因为这种文件可以很“大”,最多可以有4G个块和128TB的大小。
大文件表空间的数据文件,其相对文件号都统一为1024,用下面的测试可以验证:
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 3 23:11:51 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select file_id,relative_fno,file_name,tablespace_name from dba_data_files;
FILE_ID RELATIVE_FNO FILE_NAME TABLESPACE_NAME
---------- ------------ ---------------------------------------- --------------------
1 1 /u02/oradata/xty/system01.dbf SYSTEM
2 2 /u02/oradata/xty/undotbs01.dbf UNDOTBS1
3 3 /u02/oradata/xty/sysaux01.dbf SYSAUX
4 4 /u02/oradata/xty/users01.dbf USERS
SQL> create bigfile tablespace test1 datafile '/u02/oradata/xty/test01.dbf' size 2m;
Tablespace created.
SQL> select file_id,relative_fno,file_name,tablespace_name from dba_data_files;
FILE_ID RELATIVE_FNO FILE_NAME TABLESPACE_NAME
---------- ------------ ---------------------------------------- --------------------
1 1 /u02/oradata/xty/system01.dbf SYSTEM
2 2 /u02/oradata/xty/undotbs01.dbf UNDOTBS1
3 3 /u02/oradata/xty/sysaux01.dbf SYSAUX
4 4 /u02/oradata/xty/users01.dbf USERS
5 1024 /u02/oradata/xty/test01.dbf TEST1
SQL> create bigfile tablespace test2 datafile '/u02/oradata/xty/test02.dbf' size 2m;
Tablespace created.
SQL> select file_id,relative_fno,file_name,tablespace_name from dba_data_files;
FILE_ID RELATIVE_FNO FILE_NAME TABLESPACE_NAME
---------- ------------ ---------------------------------------- --------------------
1 1 /u02/oradata/xty/system01.dbf SYSTEM
2 2 /u02/oradata/xty/undotbs01.dbf UNDOTBS1
3 3 /u02/oradata/xty/sysaux01.dbf SYSAUX
4 4 /u02/oradata/xty/users01.dbf USERS
5 1024 /u02/oradata/xty/test01.dbf TEST1
6 1024 /u02/oradata/xty/test02.dbf TEST2
6 rows selected.
可以看到所有的“大”文件,其相对文件号均为1024。
每个大文件表空间只能有一个数据文件,尝试对大文件表空间增加数据文件,则会出现错误:
SQL> alter tablespace test1 add datafile '/u02/oradata/xty/test011.dbf' size 2m;
alter tablespace test1 add datafile '/u02/oradata/xty/test011.dbf' size 2m
*
ERROR at line 1:
ORA-32771: cannot add file to bigfile tablespace
no comment untill now