Работа с табличным пространством

set nls_lang=american
sqlplus
sys/manager as sysdba
conn sys/manager as sysdba;

Если удаленный сервер =>
sys/Jupiter!23@JUPITER as sysdba
conn SYS/Jupiter!23@JUPITER AS SYSDBA;

Для РЕЗЕРВНОГО сервера =>
sys/Jupiter!23@RESERV as sysdba
conn SYS/Jupiter!23@RESERV AS SYSDBA;

 

Чтобы sqlplus показывал в удобном виде внутри sqlplus выполнить:

set linesize 200
set pagesize 5000
COLUMN FILE_NAME FORMAT A100
set colsep '|'

 

Получить размер табличных пространств:

select de.tablespace_name
, round(df.bytes/1024/1024,2) "total (mbytes)"
, round(de.bytes/1024/1024,2) "used (mbytes)"
from (select tablespace_name, sum(bytes) bytes from dba_extents group by tablespace_name ) de
, (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) df
where df.tablespace_name=de.tablespace_name
order by de.tablespace_name;

или

select a.TABLESPACE_NAME tablespace_name
, b.BYTES total_bytes
, a.BYTES free_bytes
, round(a.BYTES*100/b.BYTES,2) percent_free
, round((b.BYTES-a.BYTES)*100/b.BYTES,2) percent_used
from (select TABLESPACE_NAME, sum(BYTES) BYTES from dba_free_space group by TABLESPACE_NAME) a,
(select TABLESPACE_NAME, sum(BYTES) BYTES from dba_data_files group by TABLESPACE_NAME) b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME
order by a.TABLESPACE_NAME;


Добавить новый файл к табличному пространству:

(ВНИМАНИЕ: в качестве примера указана БД DOSTAVKA)

Добавляет новый файл для Tablespace DOSTAVKA дополнительный файл размером 500М.

ALTER TABLESPACE DOSTAVKA ADD DATAFILE 'd:\app\product\11.2.0\dbhome_1\database\DOSTAVKA_DOP4.ORA'
SIZE 500M REUSE AUTOEXTEND ON NEXT 500M;

Для удаленного сервера скача делаем команду проверки и потом уже создаем файл (при провере мы увидим сколько файлов базы данных уже создано и где они лежать (Путь) 

(пример для пиццы №1)

SELECT tablespace_name, file_name, status, bytes/1024/1024 “File_Size (MB)”
FROM dba_data_files
WHERE tablespace_name LIKE 'PIZZAN1%'
ORDER BY tablespace_name, file_name;

image-1705746012676.png

ALTER TABLESPACE PIZZAN1 ADD DATAFILE '/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/PIZZAN1_dop1.ora'
SIZE 500M REUSE AUTOEXTEND ON NEXT 500M;

 

Если создали файл по ошибке, не на том табличном пространстве. Например: создали файл с именем FRANCHISE_IDX_DOP5 в табличном пространстве DOSTAVKA.
Если файл не используется, то его можно попробовать удалить командой:
ALTER TABLESPACE DOSTAVKA DROP DATAFILE ‘d:\app\product\11.2.0\dbhome_1\database\FRANCHISE_IDX_DOP5.ORA’;

если команда выполнится успешно (Tablespace altered), но файл останется на месте, то такой файл можно будет удалить вручную после перезагрузки службы OracleSERVICE


Для того чтоб добавить пространство по тому же пути где уже лежат файлы базы в системе вводим команды проверки файлов базы данных. В результате увидим путь где лежат ранее созданные файлы и из размер на диске.

Проверка:

SELECT tablespace_name, file_name, status, bytes
FROM dba_data_files
WHERE tablespace_name LIKE 'DOSTAVKA%'
ORDER BY tablespace_name, file_name;

Проверка в МБ:

SELECT tablespace_name, file_name, status, bytes/1024/1024 “File_Size (MB)”
FROM dba_data_files
WHERE tablespace_name LIKE 'MAINBASE%'
ORDER BY tablespace_name, file_name;


Автоматическая проверка размера дата файла БД

Для автоматической проверки, что заканчивается место в дата файлах можно воспользоваться Инструкцией

 

Перенос файлов базы на другой диск. Переименование файлов базы. 

Заходим в базу с правами sysdba.

set nls_lang=american
sqlplus
sys/manager as sysdba

Отключаем нужные схемы. 

alter tablespace DOMINO_ALCO offline;
alter tablespace DOMINO_ALCO_IDX offline;

Копируем файлы в системе по новому пути, переименовываем если нужно. 

Указываем новые пути и названия для каждого файла базы данных. 

alter tablespace DOMINO_ALCO rename datafile 'c:\app\JUP\oradata\JUPITER\DOMINO_ALCO.ORA' to 'd:\oracle\database\DOMINO_ALCO.ORA';

alter tablespace DOMINO_ALCO rename datafile 'c:\app\JUP\oradata\JUPITER\DOMINO_ALCO_DOP1.ORA' to 'd:\oracle\database\DOMINO_ALCO_DOP1.ORA';

alter tablespace DOMINO_ALCO_IDX rename datafile 'c:\app\JUP\oradata\JUPITER\DOMINO_ALCO_IDX.ORA' to 'd:\oracle\database\DOMINO_ALCO_IDX.ORA';

Запускаем нужные схемы. 

alter tablespace DOMINO_ALCO online;
alter tablespace DOMINO_ALCO_IDX online;

Чтоб удалить старые файлы, нужно выключить службы оракла. 


Система JUPITER                                 www.jupiter.systems                                 (с) 2024г.