广告
返回顶部
首页 > 资讯 > 数据库 >如何评估undo表空间大小
  • 626
分享到

如何评估undo表空间大小

2024-04-02 19:04:59 626人浏览 薄情痞子
摘要

今天就跟大家聊聊有关如何评估undo表空间大小,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何估算Oracle数据库所需的UNDO表空间的大小:H

今天就跟大家聊聊有关如何评估undo表空间大小,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

如何估算Oracle数据库所需的UNDO表空间的大小:
How To Size UNDO Tablespace For Automatic Undo Management (文档 ID 262066.1)

要确定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" 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


详解:

一般应该在一天中数据库负载最繁重的时候进行计算。
对于UNDO表空间大小的定义需要考虑UNDO_RETNETION参数、产生的UNDO BLOCKS/秒、UNDO BLOCK的大小。undo_retention:对于UNDO表空间的数据文件属性为autoextensible,则undo_retenion参数必须设置,UNDO信息将至少保留至undo_retention 参数设定的值内,但UNDO表空间将会自动扩展。对于固定UNDO表空间,将会通过表空间的剩余空间来最大限度保留UNDO信息。如果FIXED UNDO表空间没有对保留时间作GUARANTEE(alter tablespace xxx retention guarantee;),则undo_retention参数将不会起作用。(警告:如果设置UNDO表空间为retention guarantee,则未过期的数据不会被复写,如果表空间不够则会导致DML操作失败或者transation挂起)


Oracle 10g 有自动Automatic Undo Retention Tuning 这个特性。设置的 undo_retention 参数只是一个指导值,,Oracle 会自动调整 Undo (会跨过 undo_retention 设定的时间) 来保证不会出现 Ora-1555 错误.。通过查询V$UNDOSTAT(该视图记录4天以内的UNDO表空间使用情况,超过4天可以查询DBA_HIST_UNDOSTAT视图) 的 tuned_undoretention (该字段在10G版本才有,9I是没有的)字段可以得到Oracle 根据事务量(如果是文件不可扩展,则会考虑剩余空间)采样后的自动计算出最佳的 retenton 时间.。这样对于一个事务量分布不均匀的数据库来说,,就会引发潜在的问题--在批处理的时候可能 Undo 会用光, 而且这个状态将一直持续, 不会释放。


SQL查询tuned_undoretention:
select to_char(begin_time,'DD-MON-RR HH24:MI') begin_time,to_char(end_time,'DD-MON-RR HH24:MI') end_time,tuned_undoretention from v$undostat order by end_time;


