Страница "TABLESPACE SIZE"
На странице отображается информация о размере табличных пространств/файлах данных базы данных Oracle, свободном месте в них
Переключатель "Query using"
Определяет используемые запросы для формирования дерева "Tree tablespace" и информации о свободном месте в табличных пространствах в списке "Size object"
Дерево "Tree tablespace"
Обновление списке осуществляется при нажатии кнопки "TABLESPACE SIZE" или кнопки "Refresh tree"
-
Переключатель "Quick (do not use dba_free_space)"
select t.tablespace_name,
t.contents,
t.status
from DBA_TABLESPACES t
order by t.contents, t.tablespace_name
-
Переключатель "Full (use dba_free_space)"
select t.tablespace_name,
t.contents,
t.status,
case when t.CONTENTS<>'TEMPORARY' then
(select count(*)||' | '||
round(sum(bytes)/1024/1024/1024,2)||' GB'
from DBA_DATA_FILES d
where d.TABLESPACE_NAME=t.TABLESPACE_NAME)
else
(select count(*)||' | '||
round(sum(bytes)/1024/1024/1024,2)||' GB'
from DBA_TEMP_FILES d
where d.TABLESPACE_NAME=t.TABLESPACE_NAME)
end "COUNT|ALLOC"
from DBA_TABLESPACES t
order by t.contents, t.tablespace_name
Cвободное место в табличных пространствах
Для просмотра общей информации о всех табличных пространствах, в дереве "Tree tablespace" выделить узел "TABLESPACE"
-
Quick (do not use dba_free_space)
select a."name" "tablespace_name",
a."count",
round(a."all",2) "MAX",
round(a."alloc"/1024,4) "megs_alloc",
round(a."used"/1024,4) "megs_used",
a."all" - a."used" "megs_free",
round(((a."all"-a."alloc"+(a."alloc"-a."used"))/a."all")*100,2) "FREE", round(((a."all"-a."alloc"+(a."alloc"-a."used"))/a."all")*100) "FREE1",
a."counts",
a."StatusTS"
from (
select tablespace_name "name",
count(file_name) "count",
round(sum(DECODE(autoextensible,'YES',maxbytes,'NO',bytes))/1024/1024) "all",
round(sum(bytes)/1024/1024) "alloc",
round(sum(user_bytes)/1024/1024) "used",
count(*) "counts"
,(select status from DBA_TABLESPACES dt where dt.TABLESPACE_NAME = d.tablespace_name) "StatusTS"
from DBA_DATA_FILES d
group by tablespace_name
union all
SELECT h.tablespace_name "name",
count(f.FILE_NAME ) "count",
ROUND (SUM (DECODE(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) / 1048576) "all",
ROUND (SUM (h.bytes_free + h.bytes_used) / 1048576) "alloc",
ROUND (SUM (NVL (p.bytes_used, 0)) / 1048576) "used",
count(*) "Counts"
,(select status from DBA_TABLESPACES dt where dt.TABLESPACE_NAME = h.tablespace_name) "StatusTS"
FROM sys.v_$TEMP_SPACE_HEADER h,
sys.v_$Temp_extent_pool p,
dba_temp_files f
WHERE p.file_id(+) = h.file_id
AND p.tablespace_name(+) = h.tablespace_name
AND f.file_id = h.file_id
AND f.tablespace_name = h.tablespace_name
GROUP BY h.tablespace_name) a
order by 7
-
Full (use dba_free_space!)
SELECT a.tablespace_name,
ROUND (maxbytes / 1024/1024) MAX,
ROUND (a.bytes_alloc /1073741824,4) megs_alloc,
ROUND ( (a.bytes_alloc - NVL (b.bytes_free,0)) / 1073741824,4) megs_used,
round((maxbytes - (a.bytes_alloc - NVL(b.bytes_free, 0)) + NVL(b.bytes_free, 0))/1024/1024,2) megs_free,
ROUND(100-(((a.bytes_alloc - NVL(b.bytes_free, 0)) / 1024 / 1024)/ (maxbytes / 1024 / 1024))*100) "FREE",
ROUND(100-(((a.bytes_alloc - NVL(b.bytes_free, 0)) / 1024 / 1024)/ (maxbytes / 1024 / 1024))*100,2) "FREE1",
a."counts"
,(select status from DBA_TABLESPACES dt where dt.TABLESPACE_NAME = a.tablespace_name) "StatusTS"
FROM ( SELECT f.tablespace_name,
SUM (f.bytes) bytes_alloc,
SUM ( DECODE (f.autoextensible,'YES', f.maxbytes,'NO', f.bytes))maxbytes,
count(*) "counts"
FROM dba_data_files f
GROUP BY tablespace_name) a,
( SELECT f.tablespace_name, SUM (f.bytes) bytes_free
FROM dba_free_space f
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name(+)
UNION ALL
SELECT h.tablespace_name,
ROUND (SUM (DECODE(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) / 1073741824,4) MAX,
ROUND (SUM (h.bytes_free + h.bytes_used) / 1073741824,4) megs_alloc,
ROUND (SUM (NVL (p.bytes_used, 0)) / 1073741824,2) megs_used,
ROUND (SUM ( (h.bytes_free + h.bytes_used) - NVL (p.bytes_used, 0))/ 1073741824,4)megs_free,
ROUND(100-(ROUND (SUM (h.bytes_free + h.bytes_used) / 1048576))/(ROUND (SUM (DECODE(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) / 1048576))*100,4) "FREE",
ROUND(100-(SUM (NVL (p.bytes_used, 0)) / 1048576)/(SUM (h.bytes_free + h.bytes_used) / 1048576)*100,4) "FREE1",
count(*) "counts"
,(select status from DBA_TABLESPACES dt where dt.TABLESPACE_NAME = h.tablespace_name) "StatusTS"
FROM sys.v_$TEMP_SPACE_HEADER h,
sys.v_$Temp_extent_pool p,
dba_temp_files f
WHERE p.file_id(+) = h.file_id
AND p.tablespace_name(+) = h.tablespace_name
AND f.file_id = h.file_id
AND f.tablespace_name = h.tablespace_name
GROUP BY h.tablespace_name ORDER BY 7
При выделении в дереве "Tree tablespace" узлов PERMANENT (пространства данных), TEMPORARY (табличные пространства для временных данных), UNDO (табличные пространства UNDO) в списке "Size object" выводится информация о файлах данных и их размере.
При выделении в дереве "Tree tablespace" имени табличного пространства, в списке "Size object" выводится информация о файлах данных указанного пространства
Структура данных в списке "Size object"
-
Name - имя табличного пространства/файла данных
-
Max - максимально возможный размер в МБ
-
Free - свободно в МБ
-
Progress bar - графическое отображение свободного места в процентах
Подробная информация о объекте
1. При выделении в списке "Size object" табличного пространства, в блоке "Tablespace info" выводится следующая информация из представления DBA_TABLESPACES:
-
TABLESPACE_NAME
-
BLOCK_SIZE
-
STATUS
-
CONTENTS
-
LOGGING
-
FORCE_LOGGING
-
EXTENT_MANAGEMENT
-
SEGMENT_SPACE_MANAGEMENT
-
DEF_TAB_COMPRESSION
-
RETENTION
select t.TABLESPACE_NAME "tablespace_name",
t.BLOCK_SIZE "block_size",
t.STATUS "Status",
t.CONTENTS "Contents",
t.LOGGING "Logging",
t.FORCE_LOGGING "Force",
t.EXTENT_MANAGEMENT "EXTENT_MANAGEMENT",
t.SEGMENT_SPACE_MANAGEMENT "SEGMENT_SPACE_MANAGEMENT",
t.DEF_TAB_COMPRESSION "Compression",
t.retention "retention"
from DBA_TABLESPACES t where tablespace_name=$$tablespace_name
При выделении в дереве "Tree tablespace" узлов PERMANENT (пространства данных), TEMPORARY (табличные пространства для временных данных), UNDO (табличные пространства UNDO) в списке "Size object" выводится информация о файлах данных и их размере.
При выделении в дереве "Tree tablespace" имени табличного пространства, в списке "Size object" выводится информация о файлах данных указанного пространства
Структура данных в списке "Size object"
-
Name - имя табличного пространства/файла данных
-
Max - максимально возможный размер в МБ
-
Free - свободно в МБ
-
Progress bar - графическое отображение свободного места в процентах
Дополнительная информация о объекте
1. В списке "Size object" представлена информация по всем табличным пространствам
В блоке "Tablespace info"
select t.TABLESPACE_NAME "tablespace_name",
t.BLOCK_SIZE "block_size",
t.STATUS "Status",
t.CONTENTS "Contents",
t.LOGGING "Logging",
t.FORCE_LOGGING "Force",
t.EXTENT_MANAGEMENT "EXTENT_MANAGEMENT",
t.SEGMENT_SPACE_MANAGEMENT "SEGMENT_SPACE_MANAGEMENT",
t.DEF_TAB_COMPRESSION "Compression",
t.retention "retention"
from DBA_TABLESPACES t
where tablespace_name=$$TABLESPACE_NAME
2. В списке "Size object" представлена информация по всем файлам данных
В блоке "Tablespace info"
Переключатель "Quick (do not use dba_free_space)"
select df.FILE_ID,
round(df.BYTES/1024/1024) "SizeMB",
round(df.MAXBYTES/1024/1024) "MaxMB",
round(df.USER_BYTES/1024/1024) "UsedMB",
round( df.BYTES - df.USER_BYTES ) "FreeAlloc",
round(df.MAXBYTES/1024/1024) - round(df.BYTES/1024/1024) "FreeDF",
'-' "FreeTS"
from DBA_DATA_FILES df
where file_name = $$FILE_NAME
Переключатель "Full (use dba_free_space)"
select df.FILE_ID,
round(df.BYTES/1024/1024,4) "SizeMB",
round(df.MAXBYTES/1024/1024,4) "MaxMB",
round((df.BYTES - sum(fs.BYTES))/1024/1024,4) "UsedMB",
round(sum(fs.BYTES/1024/1024),4) "FreeAlloc",
round((df.MAXBYTES-(df.BYTES-sum(fs.BYTES)))/1024/1024,4) "FreeDF",
'-' "FreeTS"
from DBA_DATA_FILES df,
DBA_FREE_SPACE fs
where file_name = $$FILE_NAME
and fs.FILE_ID= df.FILE_ID
group by df.FILE_ID, df.BYTES, df.MAXBYTES
Страница "TABLESPACE INFO"
Подробная информация о табличных пространствах, статистика по изменению размера пространств.
Base information
Общая информация о табличном пространстве, список файлов в него входящих
select t.STATUS,
t.CONTENTS,
t.LOGGING,
t.FORCE_LOGGING,
t.RETENTION,
t.BIGFILE
from DBA_TABLESPACES t
where t.TABLESPACE_NAME = $$TABLESPACE_NAME
select file_name,
round((bytes)/1073741824, 3) "Allocate",
case when maxbytes>0 then
round((maxbytes)/1073741824,3) else
round((bytes)/1073741824,3)
end as "MaxSize"
from DBA_DATA_FILES
where tablespace_name =$$TABLESPACE_NAME
order by bytes ,lpad(file_id,4) desc
Resize tablespace info
Статистика по изменению размера выбранного табличного пространства (используются данные Oracle diagnostics pack)
SELECT BEGIN_INTERVAL_TIME,
END_INTERVAL_TIME,
B.NAME,
ROUND((TABLESPACE_SIZE*8*1024)/1024/1024/1024,2)||' | '||
ROUND((TABLESPACE_MAXSIZE*8*1024)/1024/1024/1024,2) "ALLOC",
ROUND((TABLESPACE_USEDSIZE*8*1024)/1024/1024/1024,2) USEDSIZE
FROM DBA_HIST_TBSPC_SPACE_USAGE A
JOIN V$TABLESPACE B ON (A.TABLESPACE_ID = B.TS#)
JOIN DBA_HIST_SNAPSHOT C ON (A.SNAP_ID = C.SNAP_ID)
WHERE NAME = $$TABLESPACE_NAME
ORDER BY 1 DESC
select SIZE_MB_MIN,
SIZE_MB_MAX,
MAXSIZE_MB,
MIN_USEDSIZE_MB,
MAX_USEDSIZE_MB,
DAYS,
(MAXSIZE_MB-MAX_USEDSIZE_MB) "Free",
Round((SIZE_MB_MAX-SIZE_MB_MIN)/nvl(DAYS,1)) "DAY_RES"
from
(SELECT Min(ROUND((TABLESPACE_SIZE*8*1024)/1024/1024/1024)) SIZE_MB_MIN,
Max(ROUND((TABLESPACE_SIZE*8*1024)/1024/1024/1024)) SIZE_MB_MAX,
Max(ROUND((TABLESPACE_MAXSIZE*8*1024)/1024/1024/1024)) MAXSIZE_MB,
min(ROUND((TABLESPACE_USEDSIZE*8*1024)/1024/1024/1024)) MIN_USEDSIZE_MB,
Max(ROUND((TABLESPACE_USEDSIZE*8*1024)/1024/1024/1024)) MAX_USEDSIZE_MB,
trunc(Max(END_INTERVAL_TIME))- trunc(min(BEGIN_INTERVAL_TIME)) DAYS
FROM DBA_HIST_TBSPC_SPACE_USAGE A
JOIN V$TABLESPACE B ON (A.TABLESPACE_ID = B.TS#)
JOIN DBA_HIST_SNAPSHOT C ON (A.SNAP_ID = C.SNAP_ID)
WHERE NAME = $$TABLESPACE_NAME)
Resize database info
Статистика по изменению размера всех табличных пространств в базе данных (используются данные Oracle diagnostics pack)
Колонки
-
Name - имя табличного пространства
-
Max size - максимальный размер табличного пространства
-
Min alloc - минимальный размер фалов данных
-
Max alloc - максимальный размер фалов данных
-
Min data - минимальный объем данных в пространстве
-
Max data - максимальный объем данных в пространстве
-
Day mon - количество дней за которые собрана статистика
-
Free - свободно в пространстве (ГБ)
-
DayRes - изменение размера пространства в среднем в день
-
Day - количество дней на которые, ориентировочно, хватит свободного места
select Name,
MAXSIZE_MB,
SIZE_MB_MIN,
SIZE_MB_MAX,
MIN_USEDSIZE_MB,
MAX_USEDSIZE_MB,
DAYS,
(MAXSIZE_MB-MAX_USEDSIZE_MB) "Free",
Round((SIZE_MB_MAX-SIZE_MB_MIN)/nvl(DAYS,1)) "DAY_RES"
from
(SELECT NAME,
Min(ROUND((TABLESPACE_SIZE*8*1024)/1024/1024/1024,2)) SIZE_MB_MIN,
Max(ROUND((TABLESPACE_SIZE*8*1024)/1024/1024/1024,2)) SIZE_MB_MAX,
Max(ROUND((TABLESPACE_MAXSIZE*8*1024)/1024/1024/1024,2)) MAXSIZE_MB,
min(ROUND((TABLESPACE_USEDSIZE*8*1024)/1024/1024/1024,2)) MIN_USEDSIZE_MB,
Max(ROUND((TABLESPACE_USEDSIZE*8*1024)/1024/1024/1024,2)) MAX_USEDSIZE_MB,
trunc(Max(END_INTERVAL_TIME))- trunc(min(BEGIN_INTERVAL_TIME)) DAYS
FROM DBA_HIST_TBSPC_SPACE_USAGE A
JOIN V$TABLESPACE B ON (A.TABLESPACE_ID = B.TS#)
JOIN DBA_HIST_SNAPSHOT C ON (A.SNAP_ID = C.SNAP_ID)
group by name)
order by "DAY_RES" desc
Страница "CREATE TABLESPACE"
Служит для создания табличных пространств в базе данных Oracle
Последовательность создания табличного пространства
-
В блоке "Tablespace type" выбрать тип создаваемого табличного пространства
-
Standard - обычное пространство для хранения данных
-
Temporary - временное табличное пространство
-
UNDO - пространство отмены
-
Big - "большое" табличное пространство.
-
-
Tablespace name - имя табличного пространства или "or list" список создаваемых табличных пространств. Одна строчка соответствует имени одного создаваемого пространства
-
Folder - папка на диске сервера в которой будут созданы файлы входящие в табличное пространство
при раскрытии списка, выводится путь для создания файлов БД. Имя файла формируется по маске, где:
$TSNAME - имя пространства из списка "or list"
select file_name, file_id
from DBA_DATA_FILES
where file_id = (select max(file_id)
from DBA_DATA_FILES
)
т.е. извлекается пусть создания последнего файла данных
-
Loging type - флаг по умолчанию для всех создаваемых объектов указывающий на запрет сохранения данных в журналах REDO
-
Compress - флаг по умолчанию для всех создаваемых таблиц в пространстве указывающий на необходимость сжатия данных
-
Temporary group - используется для пространств типа "Temporary". Служит для объединения нескольких пространств в одну группу для повышения производительности работы с временными объектами
-
Storage parameter - параметры файла данных
-
Size [MB] - начальный размер файла данных в мегабайтах
-
Autoextend - включить автоматическое увеличение размера файла данных
-
Next [MB] - значение на которое следует увеличивать размер файла данных
-
Max [MB] - максимальный размер файла данных в мегабайтах
-
-
Кнопки
-
Create tablespace - создать табличные пространства
-
Clear page - очистить страницу
-
Show sql - показать команды SQL для создания табличных пространств
Страница "ADD DATAFILE"
Страница предназначена для массового создания файлов данных в табличных пространствах.
Порядок действий
-
Выделить табличное пространство в которое необходимо добавить файлы данных в дереве "Tablespace list"
Если необходимо создать несколько файлов данных:
-
Установить флаг "Autoname"
-
В поле "Prefix" ввести префикс имени создаваемых файлов
-
В поле "Current max number" ввести текущий максимальный номер файла в выбранном табличном пространстве
-
В поле "Count file" указать количество создаваемых файлов
-
-
В поле "File name" ввести полное имя файла и путь.
В случаи если планируется создание множества файлов данных, то в имени необходимо использовать шаблон:
$PREF - префикс имени, если поле "Prefix" заполнено, то берется данное значение, в противном случаи - это имя табличного пространства
Если autoname = true
$NUM - номер файла, значение формируется в цикле по условию inc(current max number)
Если autoname = false
$NUM = количество файлов в пространстве увеличенное на 1
-
Указать начальный размер создаваемых файлов в поле "Size [MB]", например 100 (значение в МБ)
-
Если необходимо разрешить автоматическое расширение файлов данных установить переключатель "Autoextend"
-
Указать величину на которую база будет увеличивать размер файлов данных в поле "Next [MB]"
-
Указать максимальный размер файла данных в поле "Max [MB]" или оставить 0 - maxsize
-
Для просмотра списка сгенерированных команд нажать кнопку "Show SQL"
ля создания файлов нажать кнопку "Create new datafile"
Страница "ALTER DATAFILE"
Страница предназначена для изменения параметров текущих файлов данных в табличных пространствах
Resize datafile
Последовательность действий
-
В дереве "Tablespace list" выделить табличное пространство
-
В списке "Datafile list" установить переключатель напротив файлов данных размер которых необходимо изменить
-
В поле "New size datafile" ввести новый размер
-
Нажать кнопку "Apply"
Новый размер файлов в случаи успешного выполнения операции отобразится в списке "Datafile list" после завершения операции.
При возникновении ошибки, процесс остановится. Текст ошибки будет указан в поле "Status"
Страница "Move"
Страница предназначена для массового перемещения объектов как внутри одного табличного пространства, так и в другое табличное пространства для оптимизации структуры хранения данных и повышения производительности системы ввода/вывода.
Последовательность действий:
-
На странице "TABLESPACE" выделить табличные пространства объекты из которых необходимо перенести
или
-
На странице "SCHEMA" выделить схемы объекты которых необходимо перенести
-
Нажать кнопку "Load list object" для отображения списка объектов в выделенных пространствах
-
В списке "A list of database objects" выбрать объекты который необходимо перенести
Из контекстного меню окна возможно массовое выделение объектов определенных типов
-
Выбрать табличное пространство в которое необходимо перенести выбранные объекты в поле "Transfer to"
-
Указать уровень параллельности выполнения операции в поле "Parallel"
-
Указать дополнительные опции
-
Compress - сжимать объекты
-
Nologging - запретить логирование операции в журналах REDO
-
Compute statistics - обновить статистику
-
Online - выполнять операцию без блокировки перемещаемого объекта.
-
Примеры сгенерированных команд:
ALTER TABLE "SYS"."AQ$_SCHEDULER$_REMDB_JOBQTAB_L" MOVE TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SCHEDULER$_REMDB_JOBQTAB_S" MOVE TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SCHEDULER_FILEWATCHER_QT_S" MOVE TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SCHEDULES" MOVE TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SUBSCRIBER_LWM" MOVE PARTITION "SYS_P7" TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SUBSCRIBER_LWM" MOVE PARTITION "SYS_P12" TABLESPACE SYSTEM PARALLEL 10
ALTER TABLE "SYS"."AQ$_SUBSCRIBER_LWM" MOVE PARTITION "SYS_P16" TABLESPACE SYSTEM PARALLEL 10
ALTER INDEX "SYS"."HS$_CLASS_INIT_PK" REBUILD ONLINE TABLESPACE SYSTEM PARALLEL 10 COMPUTE STATISTICS
ALTER INDEX "SYS"."HS$_CLASS_INIT_UK1" REBUILD ONLINE TABLESPACE SYSTEM PARALLEL 10 COMPUTE STATISTICS
ALTER INDEX "SYS"."HS$_FDS_CLASS_PK" REBUILD ONLINE TABLESPACE SYSTEM PARALLEL 10 COMPUTE STATISTICS
ALTER INDEX "SYS"."HS$_FDS_CLASS_UK1" REBUILD ONLINE TABLESPACE SYSTEM PARALLEL 10 COMPUTE STATISTICS
ALTER TABLE "SYS"."KOTAD$" MOVE LOB(SYS_NC_ROWINFO$) STORE AS (TABLESPACE SYSTEM) PARALLEL 10
ALTER TABLE "SYS"."KOTTBX$" MOVE LOB(SYS_NC_ROWINFO$) STORE AS (TABLESPACE SYSTEM) PARALLEL 10
ALTER TABLE "SYS"."TABCOMPART$" MOVE LOB(BHIBOUNDVAL) STORE AS (TABLESPACE SYSTEM) PARALLEL 10
-
Запуск процесса переноса объектов выполняется нажатием кнопки "RUN"
-
Для остановки процесса нажать кнопку "STOP"
-
Для просмотра списка выполняемых команд нажать кнопку "Show SQL"