Arquivo para maio, 2009

Um dia de DBA - Cenário 1

domingo, maio 24th, 2009

Olá Pessoal hoje estarei postando mais uma de minhas experiências.
Quem nunca foi acordado por um cliente de madrugada porque o Banco de Dados parou? Quem é DBA e nunca teve esta oportunidade EEESPEEEERAAAAA….
Pois se não aconteceu um dia vai acontecer e não estou jogando praga não, pois todo DBA está sujeito a este tipo de tarefa.
Um certo dia um cliente me liga às 00:30 da madrugada desesperado dizendo que o Banco de Dados dele tinha parado.
Pedi para o cliente uns 15 minutos até eu conseguir conectar e verificar o motivo do problema.
Quando verificando o Banco de Dados AlertLog e etc… me deparei que o Banco de Dados CRASH e o Sistema Operacional Linux corrompeu todos os diretórios base, tudo isso devido a uma queda de energia que o Nobreak não segurou.

Que Beleza não?  Qual plano de ação diz o cliente?

————————————————————————————————
- Utilizar Backup Lógico com Exp que foi executado na hora do almoço(Pois era o unico backup que o cliente tinha). O interessante seria Backup com RMAN mas o cliente não tinha.

- O Banco de Dados Teste está instalado em Sistema Operacional Windows.


- Importar o dump em um outro Servidor cujo Banco de Dados ja existente(atualmente é um Banco de Dados teste), pois precisamos de disponibilidade do Sistema amanhã as 8:00hrs.

————————————————————————————————

Ok e lá vamos nós mais uma madrugada trabalhando….café + café….
Após ter criados todos os schemas e importado todos os objetos e criado seu devidos GRANTS e SYNONYMS.
A base de dados ja estava perfeita aparentemente. Pedi para que o pessoal de suporte testasse o sistema e estava ok.
Beleza até ai ja eram 7:30 da manhã e estava tudo ocorrendo bem.
Em conversa com o Gerente de TI da empresa resolvemos então aumentar a memória do Servidor de 2GB para 4GB. Pois devido o número de usuários seria interessante.
Ok, parei o banco de dados e disponibilizei para manutenção.
O Pessoal da infra trocou a memória e iniciamos o servidor…
Antes de inicar o Banco de Dados fiz backup do SPFILE, pois iria alterar a SGA do Banco de Dados.
Quando fui iniciar o Banco de Dados recebi a seguinte mensagem:

————————————————————————————————

SQL> startup
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory

————————————————————————————————

Que beleza não? isso ja era 8:10hrs e o pessoal esperando o sistema e me perguntando que horas estaria no ar.

Nessas horas é que temos que ter calma e saber levar o cliente pois logo de kara não sabia o que era.

Então após uns 30 minutos de pesquisa descobri o diretório flash_recovery_area tinha sido deletado, com isso o Banco de Dados não iniciava.

O motivo disso é bem provável que algum KAMARADA deletou esse diretório.

Então apenas recriei o diretório, STARTUP MOUNT alterei a SGA. Depois SHUTDONW IMMEDIATE + STARTUP e Pronto Banco de Dados OPEN.

Bom pessoal, essa foi mais uma das minhas experiências como DBA ORACLE.

Abraço

Bruno Murassaki

ORA-12005: may not schedule automatic refresh for times in the past

terça-feira, maio 19th, 2009

Olá pessoal gostaria de compartilha uma experiência que tive esses dias com um cliente.
Muitos podem achar fácil, mas tenho certeza que algumas pessoas ainda irão passar por isso, principalmente iniciantes.
Como podemos ver pela mensagem de erro tem haver com o agendamento do Job “schedule”.
Um certo dia um cliente me ligou dizendo que o horário que ele tinha agendado não estava rodando o job.
Com isso entrei no AlertLog para verificar o problema e me deparei com a seguinte mensagem:

ORA-12012: error on auto execute of job 36
ORA-12005: may not schedule automatic refresh for times in the past

Com isso pedi para o cliente que me enviasse o comando que estava sendo agendado o Job:

Comando enviado pelo cliente:  trunc(sysdate)+22/24

Verificando o comando logo notei que falta +1 logo após o Sysdate. Com isso pedi que alterasse para o seguinte comando:

Comando sugerido:  trunc(sysdate+1)+22/24

Sendo assim foi resolvido o problema do agendamento do Job

