Scripts Úteis Para o Dia a Dia no Oracle (CANIVETE SUIÇO)

Ola Galera,

Bom pra quem é dba sabe que não se vive sem aqueles scripts que nos auxiliam no dia a dia, afinal não é todo mundo que tem toad ou alguma ferramenta gráfica por perto ou mesmo homologado pela empresa.

Então .. La vai um pequeno canivete suíço para lidar com o oracle.

VARIAVEIS DE AMBIENTE

CONN SYSTEM@INSTANCIA
SPOOL C:\LOGS

SET ECHO ON
SET TIMING ON
SET LINES 1000
SET SQLBL ON

ALTER SESSION SET NLS_DATE_FORMAT = ‘DD/MM/YYYY HH24:MI:SS’;
SELECT SYSDATE FROM DUAL;
SHOW USER

— VERIFICA INSTANCIA

SELECT * FROM GLOBAL_NAME;

DUMP

— VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA

SELECT USERNAME FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;

— CONTA OBJETOS DO SCHEMA

SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE ‘USER%
GROUP BY OBJECT_TYPE;
SPOOL OFF

— NO TERMINAL LINUX

$export ORACLE_SID=INSTANCE

$exp system@INSTANCE BUFFER=1000000 FILE=EXP_INSTANCE_USER_DATA.DMP LOG=EXP_INSTANCE_USER_DATA.LOG OWNER=USUÁRIOS LISTADOS CONSISTENT=Y

gzip EXP_INSTANCE_USER_DATA*

DESATIVAÇÃO DE UM SCHEMA

— VERIFICAR SE TEM ALGUM USUÁRIO USANDO O SISTEMA

SELECT SADDR, SID, USERNAME, LOGON_TIME, STATUS, OSUSER, MACHINE, PROGRAM
FROM V$SESSION
WHERE USERNAME LIKE ‘USER%‘;

— VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA

SELECT USERNAME FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;

— VERIFICA ATRIBUTOS DO USUÁRIO

SELECT * FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;
SELECT * FROM DBA_TAB_PRIVS
WHERE GRANTOR LIKE ‘USER%‘;

— VERIFICA PREVILEGIOS DO USUÁRIO

SELECT * FROM DBA_SYS_PRIVS
WHERE GRANTEE LIKE ‘USER%‘;
SELECT * FROM DBA_ROLE_PRIVS
WHERE GRANTEE LIKE ‘USER%‘;

— CONTA OBJETOS DO SCHEMA

SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE LIKE ‘USER%
GROUP BY OBJECT_TYPE;

— DESATIVA USUÁRIO

ALTER USER USER ACCOUNT LOCK;
ALTER USER USER PASSWORD EXPIRE;

— VERIFICA STATUS DA CONTA

SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%’;
SPOOL OFF

DESATIVAÇÃO DE UMA INSTANCIA

— VERIFICAR SE TEM ALGUM USUÁRIO USANDO O SISTEMA

SELECT SADDR, SID, USERNAME, LOGON_TIME, STATUS,
OSUSER, MACHINE, PROGRAM
FROM V$SESSION;

— VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA

SELECT USERNAME FROM DBA_USERS ;

— VERIFICA ATRIBUTOS DO USUÁRIO

SELECT * FROM DBA_USERS;

SELECT * FROM DBA_TAB_PRIVS;

— VERIFICA PREVILEGIOS DO USUÁRIO

SELECT * FROM DBA_SYS_PRIVS;

— VERIFICA PREVILEGIOS DE ROLE

SELECT * FROM DBA_ROLE_PRIVS;

— CONTA OBJETOS DO SCHEMA

SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
GROUP BY OBJECT_TYPE;

— NO TERMINAL

EXPORT ORACLE_SID=INSTANCE

SQLPLUS / AS SYSDBA

SQL> SHUTDOWN IMMEDIATE;

EXECUÇÃO DE SCRIPT

— VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA

SELECT USERNAME FROM DBA_USERS
WHERE USERNAME
LIKE ‘USER%;

— VERIFICA SE O OBJETOS JÁ EXISTE

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE,
CREATED, LAST_DDL_TIME, STATUS
FROM ALL_OBJECTS
WHERE OWNER LIKE ‘USER%
AND OBJECT_NAME = ‘OBJECT_NAME’;

— CONTA OBJETOS DO SCHEMA

SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE ‘USER%
GROUP BY OBJECT_TYPE;

— CONTA OBJETOS INVALIDOS