检查一天平均每秒产生的UNDO BLOCK
select (sum(undoblks)/sum((end_time-begin_time)*86400) from v$undostat;
生成的结果是UNDO BLOCK,如果需要计算出实际大小,则需要乘以db_block_size(通过show parameter db_block_size查出来)

如何计算合适的UNDO表空间大小:
select (UR*(UPS*DBS))+(DBS*24) as "bytes" 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');

看完上述内容,你们对如何评估undo表空间大小有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 如何评估undo表空间大小

本文链接: https://www.lsjlt.com/news/68013.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何评估undo表空间大小
    今天就跟大家聊聊有关如何评估undo表空间大小,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何估算Oracle数据库所需的UNDO表空间的大小:H...
    99+
    2022-10-19
  • Oracle如何创建新undo表空间
    这篇文章主要介绍Oracle如何创建新undo表空间,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by ste...
    99+
    2022-10-18
  • 如何进行UNDO表空间空间回收及切换
    这期内容当中小编将会给大家带来有关如何进行UNDO表空间空间回收及切换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1. 查看 undo 相...
    99+
    2022-10-19
  • oracle如何查询表空间大小
    oracle查询表空间大小步骤:一、使用数据库管理员账号登录到Oracle数据库;二、使用“SELECT”语句来查看空间列表;三、查询表空间大小有3种方法:1、使用dbms_utility包查询;2、使用dba_segments视图...
    99+
    2023-07-10
  • 如何检查Undo表空间使用情况
    小编给大家分享一下如何检查Undo表空间使用情况,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ######脚本#######...
    99+
    2022-10-18
  • 如何监控和管理Oracle UNDO表空间
    这篇文章主要介绍了如何监控和管理Oracle UNDO表空间,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 对Oracle数据库UNDO表空...
    99+
    2022-10-18
  • oracle如何查看表空间剩余大小
    你可以使用以下语句来查看Oracle数据库中表空间的剩余大小:```sqlSELECT tablespace_name, r...
    99+
    2023-09-28
    oracle
  • 生产环境Oracle undo表空间如何管理
    这篇文章主要介绍了生产环境Oracle undo表空间如何管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇生产环境Oracle undo表空间如何管理文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • 数据库中如何查询表空间大小
    这篇文章主要为大家展示了“数据库中如何查询表空间大小”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中如何查询表空间大小”这篇文章吧。 ...
    99+
    2022-10-18
  • 如何删除UNDO表空间并处理ORA-01548问题
    这篇文章给大家分享的是有关如何删除UNDO表空间并处理ORA-01548问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。准备工作1.找到所有的表空间文件,这里主要是找到计划删除...
    99+
    2022-10-18
  • MySQL数据库如何查看表占用空间大小
    目录前言1、切换数据库2、查看所有数据库容量大小3、查看指定数据库使用大小4、查看表使用大小5、查看所有数据库容量大小6、查看所有数据库各表容量大小7、查看指定数据库容量大小8、查看指定数据库各表容量大小总结前言 Cen...
    99+
    2022-06-13
    mysql查询表占用空间大小 mysql查看表空间大小 mysql查看占用内存大小
  • mysql如何实现查表空间大小的SQL语句
    这篇文章将为大家详细讲解有关mysql如何实现查表空间大小的SQL语句,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 SQL语句如下:sele...
    99+
    2022-10-18
  • Oracle如何查看表空间的大小及使用情况
    这篇文章主要介绍Oracle如何查看表空间的大小及使用情况,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! --1、查看表空间的名称及大小 SELECT t.tablespa...
    99+
    2022-10-18
  • 数据库中如何使用裸设备之对表空间扩展大小或创建表空间
    小编给大家分享一下数据库中如何使用裸设备之对表空间扩展大小或创建表空间,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1.查看表空间对应的数据文件路径selec...
    99+
    2022-10-18
  • linux如何查看磁盘空间大小
    linux查看磁盘空间大小的方法:1、打开终端;2、输入“df -h”命令查看磁盘各分区大小、已用空间等信息即可。具体操作步骤:首先通过快捷键【Ctrl+Alt+T】打开终端命令行模式。输入以下命令查看磁盘各分区大小、已用空间等信息即可。d...
    99+
    2022-10-04
  • ubuntu如何查看存储空间大小
    您可以使用以下命令来查看存储空间大小:1. 使用 `df` 命令可以显示文件系统的磁盘使用情况:```df -h```该命令将显示每...
    99+
    2023-09-21
    ubuntu
  • linux如何查看分配空间大小
    在Linux系统上,可以使用以下命令来查看文件或目录的分配空间大小:1. 使用 `df` 命令查看整个文件系统的分配空间大小:```...
    99+
    2023-09-07
    linux
  • 数据库中如何查看各个表所用空间大小
    这篇文章将为大家详细讲解有关数据库中如何查看各个表所用空间大小,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 CREATE PROCEDUR...
    99+
    2022-10-18
  • 数据库中如何创建非默认块大小表空间
    这篇文章主要介绍数据库中如何创建非默认块大小表空间,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! SQL> create tablespace t...
    99+
    2022-10-18
  • 如何临时更改Linux栈空间大小
    这篇文章给大家分享的是有关如何临时更改Linux栈空间大小的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M通过命令 u...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作