Вторник, 16.04.2024, 22:02
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 209

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Системное администрирование » Справочные материалы

ORA-1652: unable to extend temp segment by 128 in tablespace TEMP

ORA-1652: unable to extend temp segment by 128 in tablespace TEMP


1. Ищем имя датафайла(оф) :

SQL> select file_name , TABLESPACE_NAME from DBA_TEMP_FILES;

/u01/oradata/orcl/temp01.dbf   TEMP

2. Проверяем есть ли свободное место в сегментах TEMP

SQL> SELECT   A.tablespace_name tablespace, D.mb_total,
SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM     v$sort_segment A,
(
SELECT   B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
FROM     v$tablespace B, v$tempfile C
WHERE    B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE    A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;



TABLESPACE                        MB_TOTAL    MB_USED    MB_FREE
——————————-              ———-            ———-           ———-
TEMP                                     1024              1012              12


Свободно 12 Мб
.
3. Решение проблемы


a) Изменяем размер табличного пространства TEMP

SQL> ALTER DATABASE TEMPFILE ‘/u01/oradata/orcl/temp01.dbf’ RESIZE 3072M;

b) Добавляем датафайл в табличное простанство TEMP


SQL> ALTER TABLESPACE TEMP ADD TEMPFILE ‘/u01/oradata/orcl/temp02.dbf’
SIZE 1024M REUSE AUTOEXTEND ON NEXT 50M  MAXSIZE 1024M
;

Ищем корень проблемы


1.  Анализируем использование сегментов временного табличного пространства сессиями

SQL> SELECT   S.sid || ‘,’ || S.serial# sid_serial, S.username, S.osuser, P.spid, S.module,
P.program, SUM (T.blocks) * TBS.block_size / 1024 / 1024 mb_used, T.tablespace,
COUNT(*) statements
FROM     v$sort_usage T, v$session S, dba_tablespaces TBS, v$process P
WHERE    T.session_addr = S.saddr
AND      S.paddr = P.addr
AND      T.tablespace = TBS.tablespace_name
GROUP BY S.sid, S.serial#, S.username, S.osuser, P.spid, S.module,
P.program, TBS.block_size, T.tablespace
ORDER BY mb_used;


2. Ищем SQL наиболее сильно использующий TEMP

SQL> SELECT  S.sid || ‘,’ || S.serial# sid_serial, S.username, Q.hash_value, Q.sql_text,
T.blocks * TBS.block_size / 1024 / 1024 mb_used, T.tablespace
FROM    v$sort_usage T, v$session S, v$sqlarea Q, dba_tablespaces TBS
WHERE   T.session_addr = S.saddr
AND     T.sqladdr = Q.address
AND     T.tablespace = TBS.tablespace_name
ORDER BY mb_used;


Источник: http://oracle-ocm.blogspot.com/2010/11/ora-1652-unable-to-extend-temp-segment.html
Категория: Справочные материалы | Добавил: admin (26.06.2012)
Просмотров: 2887 | Комментарии: 3 | Теги: extend segment tablespace | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024