segunda-feira, 31 de maio de 2010

OBJETOS INVÁLIDOS

Para listar os objetos inválidos na sua base de dados execute a sequinte instrução SQL

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS = 'INVALID' ORDER BY OWNER,OBJECT_TYPE;

Para recompilar objetos inválidos na base basta executar o seguinte comando:

@?/rdbms/admin/utlrp.sql

segunda-feira, 24 de maio de 2010

Alterando uma TableSpace

As vezes acontece de criarmos uma tabela apontando para uma tablespace errada, se isso acontecer não se desespere, temos como alterar esse valor passando a apontar para a tablespace desejada, para isso execute o seguinte script:

ALTER TABLE MOVE TABLESPACE


Como não iremos fazer isso para todas as tabelas criei um scrit para facilitar a vida. hehe

SELECT 'ALTER TABLE ' ( TABLE_NAME ) ' MOVE TABLESPACE ' FROM DBA_TABLES WHERE OWNER = 'DONO DO OBJETO';


Detalhes, se a tabela tiver campo BLOG.. vai da pau


OBS: Troque os parenteses () por PIPE

quarta-feira, 12 de maio de 2010

Número máximo de 20 sessões no Oracle XE

Matar sessão

Para matar a sessão de um determiando usuário primeiro você deve saber o seu SID e SERIAL, para isso basta executar a sql logado como SYS

SELECT SID, SERIAL#, USERNAME, MACHINE FROM V$SESSION

Após descobrir o SID e SERIAL execute:

ALTER SYSTEM KILL SESSION 'SID_DESEJADO, SERIAL#_DESEJADO' IMMEDIATE;

Alterando valor do total de erros de login

O Oracle por questões de segurança limita o usuário errar a sua senha no máxim 10 vezes, após isso a conta do usuário é bloqueada gerando o erro ORA-28000, para evitar isso podemos alterar o parâmetro que limita essa quantidade, lembrando que fazendo isso você estará tirando a segurança do seu banco de dados, para verificar esse valor execute o seguinte script como SYS:

SELECT * FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS'

A coluna LIMIT informa o total de erros de login. Para alterar esse valor faça:

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS "NOVO_VALOR";

Desbloqueando Usuario

Quando você recebe o erro ORA-28000: The account is locked é porque o usuário errou a senha inúmeras vezes, pra ser mais específico 10 vezes, isso é o valor default que o oracle permite. Então para desbloquear a conta do usuário você deverá executar o seguinte script como SYS:

ALTER USER "NOME DO USUARIO" IDENTIFIED BY "NOVA SENHA" ACCOUNT UNLOCK;


Com isso você irá definir uma nova senha para o usuário bloqueado e ele estará disponível para fazer o login no Oracle.

sexta-feira, 7 de maio de 2010

Recuperar senha do usuário SYS

Caso você tenha esquecido a senha do usuario SYS ou SYSTEM, não se desespere hehe, no Oracle tem como você redefinir essas senhas. Para isso você deve seguir os seguintes passos:

1 - remova o arquivo PWD.ORA , caso esteja com medo basta renomeá-lo. Esse arquivo encontra-se no diretorio $ORACLE_HOME/database ou $ORACLE_HOME/dbs
2 - No prompt de comando digite: ORAPWD file= diretorio\PWD.ORA password=novasenha

Pronto com isso você redefiniu a senha do usuario SYS, para testar entre no sqlplus utilizando a nova senha.

SQLPlus sys/novasenha as sysdba

Descobrindo objetos criados

Para listar os objetos criados em uma determinada data/hora basta fazer uma consulta na tabela DBA_OBJECTS, nela existe um campo CREATED que indica a data e hora em que o objeto foi criado.

Isso me salvou de deixar "lixo" para o usuario SYS.. hehe