发布网友 发布时间:2022-05-06 16:19
共2个回答
懂视网 时间:2022-05-06 20:40
--根据盖国强老师以前的文档总结的-- 单个数据文件的大小是怎么限制的 限制主要参数,db_block_size 主要计算结果 当db_block_size=8K,单个数据文件最大32GB 当db_block_size=16k,单个数据文件最大64GB 当db_block_size=32k,单个数据文件最大128GB, 备注
单个数据文件的大小是怎么限制的
限制主要参数,db_block_size
主要计算结果
当db_block_size=8K,单个数据文件最大32GB
当db_block_size=16k,单个数据文件最大64GB
当db_block_size=32k,单个数据文件最大128GB,
备注:
1.这个参数限制主要针对正常表空间,大表表空间不在限制策略内;
2.根据实际情况来设置单个数据文件的大小,小心一个表空间损坏引起DB的灾难;
热心网友 时间:2022-05-06 17:48
oracle中数据文件的大小是有*的,就是 每个数据文件最多只能包含2^22-1个数据块 对于2k的块的数据文件,最大的数据文件是8g 32k块的数据文件,最大的数据文件是16*8g 如果超过了这个*,在创建的过程中会报错 SQL> show parameter block_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_block_size integer 8192 SQL> create tablespace atest datafile '/opt/oracle/oradata/mhdb/atest.dbf' size33800m; create tablespace atest datafile '/opt/oracle/oradata/mhdb/atest.dbf' size 33800m * 第1 行出现错误: ORA-01144: File size (4326400 blocks) exceeds maximum of 4194303 blocks 这个*的原理是由于oracle的rowid中使用22位来代表block号,这22位最多只能代表2^22-1个数据块 为了扩展数据文件的大小,oracle10g中引入了大文件表空间 在大文件表空间下,oracle使用32位来代表block号 也就是说,在新技术下,大文件表空间下每个文件最多可以容纳4g个block 经过计算2k块的数据文件可以大到8t 32k块的数据文件最大可以达到128t