Welcome 微信登录

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

要确定Oracle需要的UNDO 表空间的大小,需要以下三条信息: UR      以秒为单位的UNDO_RETENTION
UPS    每秒生成的还原数据块的数量
DBS     db_block_sizeUndoSpace = [UR * (UPS * DBS)] + (DBS * 24)UNDO_RETENTION是一个参数,此参数控制为提供读一致性而保留的还原数据量,以秒为单位定义,可以在初始化文件中设置,或使用 ALTER SYSTEM 命令来动态修改。
SQL>ALTER SYSTEM SET UNDO_RETENTION=900;SQL> show parameter undo_retentionNAME                                 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
为了获得满足业务需要的结果,一般应该在一天中数据库负载最繁重的时候进行计算。Oracle中的数据类型和表的管理Oracle物理读与逻辑读相关资讯      Oracle数据库 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • Oracle 多数据库的数据同时更新  (06/16/2014 21:52:23)
本文评论 查看全部评论 (0)
表情: 姓名: 字数