Abraço

Bruno Murassaki

Original Utilitário Exp/Imp - Exportando e Importando Dados por Tabelas

sexta-feira, maio 15th, 2009

Olá Pessoal

Hoje estarei postando um artigo de Export e Import por Tabelas, esse utilitário é o nosso velho amigo Exp/Imp convencional utilizando client/side.

É muito usado para exportar apenas algumas tabelas do Schema do Banco de Dados.

Segue abaixo exemplos de como utilizar Exp e Imp por Tabelas:

Comando Export por Tabelas: - Com esse comando filtraremos as tabelas, escolhendo apenas duas tabelas. Exemplo: NOTAFISCAL e CONTARECEBER

————————————————————————————————————–

Comando Export por Tabelas:

Exp usuario/senha@stringdeconexao file=teste.dmp log=teste.log feedback=2000 statistics=none buffer=64000 Tables=(NOTAFISCAL, CONTARECEBER)

————————————————————————————————————–

Como já escolhemos as tabelas exportadas e incluimos no nosso dump, basta apenas importar normalmente.

Com esse comando abaixo importaremos apenas as tabelas que exportamos no dump.

————————————————————————————————————–

Comando Import por Tabelas(Considerando que o dump ja contém apenas as tabelas que deseja importar):

Imp system/senha@stringdeconexao file=teste.dmp log=teste.log FROMUSER=usuario_origem TOUSER=usuario_destino feedback=2000 statistics=none buffer=64000

————————————————————————————————————–

(Obs: Muita atenção se caso utilizar o usuario system para importação, pois se caso esquecer dos parâmetros FROMUSER e TOUSER, os objetos serão importados no Schema System. Recomendo criar um usuario com privilégio para importação.)

Abraço

Bruno Murassaki

Original Utilitário Exp/Imp - Exportando e Importando Dados por Schema(Usuário)

quinta-feira, maio 14th, 2009

Olá Pessoal

Hoje estarei postando um artigo de Export e Import por Schema, esse utilitário é o nosso velho amigo Exp/Imp convencional utilizando client/side.

É muito útil para migração dos dados de um schema de um Banco de Dados para outro.

Este tipo de procedimento Export e Import é rotineiro na vida de um DBA, pois na maioria das vezes é necessário atualizar um Schema do Banco de Dados de Produção para o Banco de Dados de Teste. Para que a equipe de desenvolvimento desenvolva em uma base real, próxima da Base de Produção.

Pode ser também utilizado como rotina de Backup Lógico(Export)

Segue abaixo exemplos de como utilizar Exp e Imp por Schema:

———————————————————————————————————-

Comando Export por Schema(Usuario):

Exp usuario/senha@stringdeconexao file=teste.dmp log=teste.log feedback=2000 statistics=none buffer=64000

———————————————————————————————————-

Comando Import por Schema(Usuario):

Imp system/senha@stringdeconexao file=teste.dmp log=teste.log FROMUSER=user_origem TOUSER=user_destino feedback=2000 statistics=none buffer=64000

———————————————————————————————————-

(Obs: Muita atenção se caso utilizar o usuario system para importação, pois se caso esquecer dos parâmetros FROMUSER e TOUSER, os objetos serão importados no Schema System.Recomendo criar um usuario com privilégio para importação.)

Abraço

Bruno Murassaki

Erro OC4J Configuration issue, ao Iniciar Oracle Enterprise Manager

quarta-feira, maio 6th, 2009

Olá Pessoal,

O assunto que iremos abordar hoje é muito encontrado em Fóruns por causa da dificuldade de encontrar informação para resolver o problema específico. Pois sabemos que o Oracle Enterprise Manager existem diversos tipos de erros que são resolvidos de diferentes formas.
Hoje um cliente me reportou um Problema com o Oracle Enterprise Manager. Então vou contar a história como foi….
Um certo dia um Funcionário de TI resolveu instalar Banco de Dados Oracle 10g no Sistema Operacional Windows no qual foi instalado uma instalação Default do Oracle10g N,N,F (NEXT,NEXT,FINISH).
Com isso o funcionário de TI não se preocupou em setar IP fixo no Servidor, deixando DHCP. Aparentemente a instalação ficou perfeita tudo funcionando sem nenhum problema.
Um certo dia o Servidor foi ligado novamente e ocorreu Problema com Oracle Enterprise Manager. Detalhe que Listener e Banco de Dados funcionava normal, apenas o Oracle Enterprise Manager que não funcionava.

