powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выявить что находится в UNDO UNEXPIRED?
20 сообщений из 20, страница 1 из 1
Как выявить что находится в UNDO UNEXPIRED?
    #39283734
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select status,
  round(sum_bytes / (1024*1024), 0) as MB,
  round((sum_bytes / undo_size) * 100, 0) as PERC
from
(
  select status, sum(bytes) sum_bytes
  from dba_undo_extents
  group by status
),
(
  select sum(a.bytes) undo_size
  from dba_tablespaces c
    join v$tablespace b on b.name = c.tablespace_name
    join v$datafile a on a.ts# = b.ts#
  where c.contents = 'UNDO'
    and c.status = 'ONLINE'
);


Код: plsql
1.
2.
3.
4.
STATUS	      MB	  PERC
ACTIVE	     561	    0
EXPIRED	     12	            0
UNEXPIRED    124831        100



Код: plsql
1.
2.
3.
4.
5.
6.
SQL> show parameter undo_retention;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_retention                       integer     900
SQL>



Код: plsql
1.
2.
select status, count(*) Num_Extents, sum(blocks) Num_Blocks, round((sum(bytes)/1024/1024),2) MB
from dba_undo_extents group by status order by status



Код: plsql
1.
2.
3.
4.
STATUS	     NUM_EXTENTS	NUM_BLOCKS	 MB
ACTIVE	         11	          64896	        507
EXPIRED	         72	          2608	       20,38
UNEXPIRED	8431	         15983184      124868,63



Код: plsql
1.
2.
3.
4.
5.
select tablespace_name, sum(bytes)/1024/1024/1024 GB 
from dba_data_files where tablespace_name='UNDOTBS1' group by tablespace_name;

TABLESPACE_NAME	GB
UNDOTBS1	122,46875



авторUnexpired - Данные, чей возраст не превысил период хранения, определяемый параметром UNDO_RETENTION
у меня UNDO_RETENTION 15 минут. И я не понимаю, чего у меня хранится в Unexpired аж на 124 Гб?
UNDO имеет фиксированный размер.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283739
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможная причина - выставлено RETENTION GUARANTEE
снять параметр и UNEXPIRED будет использоваться повторно?
авторСледует помнить, что при создании UNDO с опцией RETENTION GUARANTEE, экстенты со статусом UNEXPIRED не будут заимствоваться для других транзакций.
Устанавливать эту опцию можно, если планируется использовать целостное чтение или если планируется использовать FLASHBACK.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283747
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел бы для себя прояснить один важный момент.
Из прочитанного я понял, что если стоит RETENTION GUARANTEE,
экстенты со статусом UNEXPIRED не будут заимствоваться для других транзакций.
Т.е. вообще никогда?!

даже если у меня 100 ТБ UNDO, и 99,99 UNEXPIRED
c RETENTION GUARANTEE оно так и останется всегда 99,99 UNEXPIRED?????
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283814
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкин,

Я бы тебе посоветовал читать документацию, а не художественную литературу.
По теме - твоё мыслезаключение неверно.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283822
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...жвачкин,

Я бы тебе посоветовал читать документацию, а не художественную литературу.
По теме - твоё мыслезаключение неверно.
я натыкаюсь на ошибку ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
при том, что UNDO увеличил до 120 Гб и продолжаю увеличивать и вижу всегда одну и ту же картину:
UNEXPIRED занимает всего под 99%
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283837
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкинпроходил мимо...жвачкин,

Я бы тебе посоветовал читать документацию, а не художественную литературу.
По теме - твоё мыслезаключение неверно.
я натыкаюсь на ошибку ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
при том, что UNDO увеличил до 120 Гб и продолжаю увеличивать и вижу всегда одну и ту же картину:
UNEXPIRED занимает всего под 99%И в v$transaction, по USED_UBLK не видно кто сожрал undo?
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283893
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurduжвачкинпропущено...

я натыкаюсь на ошибку ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
при том, что UNDO увеличил до 120 Гб и продолжаю увеличивать и вижу всегда одну и ту же картину:
UNEXPIRED занимает всего под 99%И в v$transaction, по USED_UBLK не видно кто сожрал undo?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> select sum(T.USED_UBLK) from v$transaction t;

SUM(T.USED_UBLK)
----------------
           18514


по v$transaction я вижу только 18514.

я хотел бы узнать, кто занимает всё место в UNEXPIRED?
буду очень рад, если запрос покажете.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283904
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкин,

v$transaction содержит не все транзакции в БД. Под sys вытащи запрос вьюхи gv_$transaction и убери фильтры.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283926
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-жвачкин,

v$transaction содержит не все транзакции в БД. Под sys вытащи запрос вьюхи gv_$transaction и убери фильтры.

Код: plsql
1.
select sum(T.USED_UBLK) from gv_$transaction t;

и
Код: plsql
1.
select sum(T.USED_UBLK) from v$transaction t;


показывают одинаковый результат...
одна сессия (выполняла некий отчёт) использовала 40000 блоков UNDO. Это 40000 * 8КБ = 312 МБ.

честно, не понял, что в EXPIRED у меня там на 120 ГБ?
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283931
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкин,