SELECT COUNT (*)
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;

— VERIFICA OBJETOS INVALIDOS

SELECT OBJECT_TYPE, OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;

— EXECUTA O SCRIPT

CONN USER@INSTANCE

@C:\CAMINHO\SCRIPT.SQL

CONN SYSTEM@INSTANCE

— VERIFICA SE O OBJETOS JÁ EXISTE

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE,
CREATED, LAST_DDL_TIME, STATUS
FROM ALL_OBJECTS
WHERE OWNER LIKE ‘USER%
AND OBJECT_NAME = ‘OBJECT_NAME’;
SELECT * FROM DBA_TAB_PRIVS
WHERE GRANTOR LIKE ‘USER%’;

— CONTA OBJETOS DO SCHEMA

SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE ‘USER%
GROUP BY OBJECT_TYPE;

— CONTA OBJETOS INVALIDOS

SELECT COUNT (*)
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;

— VERIFICA OBJETOS INVALIDOS

SELECT OBJECT_TYPE, OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;

— GERA SCRIPTS DOS OBJETOS INVALIDOS

SELECT ‘ALTER’||’ ‘|| OBJECT_TYPE ||’ ‘||OWNER ||’.’|| OBJECT_NAME || ‘ COMPILE;’
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;

— VERIFICA OBJETOS INVALIDOS

SELECT OBJECT_NAME, OBJECT_TYPE, STATUS
FROM DBA_OBJECTS
WHERE STATUS=’INVALID’
AND OWNER LIKE ‘USER%‘;
SPOOL OFF

CRIACAO DE USUÁRIO

— VERIFICAR SE EXISTE ESSE USUÁRIO NO SISTEMA

SELECT USERNAME FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;

— CRIAR A TABLESPACE PARA O USUÁRIO

CREATE TABLESPACE INSTANCE_SCHEMA_01
DATAFILE ‘CAMINHO/INSTANCE_SCHEMA.DBF’ SIZE 64M
AUTOEXTEND ON NEXT 1M
SEGMENT SPACE MANAGEMENT AUTO;

— VERIFICA SE TEM ALGUMA ROLE PARA ESSE USUÁRIO

SELECT * FROM DBA_ROLES WHERE ROLE LIKE ‘%USER%‘;

SELECT * FROM DBA_SYS_PRIVS WHERE LIKE ‘%USER%‘;

SELECT * FROM DBA_TAB_PRIVS WHERE LIKE ‘%USER%‘;

— CRIAR O USUÁRIO

CREATE USER USER
IDENTIFIED BY ‘SENHA
DEFAULT TABLESPACE INSTANCE_SCHEMA_01
TEMPORARY TABLESPACE TEMP;

— APLICA GRANT

GRANT RESOURCE, CONNECT TO USER;

— VERIFICAR SE O USUÁRIO FOI CRIADO

SELECT * FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;

— VERIFICA ROLES DO USUARIO CRIADO

SELECT * FROM DBA_SYS_PRIVS
WHERE GRANTEE LIKE ‘USER%‘;
SELECT * FROM DBA_ROLE_PRIVS
WHERE GRANTEE LIKE ‘USER%‘;

ALTERAR SENHA

— VERIFICAR OS USUÁRIOS DO SISTEMA

SELECT * FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;

— ALTERA A SENHA

ALTER USER USER IDENTIFIED BY ‘SENHA‘;

— VERIFICAR OS USUÁRIOS DO SISTEMA

SELECT * FROM DBA_USERS
WHERE USERNAME LIKE ‘USER%‘;
SPOOL OFF

E era isso ai pessoal, espero que seja útil !!
Se alguém tiver mais algum script bacana só postar lá nos comentários !!

Abraços
Kenia Milene

