Краткое изложение распространенных примеров операций Oracle
Посмотреть размер табличного пространства
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
Просмотр имени и размера физических файлов табличного пространства.
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
Просмотр имени и размера сегмента отката
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
Посмотреть управляющий файл
SELECT NAME FROM v$controlfile;
Просмотр файлов журналов
SELECT MEMBER FROM v$logfile;
Просмотр использования табличного пространства
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
select a.tablespace_name,
a.total_G,
b.fee_G,
(a.total_G - b.fee_G) / a.total_G as "used%"
from (select a.tablespace_name,
sum(a.bytes) / 1024 / 1024 / 1024 As total_G
from dba_data_files a
group by a.tablespace_name) a
left join (select a.tablespace_name,
sum(a.bytes) / 1024 / 1024 / 1024 as fee_G
from dba_free_space a
group by a.tablespace_name) b
on a.tablespace_name = b.tablespace_name
order by 4 desc;
select a.tablespace_name,
a.bytes / 1024 / 1024 "Sum MB",
(a.bytes - b.bytes) / 1024 / 1024 "used MB",
b.bytes / 1024 / 1024 "free MB",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used %"
from (select tablespace_name, sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes, max(bytes) largest
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by ((a.bytes - b.bytes) / a.bytes) desc;
Просмотр объектов базы данных
SELECT owner, object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner, object_type, status;
Посмотреть версию базы данных
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
Просмотр даты создания и метода архивации базы данных
SELECT created, log_mode, log_mode FROM v$database;
Использование временного табличного пространства
Select f.tablespace_name,
sum(f.bytes_free + f.bytes_used) / 1024 / 1024 / 1024 "total GB",
sum((f.bytes_free + f.bytes_used) - nvl(p.bytes_used, 0)) / 1024 / 1024 / 1024 "Free GB",
sum(nvl(p.bytes_used, 0)) / 1024 / 1024 / 1024 "Used GB"
from sys.v_$temp_space_header f,
dba_temp_files d,
sys.v_$temp_extent_pool p
where f.tablespace_name(+) = d.tablespace_name
and f.file_id(+) = d.file_id
and p.file_id(+) = d.file_id
group by f.tablespace_name;
Специально для использования временного табличного пространства определенного SID.
select b.tablespace,
b.segfile#,
b.segblk#,
b.blocks,
b.blocks * 32 / 1024 / 1024,
a.sid,
a.serial#,
a.username,
a.osuser,
a.status,
c.sql_text,
b.contents
from v$session a, v$sort_usage b, v$sql c
where a.saddr = b.session_addr
and a.sql_address = c.address(+)
order by b.blocks desc;
Просмотр имени табличного пространства, идентификатора, места хранения файлов, начального размера
select tablespace_name, file_id, file_name, bytes/1024/1024/1024
from dba_data_files
order by file_id;
Изменить размер табличного пространства
alter database datafile '/u01/app/oracle/oradata/prod/useSpacer.dbf' resize 1000M;
Изменить размер табличного пространства: добавить файлы данных
alter tablespace USERSPACE add datafile '/u01/app/oracle/oradata/prod/USERSPACE2.dbf' size 500M autoextend on next 10M maxsize 20G;;
Создать пользователя
create user smart identified by smart default tablespace MAODOUDATA temporary tablespace MAODOUTEMP;
Создать файл данных
create tablespace MAODOUDATA datafile '/u01/app/oracle/oradata/prod/data_01.dbf'
size 32g autoextend on next 10M maxsize 2048m;
Создать временное табличное пространство
create temporary tablespace MAODOUTEMP tempfile '/u01/app/oracle/oradata/prod/temp_01.dbf'
size 20m
autoextend on next 10M maxsize 50m;
Создать индексное табличное пространство
create tablespace MAODOUINDEX datafile '/u01/app/oracle/oradata/prod/index.dbf'
size 20g
autoextend on next 10M maxsize 1024m;
Изменить табличное пространство пользовательских данных
select 'alter table '|| table_name ||' move tablespace MAODOUDATA;' from user_tables;
Изменить табличное пространство пользовательского индекса
select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes;
Удалить пользовательские и каскадные связи также удаляются.
drop user 用户名称 cascade;
Удалить табличное пространство
drop tablespace USERSPACE;
Удалите табличное пространство — и соответствующие файлы табличного пространства также будут удалены.
drop tablespace 表空间名称 including contents and datafiles cascade constraint;
Просмотр текущего каталога журнала архива
SQL> show parameter recovery
Изменить каталог журнала архива
SQL> alter system set db_recovery_file_dest='/u01/app/oracle/archivelog' scope=spfile;
Изменить размер каталога журнала архива
SQL> alter system set db_recovery_file_dest_size=4096m scope=spfile;
Проверьте статус образца Oracle
select instance_name,host_name,startup_time,status,database_status from v$instance;
Проверьте статус онлайн-журнала Oracle
select group#,status,type,member from v$logfile;
Проверьте состояние табличного пространства Oracle
select tablespace_name,status from dba_tablespaces;
Проверьте состояние всех файлов данных Oracle
select name,status from v$datafile;
Разблокируйте права пользователя-администратора
alter user scott account unlock;
Блокировка прав пользователя-администратора
alter user scott account lock;
монитор
Начать мониторинг
SQL>lsnrctl начать
остановить мониторинг
SQL>lsnrctl остановить
Просмотр состояния мониторинга
SQL>lsnrctl status
Запустить базу данных
SQL>запуск,
остановка базы данных
SQL>завершение немедленного
удаленного подключения к базе данных
SQL>sqlplus /nolog
SQL>conn system/oracle@ip:port/sid, поскольку
запуск sysdba напрямую
запускает сценарий базы данных
dbstart
Изменить количество подключений к базе данных
Количество подключений
Изменить количество подключений
изменить систему установить процессы = 1000 область = spfile;
немедленное завершение работы;
запуск;
просмотреть текущее количество подключений пользователя
. выбрать count(*) из sys.v_$session;
Запустите экземпляр Oracle, используя pfile
Использование примера pfile oracle
lsnrctl start
sqlplus /nolog
conn user@instance в качестве пароля sysdba
создайте spfile из pfile='/Oracle/instance/pfile/init.ora.789456123';
запуск
Просмотр операторов таблицы блокировки Oracle
select object_name, machine, s.sid, s.serial#
from v$locked_object l, dba_objects o, v$session s
where l.object_id = o.object_id
and l.session_id = s.sid;
Метод таблицы разблокировки Oracle
ALTER system kill session 'sid, serial#';
或
ALTER system kill session 'sid, serial#' immediate;
如:ALTER system kill session '324, 23212';
or
ALTER system kill session '324, 23212' immediate;