Com isso ao tentar iniciar o Oracle Enterprise Manager apresentava o seguinte problema:

———————————————————————————————————————————–

Problema Reportado:

- OC4J Configuration issue. C:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_X.X.X.X_orcl not found.

———————————————————————————————————————————–

Possíveis Causas:

- Determinar Ip Dinâmico(DHCP) para Servidor de Banco de Dados ao invés de Ip fixo.

- Determinar EndereçoIp/Hostname dinâmico.

———————————————————————————————————————————–

Solução:

- Setar Endereço Ip Fixo / Hostname

- Reconstruir o Repositório do Oracle Enterprise Manager.

Antes de reconstruir o repositório é necessário obter as seguintes informações:
- Database SID:
- Listener port number:
- Password for SYS user:
- Password for DBSNMP user:
- Password for SYSMAN user:

———————————————————————————————————————————-

1- Dropando o Repositório Enterprise Manager

[oracle@oracle10]$emca -deconfig dbcontrol db -repos drop

STARTED EMCA at Nov 8, 2008 10:57:16 AM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Enter the following information:
Database SID: orcl
Listener port number: 1521
Password for SYS user:  xxx
Password for SYSMAN user: xxx
Password for SYSMAN user: xxx
Do you wish to continue? [yes(Y)/no(N)]: Y
Nov 8, 2008 10:57:32 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /oracle/app/product/10.2.0/orcl/cfgtoollogs/emca/orcl/emca_2008-11-08_10-57-16-AM.log.
Nov 8, 2008 10:57:34 AM oracle.sysman.emcp.EMDBPreConfig performDeconfiguration
WARNING: EM is not configured for this database. No EM-specific actions can be performed.
Nov 8, 2008 10:57:34 AM oracle.sysman.emcp.EMReposConfig dropRepository
INFO: Dropping the EM repository (this may take a while) …
Nov 8, 2008 10:59:51 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully dropped
Enterprise Manager configuration completed successfully
FINISHED EMCA at Nov 8, 2008 10:59:51 AM

———————————————————————————————————————————–
2- Criando o Repositório Enterprise Manager

[oracle@oracle10]$emca -config dbcontrol db -repos create

STARTED EMCA at Nov 8, 2008 11:01:04 AM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Enter the following information:
Database SID: orcl
Listener port number: 1521
Password for SYS user:  xxx
Password for DBSNMP user: “dbsnmp”
Password for SYSMAN user:  xxx
Password for SYSMAN user: Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):

You have specified the following settings

Database ORACLE_HOME ……………. /oracle/app/product/10.2.0/orcl

Database hostname ……………. brunomurassaki.com.br
Listener port number ……………. 1521
Database SID ……………. orcl
Email address for notifications ……………

Outgoing Mail (SMTP) server for notifications ……………
Do you wish to continue? [yes(Y)/no(N)]: Y
Nov 8, 2008 11:01:31 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /oracle/app/product/10.2.0/orcl/cfgtoollogs/emca/orcl/emca_2008-11-08_11-01-04-AM.log.
Nov 8, 2008 11:01:36 AM oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creating the EM repository (this may take a while) …
Nov 8, 2008 11:04:23 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully created
Nov 8, 2008 11:04:32 AM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) …
Nov 8, 2008 11:06:09 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
Nov 8, 2008 11:06:09 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is http://X.X.X.X:5500/em <<<<<<<<<<<
Enterprise Manager configuration completed successfully
FINISHED EMCA at Nov 8, 2008 11:06:09 AM
———————————————————————————————————————————–
Pronto, Repositório Criado com Suscesso.

3- Iremos verificar se o Oracle Enterprise Manager está rodando:

[oracle@oracle10 emd]$ emctl status dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://brunomurassaki.com.br:5500/em/console/aboutApplication
Oracle Enterprise Manager 10g is running.

———————————————————————————————————————————–

4- Após reconstruir o repositório e necessitar verificar qual porta o OEM está utilizando, entre no diretório abaixo:

ORACLE_HOME/install/portlist.ini
————————————————————————————————————————————

Pronto, agora basta entrar em qualquer navegador e com endereço correto utilizar Oracle Enterprise Manager.

Abraço,

Bruno Murassaki