18 thoughts on “Scripts Úteis Para o Dia a Dia no Oracle (CANIVETE SUIÇO)

  1. Será q vc pode me ajudar?
    Tenho um A1200e e estou tentando colocar arquivos de word e excel mas nao consigo, e vi no seu blog mas nao esta mais dando pra baixar os programas… será q não pode me passar por pasta de compartilhamento pelo msn?

    Obrigada

  2. Olá Kenia!
    Tenho acompanhado seu blog a algum tempo, pois sou analista de sistemas, e estou estudando para me classificar como DBA oracle, mas percebo q tenho muito a percorrer.E qro saber se posso divulgr tbm no meu blog.
    Abraços

    Emerson

  3. Kenia, tudo beleza, nunca vi uma pessoa tão bem humorada assim que trabalhe com informática, você tá de parabéns!!!. Kênia , pergunte ao chuck norris se ele tem uma procedure pra fazer busca fonética no banco, veja se me ajuda, beleza, agradeço muito.

    Obs.: Favor me retornar via e-mail é mais prático , ok!.

    grimaldo_lopes@hotmail.com

  4. Bom, Kenia mais um solicitando sua ajuda.. hehehe. To com um problema que pode ser resolvido temporariamente mais volta a acontecer daqui a pouco tempo. Breve introdução, sou responsavel pela T.I de uma empresa que possui um Servidor Oracle. La eu tenho três partições no Suse. / #raiz, /disco1, /disco2.
    Inicialmente os usuarios do banco oracle, foram criados e suas tabelas setadas para o disco1, porém depois de um tempo que eu não sei quem alterou para a raiz do Suse. veja abaixo:

    /opt/oracle/oradata/horus/system01.dbf
    /opt/oracle/oradata/horus/undotbs01.dbf
    /opt/oracle/oradata/horus/sysaux01.dbf
    /opt/oracle/oradata/horus/users01.dbf
    /disco1/oracle/oradata/horus/HORUSDATA.DBF
    /disco1/oracle/oradata/horus/HORUSIDX.DBF
    /disco1/oracle/oradata/horus/HORUSDATA2.DBF
    /disco1/oracle/oradata/horus/HORUSIDX2.DBF

    Agora vamos ao problema. O disco raiz encheu, e o disco1 permanece com um espaço razoavel, uns 40% ainda disponivel que corresponde a uns 80 GB. O segundo problema é que essas tablespace estão alocando um espaço que não utilizam, pensei em fazer um resize mai eu não tenho tanto conhecimento assim para fazer isso sem auxilio. Andei lendo para intender como se faz (alter table… etc..) mais não comprendi direito.
    Eu pensei assim, se jogarmos esses datafiles do diretorio /opt/… para o disco1/… resolveria temporariamente meu problema. Pois lá tem espaço suficiente. Mas logo, logo, como aqui cria usuario e exclui com uma certa frequencia eu vou precisar aprender como faz o resize dessas tablespace. Qual é a forma de evita que isso ocorra? toda vez que criamos uma tablespace ela aloca o espaço, posso criar os usuarios em uma mesma tablespace sem ter de alocar mais espaço?

    Desde já agradeço e me desculpe pelas delongas.

  5. Kenia, estou com um problema…se puderes me ajudar!

    Estou tentando executar um script mas ocorre q qdo o oracle encontra ‘&’ exibe uma mensagem pra informar o parÂmetro e não consigo resolver isso.

    Grato

    Wagner

    • Ola Wagner,

      Qdo vc usa & ele indica que é uma variavel e vai ficar esperando o valor .. o que vc pode faer é substituir &AMP pelo valor a ser recebido !!!

      ABraços

      KEnia

  6. Oi Kenia, obrigado pela resposta mas não é isso. Não fui muito claro. Estou tentando executar um script de inserção no sql developer. ex.:

    INSERT INTO CLIENTES (ID_CLIENTE,fantasia,nome) values (PARCEIRO.sid_CLIENTES.nextval,’AGROPECUARIA AM’,’AGROEPCUARIA & FLORICULTUTA AMIGOS LTDA.’);

    Só coloquei algumas colunas, mas no caso de encontrar ‘&’ como em nome do cliente mostra uma mensagem solicitando um valor , existe alguma forma de fazer o oracle aceitar e não mostrar mensagem? é um script com quase 800 registros e tenho que ficar dando uns 50 ok na msg pra conseguir terminar a inserção.

    Abraço

    Wagner

    • Tente colocar assim.

      INSERT INTO CLIENTES (ID_CLIENTE,fantasia,nome) values (PARCEIRO.sid_CLIENTES.nextval,’AGROPECUARIA AM’,’AGROEPCUARIA “&” FLORICULTUTA AMIGOS LTDA.’);

      Faz um teste me fale!

      Abraços.

  7. Ola tudo bem?

    Preciso de ajuda.

    Estou tentando instalar o Postgresql 8.1 e o Perl pacote pgsql_perl5-1.9.0 no fedora 16, mas não estou conseguindo, também é minha primeira viagem nesse mundo posgres e perl, mas preeciso instalar esse servidor urgente. os pacotes do perl e postgres ja tenho, so quero o passo a passo para fazer a instalção, se puder me ajudar agradeço.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s