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
Ola acredito que essa linha nao funcionara por o comando esta sendo escrito em maiusculo, o correto seria ” gzip EXP_INSTANCE_USER_DATA* ” no lugar de GZIP ” EXP_INSTANCE_USER_DATA* “nao ?
Ola Staimeer,
Tem toda razão ja alterei
Abraços
Kenia
Just passing by.Btw, your website have great content!
_________________________________
Making Money $150 An Hour
Thank Mike ..
Visit whenever want, or need help
Kenia
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
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
Ola Emerson,
O que quer divulgar no seu blog ??
nao entendi
abraços
Kenia
algumas dicas importantes..Tipo a do Canivete Suiço..Muito boa e de muita utilidade..
Claro que vou colocar a fonte..o seu blog.abraços
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
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.
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 & pelo valor a ser recebido !!!
ABraços
KEnia
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
Oi eu qria saber ond eu consiguo um cd do oracle ou se vc podia me mandar por correio por favor add no msn lucaskill13@hotmail.com responda pls!!!
Voce pode baixar no site da Oracle