Oracle数据库的物理文件可以设置成自动增长的类型, 这样数据库在需要更多空间时, 物理文件会按设定的增长量自动增长到指定的最大值。这样会有一些好处: 保证不会因为分配数据区域(extent)失败而终止应用。但假如没有设定这个最大值, 它将会是一个非常大的数字。数据块大小不同, 其最大值也不一样。因为Oracle的物理文件最大只答应4194303个数据块(datablock)。
下面列表说明不同数据块数据库所能支持的最大物理文件大小:
数据块的大小 物理文件的最大值 MB
========== ====================
2048 8191
4096 16383
8192 32767
16384 65535 |
不幸的是, 不同操作系统不同Oracle版本对其物理文件的最大值限制是不一样的。假如物理文件超过了某个限制大小, Oracle数据库将会出现内核错误并崩溃。
下面列出了几种常见操作系统的最大物理文件限制, 有的还需要在OS端设置大的文件系统和特定的环境变量等。
Windows NT Maximum 4GB files on FAT
Theoretical 16TB on NTFS
Sun Solaris (32 bit Oracle releases)
=======================================
OS Limits
~~~~~~~~~
Release Max file-system size Max OS File size
< Solaris 2.6 1TB (UFS) 2GB
>= Solaris 2.6 1TB (40 bits) 1TB
Oracle Limits
~~~~~~~~~
SOLARIS 2.6 / 2.7 / 2.8
File EXP/ Loader
Oracle System Raw Imp** see ** UTL_FILE
==========================================
8.1.6.0 >4GB >=2GB >=2GB >=2GB >=2GB
8.1.5.0 32Bit >4GB >=2GB <2GB <2GB <2GB
8.1.5.0 64Bit >4GB >=2GB <2GB
8.0.6.0 >4GB >=2GB <2GB >2GB
8.0.5.2 >4GB >=2GB <2GB <2GB <2GB
8.0.5.1 <4GB >=2GB <2GB <2GB <2GB
8.0.5.0 <2GB >=2GB <2GB <2GB <2GB
>=8.0.4.2 <4GB >=2GB <2GB <2GB <2GB
< 8.0.4.2 <2GB >=2GB <2GB <2GB <2GB
8.0.3.x <2GB >=2GB <2GB <2GB <2GB
7.3.4.x <2GB >=2GB <2GB <2GB <2GB
7.3.3.x <2GB >=2GB <2GB <2GB <2GB
HP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HPUX Unix Limits
~~~~~~~~~~~~~~~~~
Max file system size:
<= HP-UX 10.10 4GB
>= HP-UX 10.20 128GB
>= HP-UX 11.00 1TB
Max OS file size:
<= HP-UX 10.10 2GB
>= HP-UX 10.20 128GB
>= HP-UX 11.00 1TB
Oracle on HPUX Limits
~~~~~~~~~~~~~~~~~~~~~~
Max Datafile Size
File Raw Async Export/ SQL*Loader
Release System Device I/O Import** (see **)
=============================================
8.1.7.x 64GB 64GB raw only >2GB >2GB
8.1.6.x 64GB 64GB raw only >2GB >2GB
8.0.6.x 64GB 64GB raw only See*1 See*2
8.0.5.x 64GB 64GB raw only See*1 <2GB
8.0.4.x 64GB 64GB raw only SIL HPUX10.20 > 2GB
HPUX-11 <2GB
8.0.3.x <2GB <2GB raw only 2GB 2GB
7.3.4.x 64GB 64GB raw only SIL 2GB
>=7.3.3.4.1 64GB 64GB raw only SIL 2GB
7.3.2.3 <2GB <2GB raw only 2GB 2GB
7.1.6 <2GB <2GB raw only 2GB 2GB |
下面的SQL语句可以查看数据库物理文件是否是自动增长的及相关参数。
select tablespace_name,file_name,
round(bytes/(1024*1024),0) total_space,
autoextentsible,increment_by,maxbytes from
dba_data_files order by tablespace_name; |
假如你治理的数据库物理文件是自动增长的并有可能超过操作系统或Oracle版本文件最大限制时, 请尽快改变它的属性, 把它设定成非自动增长的或者限定它最大的值。
假如物理文件的物理位置是 D:ORACLEORADATAORACLE8APP01.DBF 用下面的SQL语句可以实现这一操作:
alter database datafile '
D:ORACLEORADATAORACLE8APP01.DBF' autoextend off;
alter database datafile '
D:ORACLEORADATAORACLE8APP01.DBF' autoextend on next 50MB
maxsize 1500MB; |
假如有良好的数据库存储规划, 物理文件最好还是设置成非自动增长的类型。