Заметки по ORACLE

Здесь будут собираться часто используемые заклинания для управления СУБД ORACLE.

1. Подключение к БД:

sqlplus /nolog
conn sys/passwors@database as sysdba

shutdown — тормознуть базу корретно (будет ждать завершения всего)
shutdown immediate — тормознуть базу с ролбеком и обрывом всех сессий

startup nomount — запустить не монтирую, можно колдавать с пространствами
startup — запустить, смонтировать и открыть БД

2. Просмотр свободного места в табличных пространствах:

SELECT  free.tablespace_name TABLESPACE, 
    ROUND(files.bytes / 1073741824, 2) gb_total,
    ROUND((files.bytes — free.bytes)  / 1073741824, 2) gb_used,      
    ROUND(free.bytes  / files.bytes * 100) || '%' "%FREE" 
FROM
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space
    GROUP BY tablespace_name
  ) free,
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files 
    GROUP BY tablespace_name
  ) files
WHERE 
  free.tablespace_name = files.tablespace_name;

3. Бывает что SYSAUX забивается под плешку отчетами производительности AWR. Чтобы его зачистить надо выполнить скрипты:

— удаляет всё, связанное с AWR
@?/rdbms/admin/catnoawr.SQL 
— вернёт AWR 
@?/rdbms/admin/catawrtb.SQL

4. Изменение табличного пространства будет выглядеть так (база смонтирована и открыта):

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 100M;