当前位置:  数据库>oracle

如何估算Oracle数据库所需的UNDO表空间的大小

    来源: 互联网  发布时间:2017-04-15

    本文导语: 要确定Oracle需要的UNDO 表空间的大小,需要以下三条信息:  UR      以秒为单位的UNDO_RETENTIONUPS    每秒生成的还原数据块的数量DBS     db_block_size UndoSpace = [UR * (UPS * DBS)] + (DBS * 24) UNDO_RETENTION是一个参数,此参数控制为提...

要确定Oracle需要的UNDO 表空间的大小,需要以下三条信息: 

UR      以秒为单位的UNDO_RETENTION
UPS    每秒生成的还原数据块的数量
DBS     db_block_size

UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)

UNDO_RETENTION是一个参数,此参数控制为提供读一致性而保留的还原数据量,以秒为单位定义,可以在初始化文件中设置,或使用 ALTER SYSTEM 命令来动态修改。

SQL>ALTER SYSTEM SET UNDO_RETENTION=900;

SQL> show parameter undo_retention

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_retention                       integer     900

如果值为900,则可以使还原数据保留 15 分钟,当然需要足够的存储空间才行。

那么如何计算每秒生成的还原数据块的数量呢,可以通过v$undostat视图的begin_time、end_time和undoblks三个字段的值查询出来,计算的SQL语句如下:

SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes"
  2  FROM       (SELECT value AS UR
  3             FROM v$parameter
  4             WHERE name = 'undo_retention'),
  5     (SELECT (SUM(undoblks)/SUM(((end_time -begin_time)*86400))) AS UPS
  6     FROM v$undostat),
  7     (SELECT value AS DBS
  8     FROM v$parameter
  9     WHERE name = 'db_block_size');







     Bytes
----------
445814.844

为了获得满足业务需要的结果,一般应该在一天中数据库负载最繁重的时候进行计算。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JavaScript密码强度估算 zxcvbn


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3