eygle.com   eygle.com
eygle.com  
 

« DBA警示录:关闭数据库应当谨慎 | Blog首页 | 案例学习:inode耗尽导致No space left on device错误 »

Oracle中数据文件大小的限制

作者:eygle |【转载时请务必以超链接形式标明文章和作者信息及本声明
链接:

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 (6) | Posted to FAQ | Edit |Pageviews:

相关文章 随机文章
  • Oracle中模拟及修复数据块损坏
  • 系统表空间IO错误 数据损坏处理一则
  • Oracle HowTo:使用DBMS_UTILITY转换Block地址
  • 拥有归档日志 如何恢复一个丢失的数据文件
  • Oracle HowTo:如何通过只读方式更改Oracle数据文件位置
  • 半夜三更 磁盘又坏
    ITPUB年会纪事:主持数据库分论坛讨论
    今天收到了Google的支票
    注意安全-北京地铁目击当众抢劫
    《Oracle数据库性能优化》书稿已经交付出版社
    网上相关主题:
    Google

    留言 (6)

    这i/o不是一般的"快"啊 ^|^

    Posted by: Thomas Zhang at July 9, 2007 7:31 PM

    那是相当的快啊!

    Posted by: eygle at July 10, 2007 9:34 AM

    文件大小限制,我也碰到过,当dbf文件大于8G以后,数据库就自动停止运行了,查看alert.log,有error。
    再建了几个2g的dbf以后,就好了,稳定运行到现在。

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

    Posted by: shaofeng at July 10, 2007 9:44 AM

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

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

    Posted by: eygle at July 10, 2007 9:47 AM

    你不能这么冤枉这台机器,这里44分钟一定不是全部费在I/O上,或者说挺大部分估计都是在更新数据字典或者其他信息上吧。
    再说回来,每秒3M也不是很“慢”,上次一个客户那儿用dd测试一个产品环境的盘阵,1G的dd用了5分钟,嗯,也是每秒3M,呵呵。

    Posted by: kamus at July 12, 2007 3:07 PM

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

    Posted by: lypflash at April 9, 2008 3:16 PM

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004 eygle.com, All rights reserved.