暂无图片
oracle undo表空间不释放
我来答
分享
刘广
2022-01-20
oracle undo表空间不释放

OS:redhat linux 7.4

DB:11.2.0.4.0单机


undo_retention=10800,undo表空间几乎一天增长50G空间,查V$rollstat的status都是online,请问如何分析排查问题

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
文成
--查看数据库undo整体状况
select tablespace_name, status, sum(bytes) / 1024 / 1024 / 1024 "bytes(G)"
  from dba_undo_extents
 group by tablespace_name, status;

--查看active状态的segment 
SELECT b.usn,
       tablespace_name,
       segment_name,
       bytes "Extent_Size",
       count(extent_id) "Extent_Count",
       bytes * count(extent_id) "Extent_Bytes"
  FROM dba_undo_extents a, v$rollname b
 WHERE status = 'ACTIVE'
   and a.SEGMENT_NAME = b.name
 group by b.usn, tablespace_name, segment_name, bytes
 order by count(extent_id) desc;

--查看具体 undo segment 的情况
SELECT b.usn,    --undo segment NO.
       tablespace_name,
       segment_name,
       bytes "Extent_Size",
       status,
       count(extent_id) "Extent_Count",
       bytes * count(extent_id) "Extent_Bytes"
  FROM dba_undo_extents a, v$rollname b
 WHERE /*status = 'ACTIVE'
   and*/ a.SEGMENT_NAME = b.name
   and a.SEGMENT_NAME ='_SYSSMU479_2990344083$'
 group by b.usn, tablespace_name, segment_name, bytes,status
 order by count(extent_id) desc;

-- 通过usn查看会话中的事务状态,正在运行什么sql
select start_time, --事务起始时间  
       s.SID,      -- session id
       s.username, --用户名  
       s.MACHINE, --机器名称  
       s.OSUSER, --登录名  
       pr.SPID, 
       r.name, --回滚段名称  
       ubafil, --Undo block address (UBA) filenum  
       ubablk, --UBA block number  
       t.ses_addr,
       t.status, --会话状态  
       (used_ublk * p.value) / 1024 blk, --使用的回滚段空间  
       used_urec, --使用的undo 记录 ,  
       s1.SQL_ID, --sql_id  
       s1.SQL_TEXT --sql文本  
  from v$transaction t, v$rollname r, v$session s, v$parameter p, v$sql s1 ,v$process pr
 where xidusn = usn
   and s.saddr = t.ses_addr
   and p.name = 'db_block_size'
   and s.SADDR = s1.ADDRESS(+)
   and s.paddr = pr.addr(+)
   and xidusn = 1505
 order by 1;
复制
暂无图片 评论
暂无图片 有用 2
打赏 0
刘广
题主
2022-01-20
除了第一个查出来数据,其余都没查出来数据 unexpired 209G,expired 0.07G
文成
答主
2022-01-21
v$rollname没有数据?
菜~牙

看看归档的切换频率怎么样,还有生成一个awr报告,通过awr报告中的物理写、物理写请求及改变的数据库块看看,数据库的数据变化主要来源于哪个数据库用户和表。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 11gdg,physical切换成snapshot后快跟踪不生效了,为什么?
回答 1
块跟踪应该是记录同主库一样的数据库的变化,快照模式下数据库的变化应该记录在闪回区块跟踪此时应该不做记录吧等你恢复到正常主备模式下,可以看看块跟踪还会不会起作用块跟踪记录增量备份中的块变化共同进步
求金额转大写的PL/SQL function
回答 2
代码中包含了边界异常情况和错误处理。CREATEORREPLACEFUNCTIONamounttochinese(numamountINNUMBER)RETURNVARCHAR2ISvchinesen
oracle11g执行SQL停止不下来有哪位大佬能给指点一下?
回答 2
已采纳
很多DML操作过程中突然中断是要回滚事务的,ACID很重要
oracle RAC , +data/orcl/fangh.12345678 请教下,增加一个数据文件,前面要求 “ +data/orcl/fangh.”,而文件名后面的一串数字可以随机。 这个咋实现的
回答 5
已采纳
这个数据文件名是自动生成的随机文件名,通过设置OMF参数:showparameterdbcreate设置该参数后,添加数据文件只需要执行:altertablespace表空间名adddatafile;
RAC有什么特点?
回答 1
已采纳
RAC的特点除了具有普通的数据库特性外:每一个节点的instance都有自己的SGA每一个节点的instance都有自己的backgroundprocess每一个节点的instance都有自己的red
Oracle 19c备份pdb,如何写成脚本?
回答 1
已采纳
加关键词pluggable即可backupascompressedbackupsetpluggabledatabasePDBincludecurrentcontrolfileformat'/bak/f
Oracle 数据库给5000最大连接数的话,服务器内存要给多少?
回答 1
这个看数据库版本如果版本>18c,每个process是5MB,PGA大概是25GB,服务器内存160GB如果版本12c,每个process是3MB,PGA大概是15GB,服务器内存100GB
现在有台Oracle server 应用那边反应连接数据库很慢,但是数据库没有什么慢查询,还可以从哪些方面去troubleshooting性能问题?
回答 2
看一下/etc/resolv.conf配置文件,是否配置了nameserver,如果不通外网但是配置了nameserver那么就会有连接缓慢的问题,直接注释掉就好了
关于oracle重做日志文件的问题
回答 3
已采纳
你理解对的。是一个组的都是镜像,只要有一个好的就行。如果一个组全坏了,就出事了。所以一般专业的是一个组的两个,分在不同存储上。防止存储问题。
Oracle 新安装的asm实例, asm实例状态不正常要如何修复?
回答 1
把日志放上来,分析一下!