oracle数据文件大小合适,Oracle中数据文件大小的限制

Oracle中数据文件大小的限制

6ee5639a40442445944d63b514b2dd02.png

Oracle数据文件的大小存在一个内部限制,这个限制是:

每个数据文件最多只能包含2^22-1个数据块。

这个限制也就直接导致了每个数据文件的最大允许大小。

在2K Block_size下,数据文件最大只能达到约8G

在32K的Block_size下,数据文件最大只能达到约16*8G的大小。

这个限制是由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1个数据块。

为了扩展数据文件的大小,Oracle10g中引入了大文件表空间,在大文件表空间下,Oracle使用32位来代表Block号,也就是说,在新的技术下,大文件表空间下每个文件最多可以容纳4G个Block。

那么也就是说当Block_size为2k时,数据文件可以达到8T 。

当block_size为32K时,数据文件可以达到128T。

上周在做2K block_size测试时,第一次遇到了这个限制:SQL> alter tablespace eygle add datafile 'f:\eygle02.dbf' size 8192M;

alter tablespace eygle add datafile 'f:\eygle02.dbf' size 8192M

*

ERROR 位于第 1 行:

ORA-01144: 文件大小 (4194304 块) 超出 4194303 块的最大数

缩减一点,最后创建成功:SQL> alter tablespace eygle add datafile 'f:\eygle02.dbf' size 8191M reuse;

表空间已更改。

已用时间: 00: 44: 42.08

计算一下,这台破烂的测试机的IO速度:

io speed = 8191 M / 00: 44: 42.08 = 8191 M / 44*60+42 = 8191M / 2682 s = 3.05M/s

够惊人的了吧。

-The End-

By eygle on 2007-07-09 16:14 |

Comments (8) |

FAQ | 1491 |

8 Comments

文件大小限制,我也碰到过,当dbf文件大于8G以后,数据库就自动停止运行了,查看alert.log,有error。

再建了几个2g的dbf以后,就好了,稳定运行到现在。

这样的问题,的确应该在系统上线的时候就考虑,一般运行几年以后,都会达到这样的限制。

8G限制是由于block_size是2K。

如果是8k的block_size,那么单个文件理论上可以达到32G的。

你不能这么冤枉这台机器,这里44分钟一定不是全部费在I/O上,或者说挺大部分估计都是在更新数据字典或者其他信息上吧。

再说回来,每秒3M也不是很“慢”,上次一个客户那儿用dd测试一个产品环境的盘阵,1G的dd用了5分钟,嗯,也是每秒3M,呵呵。

我的测试数据库,PC做的 35M/s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值