1. почитай всё же документацию. на предмет, что есть UNEXPIRED.
2. тебе же сказали, УБЕРИ из запроса в gv_$transaction фильтры.
3. так у тебя в EXPIRED или UNEXPIRED 120Gb?
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283963
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...жвачкин,

1. почитай всё же документацию. на предмет, что есть UNEXPIRED.
2. тебе же сказали, УБЕРИ из запроса в gv_$transaction фильтры.
3. так у тебя в EXPIRED или UNEXPIRED 120Gb?

2. УБЕРИ из запроса в gv_$transaction фильтры - что сие значит?
можно на примере показать?
3. так у тебя в EXPIRED или UNEXPIRED 120Gb? :
у меня в UNEXPIRED 120Gb
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39283991
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкин, ты для начала скажи, включено ли у тебя RETENTION GUARANTEE. Потому как: For fixed- size undo tablespaces, the system automatically tunes for the maximum possible undo retention period, based on undo tablespace size and usage history, and ignores UNDO_RETENTION unless retention guarantee is enabled.
Поэтому обычно нормально иметь много UNEXPIRED экстентов, т.к. они реюзаются. Ну и надо смотреть V$UNDOSTAT.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284003
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurduжвачкин, ты для начала скажи, включено ли у тебя RETENTION GUARANTEE. Потому как: For fixed- size undo tablespaces, the system automatically tunes for the maximum possible undo retention period, based on undo tablespace size and usage history, and ignores UNDO_RETENTION unless retention guarantee is enabled.
Поэтому обычно нормально иметь много UNEXPIRED экстентов, т.к. они реюзаются. Ну и надо смотреть V$UNDOSTAT.

Уважаемый wurdu, от всей души благодарю вас за ответ!
Да, действительно использую RETENTION GUARANTEE.

что посоветуете, чтобы избежать ошибок ORA-30036? Убрать RETENTION GUARANTEE или продолжать увеличивать UNDO?
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284010
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. читать ты тоже не умеешь

Чтой-то на баг похоже, скорее всего пересоздавать его придется
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284021
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровТ.е. читать ты тоже не умеешь

Чтой-то на баг похоже, скорее всего пересоздавать его придется
что касается стендбая, то там в undo битые блоки обнаружились.
на рабочей базе битые блоки в Undo не находились.
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284040
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкинwurduжвачкин, ты для начала скажи, включено ли у тебя RETENTION GUARANTEE. Потому как: For fixed- size undo tablespaces, the system automatically tunes for the maximum possible undo retention period, based on undo tablespace size and usage history, and ignores UNDO_RETENTION unless retention guarantee is enabled.
Поэтому обычно нормально иметь много UNEXPIRED экстентов, т.к. они реюзаются. Ну и надо смотреть V$UNDOSTAT.

Уважаемый wurdu, от всей души благодарю вас за ответ!
Да, действительно использую RETENTION GUARANTEE.

что посоветуете, чтобы избежать ошибок ORA-30036? Убрать RETENTION GUARANTEE или продолжать увеличивать UNDO?
Ну для начала надо понять, с какой целью стоит RETENTION GUARANTEE. В V$UNDOSTAT есть TUNED_UNDORETENTION из которого ддолжна быть ясна природа UNEXPIRED. А ORA-30036 вообще может быть связана с чем-то другим, типа Undone .
Но если каких-то очень специфичных причин нет держать RETENTION GUARANTEE на 15 минут, то зачем оно включено?
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284063
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurduжвачкинпропущено...


Уважаемый wurdu, от всей души благодарю вас за ответ!
Да, действительно использую RETENTION GUARANTEE.

что посоветуете, чтобы избежать ошибок ORA-30036? Убрать RETENTION GUARANTEE или продолжать увеличивать UNDO?
Ну для начала надо понять, с какой целью стоит RETENTION GUARANTEE. В V$UNDOSTAT есть TUNED_UNDORETENTION из которого ддолжна быть ясна природа UNEXPIRED. А ORA-30036 вообще может быть связана с чем-то другим, типа Undone .
Но если каких-то очень специфичных причин нет держать RETENTION GUARANTEE на 15 минут, то зачем оно включено?
раз в неделю с рабочей базы выгружается дамп пользовательской схемы на пару террабайт.
без RETENTION GUARANTEE валилось с ошибкой snapshot too old насколько помню. поэтому выставили гарантировать.

Код: plsql
1.
2.
3.
4.
5.
SQL> select min(t.TUNED_UNDORETENTION) from v$undostat t;

MIN(T.TUNED_UNDORETENTION)
--------------------------
                    141074


это 39 часов....
теперь понятно...
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284077
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новый мир мне открыли))))
оказывается жил с undo retention в несколько суток и не знал об этом...
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284079
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
flashback я так понимаю для undo в SEOne также можно смело снимать галку?
ведь в этой редакции flasback не доступен как опция...
...
Рейтинг: 0 / 0
Как выявить что находится в UNDO UNEXPIRED?
    #39284096
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкинтеперь понятно...
*рукалицо*
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как выявить что находится в UNDO UNEXPIRED?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]