undo_retention计算(修改恢复记录…

Oracle undo_retention 计算  

undo_retention计算(修改恢复记录时间)

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
            FROM v$parameter
            WHERE name = 'undo_retention'),
    (SELECT (SUM(undoblks)/SUM(((end_time -begin_time)*86400))) AS UPS
    FROM v$undostat),
    (SELECT value AS DBS
    FROM v$parameter
    WHERE name = 'db_block_size');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值