Oracle数据文件大小的限制
=====================
通常我们数据库Block=8192的数据文件最大不超过32G
添加一个maxsize为unlimited的数据文件
SQL> alter tablespace users add datafile ‘/opt/oracle/oradata/test/user32g.dbf’ size 10M AUTOEXTEND ON maxsize unlimited;
Tablespace altered.
SQL> select MAXBYTES/1024/1024/1024 from dba_data_files where file_name=’/opt/oracle/oradata/test/user32g.dbf’;
MAXBYTES/1024/1024/1024
———————–
31.9999847
由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1(4194303)个数据块,而在我们一般情况下使用的数据块大小为8k,所以数据文件的理论大小最大为: 31.9999924G
至于maxsize为unlimited时候,数据文件的大小为什么只有31.9999847G(blocks:4194301.99),比最大块数(4194303)少了一块,也许是和数据库和系统之间的衔接原因导致。
由上面的分析我们可以知道,数据文件大小和db_block_size有关,那我们可以得到这样的数据文件最大理论值
| 数据块 | 数据文件大小 |
| 2KB | 8GB |
| 4KB | 16GB |
| 8KB | 32GB |
| 16KB | 64GB |
| 32KB | 128GB |
注:以上规则适用于smallfile tablespace 下的数据文件,bigfile tablespace 下的数据文件不受此限制
本文探讨了Oracle数据库中数据文件大小的限制,指出其与db_block_size的关系,并提到在smallfile与bigfile tablespace下的不同情况。
799

被折叠的 条评论
为什么被折叠?



