--------- ------------------------------ -------------------- -------------------- -------------------- ---
/opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 34359721984 8192 YES
--现在看到数据文件的bytes>maxbytes了
上面还原了BYTES>MAXBYTES的过程。
上面提到的表空间的数据文件是自动扩展的,那对于不自动扩展的数据文件又会怎么样呢?
下面继续测试
--取消数据文件的自动扩展
SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' autoextend off;
Database altered.
SQL> select file_name,tablespace_name,bytes,maxbytes,bytes-maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1';
FILE_NAME TABLESPACE_NAME BYTES MAXBYTES BYTES-MAXBYTES AUT
---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- -------------------- ---
/opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 0 34359730176 NO
--可以看到MAXBYTES变为了0
如果再把数据文件改为可自动扩展又会出现什么情况呢
SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' autoextend on;
Database altered.
SQL> select file_name,tablespace_name,bytes,maxbytes,bytes-maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1';
FILE_NAME TABLESPACE_NAME BYTES MAXBYTES BYTES-MAXBYTES AUT
---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- -------------------- ---
/opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 34359730176 0 YES
--可以看到BYTES=MAXBYTES了
下面总结一下:
dba_data_files数据字典里的bytes值和maxbytes没有什么必然的联系
数据文件不可自动扩展时,MAXBYTES=0,BYTES的值既为该文件已实际分配的大小,也为该为件最大大小
数据文件可自动扩展时,默认的MAXBYTES=32G,BYTES为该文件已实际分配的大小,默认情况下BYTES不会超过MAXBYTES,如果对该文件进行resize操作,那么BYTES就用可能大于MAXBYTES。