кто занимает UNDO ???

c0re
Дата: 21.09.2015 15:51:12
Oracle 9i

простенькие апдейты выполняются успешно, чуть более сложные операции заканчиваются с ошибкой
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'

Toad показывает что UNDO забит под завязку.

SELECT STATUS,TABLESPACE_NAME, SUM(BYTES)/1024/1024, COUNT(*) 
FROM DBA_UNDO_EXTENTS 
GROUP BY STATUS, TABLESPACE_NAME

выводит:
STATUSTABLESPACE_NAMESUM(BYTES)/1024/1024COUNT(*)
ACTIVEUNDOTBS1498.8046875266
EXPIREDUNDOTBS10.867187515
UNEXPIREDUNDOTBS10.18753


но активных сессий нет, никто ничего не делает.
c0re
Дата: 21.09.2015 15:56:06
сделал
ALTER SYSTEM SET UNDO_RETENTION = 60;


стало
STATUSTABLESPACE_NAMESUM(BYTES)/1024/1024COUNT(*)
ACTIVEUNDOTBS1498.8046875266
EXPIREDUNDOTBS10.992187517
UNEXPIREDUNDOTBS10.06251


и больше не меняется.
mefman
Дата: 21.09.2015 15:58:33
500 метров ундо...
страшно представить, каких гигантских размеров там база
landy
Дата: 21.09.2015 16:02:14
тут
первая ссылка
c0re
Дата: 21.09.2015 16:05:00
mefman
500 метров ундо...
страшно представить, каких гигантских размеров там база


к чему этот сарказм если ответить по существу нечего?
база 50Гб
занято примерно на 30%

ранее все работало, да и сейчас работает с таким же удну на других инстансах.
c0re
Дата: 21.09.2015 16:07:25
landy
тут
первая ссылка


да тут одни умники собрались я гляжу.

я так то уже гуглил, но сюда пришел, за помощью, а не за направлением в гугль
c0re
Дата: 21.09.2015 16:08:49
если форум стал работать только для сарказма и отправки на гугл, то зачем этот форум???
landy
Дата: 21.09.2015 16:11:03
Ну и ленивы Вы батенька ...
SELECT TO_CHAR(s.sid)||','||TO_CHAR(s.serial#) sid_serial,
       NVL(s.username, 'None') orauser,
       s.program,
       r.name undoseg,
       t.used_ublk * TO_NUMBER(x.value)/1024||'K' "Undo"
  FROM sys.v_$rollname    r,
       sys.v_$session     s,
       sys.v_$transaction t,
       sys.v_$parameter   x
 WHERE s.taddr = t.addr
   AND r.usn   = t.xidusn(+)
   AND x.name  = 'db_block_size';


select s.sid, 
       s.username,
       sum(ss.value) / 1024 / 1024 as undo_size_mb
from  v$sesstat ss
  join v$session s on s.sid = ss.sid
  join v$statname stat on stat.statistic# = ss.statistic#
where stat.name = 'undo change vector size'
and s.type <> 'BACKGROUND'
and s.username IS NOT NULL
group by s.sid, s.username;


Это все из первой ссылки
AlexFF__|
Дата: 21.09.2015 16:14:15
c0re
сделал
ALTER SYSTEM SET UNDO_RETENTION = 60;


стало
STATUSTABLESPACE_NAMESUM(BYTES)/1024/1024COUNT(*)
ACTIVEUNDOTBS1498.8046875266
EXPIREDUNDOTBS10.992187517
UNEXPIREDUNDOTBS10.06251


и больше не меняется.

Что в TS RETENTION?
c0re
Дата: 21.09.2015 16:14:56
landy, у нас видимо разный гугль