如何查看当前数据库的undo

如何查看当前数据库的undo,第1张

查看回滚段名称及大小

select segment_name, tablespace_name, r.status,

(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,

max_extents, v.curext CurExtent

From dba_rollback_segs r, v$rollstat v

Where r.segment_id = v.usn(+)

order by segment_name

查看表空间的使用情况

select sum(bytes)/(1024*1024) as free_space,tablespace_name

from dba_free_space

group by tablespace_name

首先,undo表空间满是正常的,oracle自然会重用或者扩展它,一般不用管它。

然后,现在要解决的话,需要先把undo

tablespace设置成手动,启动数据库,创建新的undo

tablespace。把新的设置成默认的。

假设你的库现在是mounted状态

1

创建PFILE(如果已有就是更新)

SQL>create

pfile

from

spfile

2

关闭数据库

SQL>shutdown

immediate

3

在你的$ORACLE_HOME/dbs目录下面找个叫做

init<数据库>.ora的文件,把其中有undo_management=AUTO的一行改成

undo_management=MANUAL

如果没有就在文件末尾填一行

4

以sysdba身份连接数据库

SQL>connect

"/

as

sysdba"

用刚才改过的文件启动数据库

SQL>

startup

pfile=<刚才的文件全路径和名字>

这步是最关键的,如果成功,后面就没问题了

5

drop掉原来的表空间

SQL>

drop

tablespace

<原来的undo表空间名字>

including

contents

6

创建新的undo表空间

SQL>

create

UNDO

tablespace

undotbs2

datafile

'/u01/app/oracle/oradata/orcl/undotbs02.dbf'

size

100M

autoextend

on

7

关闭数据库,

SQL>shutdown

immediate

在开始那个init文件里设置UNDO_MANAGEMENT=AUTO

UNDO_TABLESPACE=UNDOTBS2

8

再做一次第四步

9

更新spfile

SQL>create

spfile

from

pfile

10

关闭数据库,正常重新启动

SQL>shutdown

immediate

SQL>startup

11

去网上教你删undo那个地方骂它。非常想当然的做法。没有任何理由这么做

12

让你的工程师去学oracle

培训

以上步骤的中的第5步可能会出问题。我不确认。。。

但是即使第5步不成功,问题应该也不大

oracle中undo是用来存放回滚数据的。

撤销(Undo)数据是反转DML语句结果所需的信息。撤销数据通常被称为“回滚数据”,在过去的Oracle版本中,“回滚数据”和“撤销数据”可以交替使用,但从 9i版本开始,这两个术语有所不同:功能相同,但管理方式不同。只要某个事务修改了数据,那么更新前的原有数据就会被写入一个回滚段或撤销段。回滚段在 11g版本中依然存在,但从9i版本开始,Oracle数据库引入了可供选择的撤销段。Oracle强烈建议所有数据库都应当使用撤销段,回滚段只被保留用于向后兼容 。

undo表空间:

一个数据库可以存在多个撤销表空间,但是在任意给定时刻都只能使用一个撤销表空间。撤销表空间必须被创建为持久的、本地管理的并且能够自动扩展分配空间的表空间。

事务与undo段:

在某个事务启动时,Oracle会为其指派一个撤销段。任何一个事务都只能受一个撤销段保护,一个事务生成的撤销数据无法被分配到多个撤销段中。

在某个事务更新表和索引数据块时,回滚该变化所需的信息会被写入指定撤销表空间的数据块。撤销数据在提交后过期的事实意味着可以采用循环方式使用撤销段。如果使用原有的、人工管理的回滚段,那么调整的重要环节是控制具体事务分别受哪些回滚段保护。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存