ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 如何正确确认回退表空间空间大小

如何正确确认回退表空间空间大小

原创 Linux操作系统 作者:buliaoqingtian 时间:2019-02-27 12:48:05 0 删除 编辑

  回退表空间的大小设置不当,应用中会产生大家都遇到过的问题。如何正确修改回退表空间的大小呢?


如果数据库的回退表空间的大小设定的不合适的话,就会产生回退段过旧或无法分配新的回退表空间。下面是设定正确的回退表空间的步骤

第一步:查询V$UNDOSTATS

select TO_CHAR(MIN(Begin_Time),'YYYY-MM-DD HH24:MI:SS') ,

TO_CHAR(MAX(End_Time),'YYYY-MM-DD HH24:MI:SS'),

SUM(Undoblks) ,

SUM(Txncount) ,

MAX(Maxquerylen) ,

MAX(Maxconcurrency) ,

SUM(Ssolderrcnt),

SUM(Nospaceerrcnt)

from V$UNDOSTAT;

从上面可以查看出使用最多数据块的事务。

第二步:查看UNDO_RETENTION,DB_BLOCK_SIZE 的值

SQL>show parameter undo_retention

SQL>show parameter db_block_size

第三步:使用公式算出回退表空间的大小

回退表空间大小=db_block_size*undo_retention*max(undoblks)/600

第四步:根据上一步算出的值,修改回退表空间数据文件的大小

SQL>alter database datafile '/u01/app/database/undotbs01.dbf' resize xxxM;

还有第二种算法,

select

(select max(undoblks)/600*max(maxquerylen) from v$undostat)

*

(select value from v$parameter where name=’db_block_size’) from dual;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/526592/viewspace-236741/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: CKPT被触发条件
请登录后发表评论 登录
全部评论

注册时间:2005-08-03

  • 博文量
    88
  • 访问量
    106023