Re: RES: Res: [oracle_br] Corrupção de dados

2011-04-26 Por tôpico David Ricardo
Carlos bom dia, tudo bem?
Já solucionou seu problema?

Caso não tenha solucionado ainda, dê uma passadinha neste endereço, lá tem
um passo a passo de como usar o BMR via RMAN, talvez isso lhe ajude a
elucidar algumas coisas.

http://databaseguard.blogspot.com/2009/08/rman-bmr-block-media-recover.html

No mais se precisar de ajuda, meu email é drb.rica...@gmail.com

Abraço.

Em 26 de abril de 2011 08:16, Carlos Alfredo M. Menezes 
carlos.mene...@usinacoruripe.com.br escreveu:



 Bom dia Chiappa e a todos da lista.

 Obrigado pelas considerações, mas ainda estou com algumas dúvidas
 conceituais:

 1- Se o RMAN só detecta problemas físicos, ele é útil para resolver
 corrupções lógicas ?, ou seja, o rman continua sendo executado sem
 problemas, se eu fizer um recvovery a partir deste backup, ele consegue
 corrigir a tabela corrompida apenas no nível lógico?

 2- Infelizmente não consigo rodar o dbv com a instância no ar, o AIX 6.1
 com Oracle 10g e JSF2, está montando as partições onde estão os datafiles em
 modo exclusivo, tenho que pedir para montar estas partições com a opção
 -cio, já tenho a nota explicando isso;

 3- O brtools é a ferramenta da SAP para fazer entre outras coisas
 backup/Restore de base de dados Oracle, inclusive integrado com o RMAN, como
 no meu caso, mas não suporta todas as operações possíveis de se fazer como
 no RMAN diretamente.

 4- Já está aberta uma investigação como os administradores de
 hardware/SO/Storage para identificarem o problema.

 Abraços.


 Carlos Alfredo M. de Menezes

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de José Laurindo
 Enviada em: segunda-feira, 25 de abril de 2011 20:45

 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: Res: [oracle_br] Corrupção de dados


 Carlos, xo comentar em cima de alguns pontos :

 - Até onde eu sei, o rman faz uma verificação durante o backup e até então
 eu confiava exclusivamente nele para me reportar prováveis problemas de
 corrupção. 

 = Bad, very Very Bad move, my friend : veja, o conceito do RMAN é que ele
 copia blocos do disco, então (é óbvio) ele verifica se o bloco foi lido
 corretamente, ele basicamente detecta corrupção FÍSICA portanto - se há
 corrupção lógica (ie, o bloco tá legível, mas digamos, por bug ou qquer
 problema o cabeçalho do bloco aponta prum lugar inválido, ou o dicionário de
 dados não registra um objeto corretamente, enfim) via de regra o RMAN 
 não consegue  detectar isso... É Por Isso que a nota-mãe do metalink
 sobre detecção de corrupção (Best Practices for Avoiding and Detecting
 Corruption , Doc ID 428570.1) Recomenda vc além do backup RMAN fazer um DBV,
 um ANALYZE de objetos (o ANALYZE é Totalmente Obsoleto pra coleta de
 estatísticas, mas COMPLETAMENTE necessário e válido para análise de
 estrutura de objetos), fazer um export... A idéia do export , inclusive, é
 exercitar o dicionário : como nós sabemos, o RMAN só quer copiar blocos dos
 datafiles(ele não se interessa se aquele bloco é da tabela x ou índice y,
 ele copia os blocos do datafile que está sendo backupeado), enquanto o
 export não, ele copia Tabelas e Schemas, então (obviamente) o export ao
 contrário Precisa consultar o dicionário pra encontrar as
 tabelas/índices/constraints/etc a copiar...

 - Realmente só pensei em fazer o dbv com a instância parada, mas como
 ainda não surgiu uma janela para tal operação, continuo na minha pesquisa.

 = ok, um DBV offline sempre é legal, MAS enquanto não é possível, vc Sabe
 que é totalmente possível rodar um DBV online, com o banco Ativo ??? E
 óbvio, o export é online, os ANALYZEs são online, vc tem Sim várias opções
 pra check online...

 - Também pensei em fazer via RMAN o block recover, mas fiquei na dúvida se
 esse procedimento faz algum tipo de mídia recovery? Se tem algum impacto na
 disponibilidade do ambiente, e se eu posso fazer via brtools (é uma base SAP
 Solution Manager).

 = Sim, claro que o RMAN faz mídia recover, ele regrava BLOCOS : o conceito
 é Direto, o que o RMAN sabe/conhece basicamente é copiar e ler BLOCOS de
 datafiles... Indisponibilidade geral isso não acarreta, mas OBVIAMENTE no
 tempinho que levar pro RMAN localizar e ler da fita/disco/whatever o bloco
 que será regravado , o objeto em questão VAI ficar inacessível.
 Quanto ao tal do brtools, não sei mas eu TOTALMENTE recomendo vc fazer
 recuperação de banco Oracle com as tools Oracle da maneira Recomendada pela
 Oracle - no caso do RMAN é usar em linha de comando o utilitário rman , com
 as variáveis ORACLE setadas, direitinho...


 == E Ululantemente óbvio : corrupção absolutamente *** NUNCA *** acontece
 por si, do nada - nós estamos falando de banco Oracle aqui, não de
 Clipper/dBASE que a toda hora corrompia e vc tinha que fazer rebuild... Vc
 TEM QUE descobrir a Causa da corrupção (que necessariamente será um problema
 de Hardware - seja placa-mãe, placa de rede, I/O, memória -, OU um bug ,
 seja bug no firmware/drivers

Re: RES: Res: [oracle_br] Corrupção de dados

2011-04-26 Por tôpico David Ricardo
Carlos,
Você consegue exportar essa tabela apenas?

Caso consiga exporta-la por completo, sugiro que o faça e recrie-a , para
que ele realoque o objeto em outro segement block.

Abraço

Em 26 de abril de 2011 10:52, Carlos Alfredo M. Menezes 
carlos.mene...@usinacoruripe.com.br escreveu:



 Caro colega, bom dia.

 Obrigado pela dica, tentei fazer o procedimento, mas não estou tendo
 sucesso em fazer a visão v$database_block_corruption ser populada. Veja como
 fiz:

 sapdtc101:orasm0 2 rman target = /

 Recovery Manager: Release 10.2.0.4.0 - Production on Tue Apr 26 10:19:14
 2011

 Copyright (c) 1982, 2007, Oracle. All rights reserved.

 connected to target database: SM0 (DBID=1149775909)

 RMAN backup validate check logical database;

 Starting backup at 26-APR-11
 using target database control file instead of recovery catalog
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: sid=125 devtype=DISK
 channel ORA_DISK_1: starting full datafile backupset
 channel ORA_DISK_1: specifying datafile(s) in backupset
 input datafile fno=9 name=/oracle/SM0/sapdata2/sr3_6/sr3.data6
 input datafile fno=00012 name=/oracle/SM0/sapdata2/sr3_9/sr3.data9
 input datafile fno=4 name=/oracle/SM0/sapdata2/sr3_1/sr3.data1
 input datafile fno=6 name=/oracle/SM0/sapdata2/sr3_3/sr3.data3
 input datafile fno=5 name=/oracle/SM0/sapdata2/sr3_2/sr3.data2
 input datafile fno=8 name=/oracle/SM0/sapdata2/sr3_5/sr3.data5
 input datafile fno=7 name=/oracle/SM0/sapdata2/sr3_4/sr3.data4
 input datafile fno=00010 name=/oracle/SM0/sapdata2/sr3_7/sr3.data7
 input datafile fno=00011 name=/oracle/SM0/sapdata2/sr3_8/sr3.data8
 input datafile fno=00023 name=/oracle/SM0/sapdata2/sr3_12/sr3.data12
 input datafile fno=00022 name=/oracle/SM0/sapdata2/sr3_11/sr3.data11
 input datafile fno=00013 name=/oracle/SM0/sapdata2/sr3_10/sr3.data10
 input datafile fno=00014 name=/oracle/SM0/sapdata3/sr3701_1/sr3701.data1
 input datafile fno=00015 name=/oracle/SM0/sapdata3/sr3701_2/sr3701.data2
 input datafile fno=00016 name=/oracle/SM0/sapdata3/sr3701_3/sr3701.data3
 input datafile fno=00017 name=/oracle/SM0/sapdata3/sr3701_4/sr3701.data4
 input datafile fno=2 name=/oracle/SM0/sapdata1/undo_1/undo.data1
 input datafile fno=00024 name=/oracle/SM0/sapdata2/sr3_13/sr3.data13
 input datafile fno=00019 name=/oracle/SM0/sapdata4/sr3db_1/sr3db.data1
 input datafile fno=00020 name=/oracle/SM0/sapdata4/sr3db_2/sr3db.data2
 input datafile fno=00021 name=/oracle/SM0/sapdata4/sr3db_3/sr3db.data3
 input datafile fno=1 name=/oracle/SM0/sapdata1/system_1/system.data1
 input datafile fno=3 name=/oracle/SM0/sapdata1/sysaux_1/sysaux.data1
 input datafile fno=00018 name=/oracle/SM0/sapdata4/sr3usr_1/sr3usr.data1
 channel ORA_DISK_1: backup set complete, elapsed time: 00:12:26
 channel ORA_DISK_1: starting full datafile backupset
 channel ORA_DISK_1: specifying datafile(s) in backupset
 including current control file in backupset
 including current SPFILE in backupset
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
 Finished backup at 26-APR-11

 Após isso, continua sem registrar nenhuma corrupção lógica:

 SQL select * from v$database_block_corruption;

 no rows selected

 Mas se tento fazer o validate na tabela com problemas:

 SQL analyze table sapsr3.snap validate structure;
 analyze table sapsr3.snap validate structure
 *
 ERROR at line 1:
 ORA-08103: object no longer exists

 Mas alguma sugestão??

 Att,


 Carlos Alfredo M. de Menezes
 Analista de Suporte Sr.



 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de David Ricardo
 Enviada em: terça-feira, 26 de abril de 2011 09:52
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: Res: [oracle_br] Corrupção de dados

 Carlos bom dia, tudo bem?
 Já solucionou seu problema?

 Caso não tenha solucionado ainda, dê uma passadinha neste endereço, lá tem
 um passo a passo de como usar o BMR via RMAN, talvez isso lhe ajude a
 elucidar algumas coisas.

 http://databaseguard.blogspot.com/2009/08/rman-bmr-block-media-recover.html

 No mais se precisar de ajuda, meu email é drb.rica...@gmail.com

 Abraço.

 Em 26 de abril de 2011 08:16, Carlos Alfredo M. Menezes 
 carlos.mene...@usinacoruripe.com.br escreveu:

 
 
  Bom dia Chiappa e a todos da lista.
 
  Obrigado pelas considerações, mas ainda estou com algumas dúvidas
  conceituais:
 
  1- Se o RMAN só detecta problemas físicos, ele é útil para resolver
  corrupções lógicas ?, ou seja, o rman continua sendo executado sem
  problemas, se eu fizer um recvovery a partir deste backup, ele
  consegue corrigir a tabela corrompida apenas no nível lógico?
 
  2- Infelizmente não consigo rodar o dbv com a instância no ar, o AIX
  6.1 com Oracle 10g e JSF2, está montando as partições onde estão os
  datafiles em modo exclusivo, tenho que pedir para montar estas
  partições com a opção -cio, já tenho a nota explicando isso;
 
  3- O brtools é a ferramenta da SAP para fazer entre

Re: RES: Res: [oracle_br] Corrupção de dados

2011-04-26 Por tôpico Marcelo Cauduro
Você menciona que os selects retornam ok, então você consegue dar um:

  CREATE TABLE TESTE AS
 SELECT * FROM XX;

2011/4/26 Carlos Alfredo M. Menezes carlos.mene...@usinacoruripe.com.br



 Não colega, tentativa de export também dá o mesmo erro. Mas tentei vários
 SQL´s nesta mesma tabela e todos retornam sem problemas. Curioso.

 Att,

 Carlos Alfredo M. de Menezes
 Analista de Suporte Sr.
 (82) 3217-2828 / 9921-0603



 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de David Ricardo
 Enviada em: terça-feira, 26 de abril de 2011 11:00
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: Res: [oracle_br] Corrupção de dados

 Carlos,
 Você consegue exportar essa tabela apenas?

 Caso consiga exporta-la por completo, sugiro que o faça e recrie-a , para
 que ele realoque o objeto em outro segement block.

 Abraço

 Em 26 de abril de 2011 10:52, Carlos Alfredo M. Menezes 
 carlos.mene...@usinacoruripe.com.br escreveu:

 
 
  Caro colega, bom dia.
 
  Obrigado pela dica, tentei fazer o procedimento, mas não estou tendo
  sucesso em fazer a visão v$database_block_corruption ser populada.
  Veja como
  fiz:
 
  sapdtc101:orasm0 2 rman target = /
 
  Recovery Manager: Release 10.2.0.4.0 - Production on Tue Apr 26
  10:19:14
  2011
 
  Copyright (c) 1982, 2007, Oracle. All rights reserved.
 
  connected to target database: SM0 (DBID=1149775909)
 
  RMAN backup validate check logical database;
 
  Starting backup at 26-APR-11
  using target database control file instead of recovery catalog
  allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=125 devtype=DISK
  channel ORA_DISK_1: starting full datafile backupset channel
  ORA_DISK_1: specifying datafile(s) in backupset input datafile
  fno=9 name=/oracle/SM0/sapdata2/sr3_6/sr3.data6
  input datafile fno=00012 name=/oracle/SM0/sapdata2/sr3_9/sr3.data9
  input datafile fno=4 name=/oracle/SM0/sapdata2/sr3_1/sr3.data1
  input datafile fno=6 name=/oracle/SM0/sapdata2/sr3_3/sr3.data3
  input datafile fno=5 name=/oracle/SM0/sapdata2/sr3_2/sr3.data2
  input datafile fno=8 name=/oracle/SM0/sapdata2/sr3_5/sr3.data5
  input datafile fno=7 name=/oracle/SM0/sapdata2/sr3_4/sr3.data4
  input datafile fno=00010 name=/oracle/SM0/sapdata2/sr3_7/sr3.data7
  input datafile fno=00011 name=/oracle/SM0/sapdata2/sr3_8/sr3.data8
  input datafile fno=00023 name=/oracle/SM0/sapdata2/sr3_12/sr3.data12
  input datafile fno=00022 name=/oracle/SM0/sapdata2/sr3_11/sr3.data11
  input datafile fno=00013 name=/oracle/SM0/sapdata2/sr3_10/sr3.data10
  input datafile fno=00014
  name=/oracle/SM0/sapdata3/sr3701_1/sr3701.data1
  input datafile fno=00015
  name=/oracle/SM0/sapdata3/sr3701_2/sr3701.data2
  input datafile fno=00016
  name=/oracle/SM0/sapdata3/sr3701_3/sr3701.data3
  input datafile fno=00017
  name=/oracle/SM0/sapdata3/sr3701_4/sr3701.data4
  input datafile fno=2 name=/oracle/SM0/sapdata1/undo_1/undo.data1
  input datafile fno=00024 name=/oracle/SM0/sapdata2/sr3_13/sr3.data13
  input datafile fno=00019 name=/oracle/SM0/sapdata4/sr3db_1/sr3db.data1
  input datafile fno=00020 name=/oracle/SM0/sapdata4/sr3db_2/sr3db.data2
  input datafile fno=00021 name=/oracle/SM0/sapdata4/sr3db_3/sr3db.data3
  input datafile fno=1
  name=/oracle/SM0/sapdata1/system_1/system.data1
  input datafile fno=3
  name=/oracle/SM0/sapdata1/sysaux_1/sysaux.data1
  input datafile fno=00018
  name=/oracle/SM0/sapdata4/sr3usr_1/sr3usr.data1
  channel ORA_DISK_1: backup set complete, elapsed time: 00:12:26
  channel ORA_DISK_1: starting full datafile backupset channel
  ORA_DISK_1: specifying datafile(s) in backupset including current
  control file in backupset including current SPFILE in backupset
  channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
  Finished backup at 26-APR-11
 
  Após isso, continua sem registrar nenhuma corrupção lógica:
 
  SQL select * from v$database_block_corruption;
 
  no rows selected
 
  Mas se tento fazer o validate na tabela com problemas:
 
  SQL analyze table sapsr3.snap validate structure;
  analyze table sapsr3.snap validate structure
  *
  ERROR at line 1:
  ORA-08103: object no longer exists
 
  Mas alguma sugestão??
 
  Att,
 
 
  Carlos Alfredo M. de Menezes
  Analista de Suporte Sr.
 
 
 
  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
  Em nome de David Ricardo Enviada em: terça-feira, 26 de abril de 2011
  09:52
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: RES: Res: [oracle_br] Corrupção de dados
 
  Carlos bom dia, tudo bem?
  Já solucionou seu problema?
 
  Caso não tenha solucionado ainda, dê uma passadinha neste endereço, lá
  tem um passo a passo de como usar o BMR via RMAN, talvez isso lhe
  ajude a elucidar algumas coisas.
 
  http://databaseguard.blogspot.com/2009/08/rman-bmr-block-media-recover
  .html
 
  No mais se precisar de ajuda, meu email é drb.rica...@gmail.com
 
  Abraço

Re: RES: Res: [oracle_br] Corrupção de dados

2011-04-25 Por tôpico José Laurindo
Carlos, xo comentar em cima de alguns pontos :

- Até onde eu sei, o rman faz uma verificação durante o backup e até então eu 
confiava exclusivamente nele para me reportar prováveis problemas de corrupção. 


= Bad, very Very Bad move, my friend : veja, o conceito do RMAN é que ele 
copia blocos do disco, então (é óbvio) ele verifica se o bloco foi lido 
corretamente, ele basicamente detecta corrupção FÍSICA portanto - se há 
corrupção lógica (ie, o bloco tá legível, mas digamos, por bug ou qquer 
problema o cabeçalho do bloco aponta prum lugar inválido, ou o dicionário de 
dados não registra um objeto corretamente, enfim) via de regra o RMAN  não 
consegue  detectar isso... É Por Isso que a nota-mãe do metalink sobre 
detecção de corrupção (Best Practices for Avoiding and Detecting Corruption , 
Doc ID 428570.1) Recomenda vc além do backup RMAN fazer um DBV, um ANALYZE de 
objetos (o ANALYZE é Totalmente Obsoleto pra coleta de estatísticas, mas 
COMPLETAMENTE necessário e válido para análise de estrutura de objetos), fazer 
um export... A idéia do export , inclusive, é exercitar o dicionário : como nós 
sabemos, o RMAN só quer copiar blocos dos datafiles(ele não se interessa se 
aquele bloco é da tabela x ou índice y, ele copia os blocos do datafile que 
está sendo backupeado), enquanto o export não, ele copia Tabelas e Schemas, 
então (obviamente) o export ao contrário Precisa consultar o dicionário pra 
encontrar as tabelas/índices/constraints/etc a copiar...

- Realmente só pensei em fazer o dbv com a instância parada, mas como ainda 
não surgiu uma janela para tal operação, continuo na minha pesquisa.

= ok, um DBV offline sempre é legal, MAS enquanto não é possível, vc Sabe que 
é totalmente possível rodar um DBV online, com o banco Ativo ??? E óbvio, o 
export é online, os ANALYZEs são online, vc tem Sim várias opções pra check 
online...

- Também pensei em fazer via RMAN o block recover, mas fiquei na dúvida se 
esse procedimento faz algum tipo de mídia recovery? Se tem algum impacto na 
disponibilidade do ambiente, e se eu posso fazer via brtools (é uma base SAP 
Solution Manager).

= Sim, claro que o RMAN faz mídia recover, ele regrava BLOCOS : o conceito é 
Direto, o que o RMAN sabe/conhece basicamente é copiar e ler BLOCOS de 
datafiles... Indisponibilidade geral isso não acarreta, mas OBVIAMENTE no 
tempinho que levar pro RMAN localizar e ler da fita/disco/whatever o bloco que 
será regravado , o objeto em questão VAI ficar inacessível. 
 Quanto ao tal do brtools, não sei mas eu TOTALMENTE recomendo vc fazer 
recuperação de banco Oracle com as tools Oracle da maneira Recomendada pela 
Oracle - no caso do RMAN é usar em linha de comando o utilitário rman , com as 
variáveis ORACLE setadas, direitinho...
 
 
== E Ululantemente óbvio : corrupção absolutamente *** NUNCA *** acontece por 
si, do nada - nós estamos falando de banco Oracle aqui, não de Clipper/dBASE 
que a toda hora corrompia e vc tinha que fazer rebuild... Vc TEM QUE descobrir 
a Causa da corrupção (que necessariamente será um problema de Hardware - seja 
placa-mãe, placa de rede, I/O, memória -, OU um bug , seja bug no 
firmware/drivers, nos software de banco, e/ou no aplicativo...
 Assim, se o teu ambiente é Realmente crítico, vc TEM QUE agendar uma checagem 
PROFUNDA do teu hardware, com ferramentas de análise de baixo nível do hardware 
(NÂO É só rodar um fsck e achar que tá tudo bem), procurar nos logs/msgs do 
sistema/SO por falhas, E também abrir chamados no Suporte da Oracle, do 
aplicativo E do SO...
 
 []s
 
   Chiappa
   

--- Em oracle_br@yahoogrupos.com.br, Carlos Alfredo M. Menezes 
carlos.menezes@... escreveu

 Colega,
 Realmente só pensei em fazer o dbv com a instância parada, mas como ainda não 
 surgiu uma janela para tal operação, continuo na minha pesquisa. Fiz vários 
 SQL´s e todos retornam normalmente as linhas, isso é que está me perturbando, 
 se tentar fazer o export, dá o erro que comentei. Estou pensando em reiniciar 
 a instância, me parece que tem algum BUG a respeito.
 
 Também pensei em fazer via RMAN o block recover, mas fiquei na dúvida se esse 
 procedimento faz algum tipo de mídia recovery? Se tem algum impacto na 
 disponibilidade do ambiente, e se eu posso fazer via brtools (é uma base SAP 
 Solution Manager).
 
 Att,
 
 Carlos Alfredo M. de Menezes
 Analista de Suporte Sr.
 (82) 3217-2828 / 9921-0603
 
 
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em 
 nome de Marcus Pavan
 Enviada em: segunda-feira, 25 de abril de 2011 18:37
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Res: Res: [oracle_br] Corrupção de dados
 
 Carlos, boa tarde.
 
 
 Faça um SELECT na tabela, verifique se retorna as informações.
 Caso o erro persista e você tenha um BACKUP pelo RMAN, use o BLOCK RECOVER 
 para recuperar este bloco.
 O DBV pode ser executado, porém prefiro executá-lo com o datafile em OFF, na 
 versão 11g já está mais seguro a execução com