Oracle SQL*Plus

Referencia: Blog da Lilian Barroso

Veja também:
SQL*Plus

Para conectar usando o sqlplus:

sqlplus USUARIO/SENHA@HOST/INSTANCIA
Exemplo: sqlplus SYSTEM/SENHA@192.168.0.2/ORCL

Abaixo, alguns comandos simples e poderosos para as coisas do dia-a-dia:

DATAFILES E TABLESPACES

Verificando o tamanho total de um banco de dados:
select sum(bytes)1024/1024 as tamanho_mb
from dba_segments;

Ver datafiles por Tablespace
column file_name format a70
select file_name, bytes/1024/1024
from dba_data_files
where tablespace_name = ‘XXXY’
/* substituir pelo nome da tablespace */
order by file_name;

Acrescentando datafiles
alter tablespace TABLESPACE /* substituir pela tablespace desejada */
add datafile ‘/diretorio/datafile.dbf’ /* substituir pelo endereço/datafile */
size 2000m;

Alterando o tamanho de um datafile:
alter database datafile  ‘/desenv/data/u01/oradata/tbs_idx.dbf’ resize 1000m;

Verificando o tipo de informação que fica em uma determinada tablespace:
select DISTINCT (segment_name),
segment_type
from dba_segments
where tablespace_name = ‘&tablespace’;

DADOS DE SESSÕES

Ver tempo desde a última atividade:
set lines 100 pages 999
select username,
floor(last_call_et / 60) ‘minutos’,
status
from   v$session
where  username is not null
order by last_call_et
/

Ver sessões organizadas por tempo de logon:
set lines 100 pages 999
col ID        format a15
col osuser    format a15
col login_time    format a14
select     username,
osuser,
sid || ‘,’ || serial# ‘ID’,
status,
to_char(logon_time, ‘hh24:mi dd/mm/yy’) login_time,
last_call_et
from    v$session
where    username is not null
order    by login_time
/

Mostrar o sql corrente do usuário:
Select t.sql_text
from   v$sqltext t, v$sqlarea a
where  (a.address, a.hash_value) in
(select sql_address, sql_hash_value
from v$session
where username like ‘&username’)
and a.HASH_VALUE = t.HASH_VALUE
order by t.piece
/

Visualizando as queries em execução no momento:
select sql_text
from v$sqltext
where hash_value in (select sql_hash_value
from v$session
WHERE SQL_HASH_VALUE <> 0
and schemaname <> ‘SYS’)
order by hash_value, piece

SENHAS
Salvar a senha dos system e sys:
select password, username from dba_users;

Recuperando a senha de um usuário
alter user lilian identified by values ‘E2D51514EXX0936D’; /* substituir pela senha recuperada pelo script anterior. */

ARCHIVES
Cancelar temporariamente a geração de archives
alter system set log_archive_dest_state_1 = ‘DEFER’;

Copiar os archives para outro destino:
ALTER SYSTEM SET log_archive_dest_2  = ‘LOCATION=/caminho’; /* onde /caminho deverá ser o caminho de destino dos logs */

Apagar a cópia dos archives para outro destino:
ALTER SYSTEM SET log_archive_dest_2  = ”;

Forçar a alternancia de log e o consequente archivamento
alter system switch logfile;

Ver as sequencias e o grupo de log ativo:
select sequence#, STATUs from v$log;

Ver alert_log  e traces do banco:
show parameter background_dump_dest

Vendo a última sequencia de log arquivado:
select max( sequence#) from v$log_history

Verificar as sequências por data:
select * from v$log_history
where FIRST_TIME like ‘<data>’
/* substiutir pela data desejada */
and sequence# > <sequencia> /* substituir pela sequência desejada */

QUERIES
Encontrando o texto de uma query:
select s.SQL_FULLTEXT
from sys.v_$sqlarea s
where s.HASH_VALUE = &hash;