iamboi 发表于 2010 年 12 月 26 日 13:01:43

Oracle数据文件大小的限制


oracle数据文件大小限制的公式:
  oracle maximum file size = db_block_size * 4194303 (2^22 = 4194304)
  也就是说最大的数据文件大小是由 db_block_size 来决定的,8KB的数据块的数据文件最大为 8K * 4194304 = 32G,其他的以此类推
  
数据块数据文件
2KB8GB
4KB16GB
8KB32GB
16KB64GB
32KB128GB

  限制的原因在于:因为Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1个数据块。
  【注】以上规则适用于smallfile tablespace 下的数据文件,bigfile tablespace 下的数据文件不受此限制
  SQL> create tablespace lob_rms datafile '+DISKGRP1/rms/datafile/lob_rms_01' size 100G;
  create tablespace lob_rms datafile '+DISKGRP1/rms/datafile/lob_rms_01' size 100G
  *
  ERROR at line 1:
  ORA-01144: File size (13107200 blocks) exceeds maximum of 4194303 blocks
  SQL> !oerr ora 1144
  01144, 00000, "File size (%s blocks) exceeds maximum of %s blocks"
  // *Cause: Specified file size is larger than maximum allowable size value.
  // *Action: Specify a smaller size.

页: [1]
查看完整版本: Oracle数据文件大小的限制