Ah, e um pontinho adicional : enquanto a root cause da corrupção não é descoberta, avalie a possibilidade de ativar os recursos de checksum de blocos do bd Oracle (ie, os parâmetros DB_BLOCK_CHECKING, DB_BLOCK_CHECKSUM e similares) - eles impõem um overhead, que pode ser até de uns 10% (depende do caso, vc Claro que tem um ambiente de Homologação e VAI testar lá primeiro pra ter uma idéia), mas isso certamente aumentaria Sensivelmente a sua confiabilidade enquanto está resolvendo a questão...
[]s Chiappa --- Em oracle_br@yahoogrupos.com.br, José Laurindo <jlchiappa@...> escreveu > > Oi colega, seguem as respostas & alguns coments : > > > > > 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? > > veja lá : pra ser escrupulosamente Claro, o fato é que o RMAN por si só *** > NÃO *** resolve corrupção editando/corrigindo bloco, ele ** NÃO ** faz > análise alguma do bloco, ** NÃO ** checa formatação/cabeçalhos do bloco ... O > block recover NADA MAIS É do que simplesmente LER de um backup anterior > (feito PRESUMIVELMENTE antes da corrupção) uma imagem anterior do bloco como > estava e em cima disso aplicar as alterações que houveram para esse bloco > (informação essa que consta nos ARCHIVED REDO LOGS), apenas isso ... Então no > seu caso, SE vc conseguir localizar um backup anterior à corrupção E tiver os > archived logs TODOS daí pra frente, blz, vc vai ter o bloco de volta... > SE vc achava que o RMAN faz/fazia algum tipo de correção LÓGICA no bloco, > pode despensar, ele é Físico, tannto é que se vc não tiver um backup feito > antes da corrupção (seja lógica ou física) é no soup for you, okdoc ? > Em termos de correção de bloco (digamos pra uma situação aonde vc não tem a > imagem anterior/backup do bloco antes da corrupção, ou não sabe exatamente > Quando a corrupção ocorreu) o máximo que vc pode fazer é usar o Block Browser > and Editor (BBED) pra correção manual, mas SEMPRE, claro, com a ajuda e > benção do Suporte Oracle... E lógico, se possível se fazer o DROP e o > REBUILD (ou exportação/importação) dos objetos envolvidos também é outro > caminho totalmente possível, mas que fique Claro, mais uma vez estamos > RECONSTRUINDO o bloco, e NÂO corrigindo o bloco que já existia... > > > > > > 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; > > Ah, ok : na verdade imagino que seja devido ao tipo de I/O solicitado durante > a montagem, cfrme as notas metalink "Dbv Can Not Access Online Datafiles If > Filesystemio_options=Setall Dbv-00100" [ID 360287.1] e "Direct I/O (DIO) and > Concurrent I/O (CIO) on AIX 5L" [ID 257338.1] , né ? Sim, isso é algo que > pode acontecer... Nesse caso, ENQUANTO vc não consegue uma janela pra alterar > isso, use as Outras opções online, como o ANALYZE, o DataPump, o export (se > vc conseguir contornar, com a ajuda do Suporte, o bug que vc relata estar > encontrando no export - o que eu Recomendo, é uma boa prática , como eu falei > antes, o bom do export é que ele exercita, usa mais o dicionário, mais do que > outras opções)... Há sempre também a possibilidade de vc rodar os scripts de > healthcheck internos da própria Oracle, como o hcheck na nota "hcheck.sql > script to check for known problems in Oracle8i, Oracle9i, Oracle10g and > Oracle 11g [ID 136697.1] - esses últimos, É Claro, sempre com a ajuda/Suporte > da Oracle.... > > > > > 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. > > Colega, eu não uso / não conheço esse cara, vc teria que verificar com o > Suporte da SAP e/ou com pessoas que usem SAP, mas afaik DIFICILMENTE uma tool > de terceiros vai saber fazer TUDO que a tool do fabricante de bancos faz - > normalmente as "integrações" que vc cita são algo num nível mais básico, tipo > backup e restore simples, acho Difícil que a tal tool outra conheça/entenda > Tudo o mais que o RMAn faz , então eu Sugiro que para fazer uma operação de > manutenção interna de banco de dados, vc investigue seriamente a > possibilidade de usar a tool nativa do banco de dados (RMAN), no ambiente e > com a sintaxe recomendados pelo fabricante de banco. > > > > > 4- Já está aberta uma investigação como os administradores de > > hardware/SO/Storage para identificarem o problema. > > OK, eu só recomendo : > > a. seja ESPECÍFICO , não adianta de PATAVINA vc virar pros caras e dizer "ó, > faz um check aí", vc TEM que Explicitamente dizer : recebi um erro de bloco > corrupto tal no arquivo tal do servidor tal no filesystem tal, bloco esse > usado pelo aplicativo banco de dados Oracle, que roda no account aix tal - > por favor, fazer análise RIGOROSA das mensagens do sistema, dos logs , dos > arqs de erro , etc, procurando por Evidências de falha no software > (SO/drivers/firmware) e/ou no hardware - e se vc souber o nome dos > utilitários aix referentes a isso (tais como dmesg, errpt, etc, etc) cite > também... > Já pro pessoal que vai fazer o teste de hardware,novamente, seja Explícito : > explica/evidencia pra eles que vc RECEBEU a msg de bloco corrupto , E que o > software que vc usa (banco de dados Oracle) primeiro lê o bloco do disco, > depois o altera em memória , se preciso envia dados via rede pro cliente e > finalmente depois recebe eventuais dados e os gravam no bloco, que vai pro > disco : assim sendo PODE SER que seja falha em disco corrompendo o que foi > lido/gravado, PODE SER que seja falha nalgum pente de memória, alterando > bits/bytes do que vai ser gravado, PODE SER que seja falha de rede, > enviando/recebendo algum bit/byte alterado... Por isso que vc quer um teste > PROFUNDO de hardware - esses softwares de teste de hardware fazem justamente > isso, gravam uma série determinada de bytes em cada posição da memória, > depois fazem gravações em disco, e conferem bit-a-bit o que foi > lido/gravado... No meu tempo de sysadmin AIX (com a venerável versão 4.x em > RISC) já vinha junto com o servidor um CD com softwares do tipo, aí bastava > vc bootar o server com ele em modo monousuário e seguir o menu : não sei como > está hoje, mas o que vc quer é isso, é um teste PROFUNDO comprovando que o > hardware está OK... > > > b. se quiser vc pode instalar e rodar (até em modo ONLINE mesmo com bd ativo) > a tool Oracle chamada RDA, ela já faz a coleta dos logs todos do banco E da > maioria dos logs do SO, e apresenta depois isso numa página web bonitinha... > Checa no metalink que vc a acha... > > c. Outras tools Oracle que vc pode baixar do metalink são : > > => OSWatcher : ele roda alguns comandos unix (tipo iostat, vmstat, sar) > automaticamente com a frequência que vc indicar e depois gera um relatório - > a idéia aqui é mais ter uma "carga programada", ter o servidor sendo medido > periodicamente , há chances de que eventuais bugs/falhas de hardware causem > diferenças nas medições... Não é chance grande mas a tool é de grátis e não > impõe quase nada de overhead, então é usar sem pensar duas vezes > > => Cluster Healthcheck : vc afaik não diz, mas se for RAC vc pode baixar & > usar esse cara, ele faz uma checagem geral do cluster - não é incomum vc ver > issues estranhas no banco por causa dalgum software externo que seja > requerido pela tua versão/ambiente/instalação, vale a checagem > > []s > > Chiappa > > > --- Em oracle_br@yahoogrupos.com.br, "Carlos Alfredo M. Menezes" > <carlos.menezes@> 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, 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 ele online. > > > > > > > > > Atenciosamente, > > > > > > Marcus Pavan. > > > > > > > > > > > > > > > ________________________________ > > > De: MARCIO CASTRO <marciomouracastro@> > > > Para: oracle_br@yahoogrupos.com.br > > > Enviadas: Segunda-feira, 25 de Abril de 2011 17:29:20 > > > Assunto: Res: [oracle_br] Corrupção de dados > > > > > > > > > Carlos; você poderia utilizar o dbv no datafile/segmento? Também retorna > > > erro? > > > > > > ________________________________ > > > De: Carlos Alfredo M. Menezes <carlos.menezes@> > > > Para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> > > > Enviadas: Segunda-feira, 25 de Abril de 2011 18:18:16 > > > Assunto: [oracle_br] Corrupção de dados > > > > > > Caros boa noite, > > > Recebi aquele conhecido erro de corrupção: > > > > > > Corrupt block relative dba: 0x0183f103 (file 6, block 258307) Bad header > > > found during buffer read Data in bad block: > > > type: 2 format: 2 rdba: 0x00806981 > > > last change scn: 0x0000.0408ab74 seq: 0x27 flg: 0x04 > > > spare1: 0x0 spare2: 0x0 spare3: 0x0 > > > consistency value in tail: 0xab740227 > > > check value in block header: 0x617a > > > computed block checksum: 0x0 > > > Reread of rdba: 0x0183f103 (file 6, block 258307) found valid data > > > > > > Rodei o sql: > > > select segment_name,segment_type,owner from sys.dba_extents where > > > file_id=(6) and (258307) between block_id and block_id + blocks -1; > > > > > > Identifiquei o segmento afetado, no caso uma tabela. > > > > > > O curioso é que o comando analyze table xxx validate structure continua > > > dando: > > > ORA-08103: object no longer exists. O mesmo acontece com o exp. Mas o > > > backup via > > > > > > rman não reporta nenhum problema. 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. Ainda não > > > reiniciei a instância para tentar um > > > > > > novo analyze table xxx validate structure. > > > > > > Alguém tem uma sugestão de reparo, aparentemente o Recovery a partir do > > > backup via rman após o problema, mesmo ele executando normalmente, pode > > > não ser confiável. > > > > > > Detalhes da versão: > > > Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi PL/SQL > > > Release 10.2.0.4.0 - Production > > > CORE 10.2.0.4.0 Production > > > TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio > > > NLSRTL Version 10.2.0.4.0 - Production > > > > > > Abraços a todos. > > > > > > Att, > > > Carlos Alfredo > > > Carlos Alfredo M. de Menezes > > > Analista de Suporte Sr. > > > (82) 3217-2828 / 9921-0603 > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > ------------------------------------ > > > > > > ---------------------------------------------------------------------- > > > ---------------------------------------------------- > > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > > > >inteira responsabilidade de seus remetentes. > > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > > ---------------------------------------------------------------------- > > > ---------------------------------------------------- > > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > > > >Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO > > > >ESPAÇO! VISITE: http://www.oraclebr.com.br/ > > > ---------------------------------------------------------------------- > > > -------------------------------------------------- Links do Yahoo! > > > Grupos > > > > > > > > > > > > > ------------------------------------ > > > > -------------------------------------------------------------------------------------------------------------------------- > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > > >inteira responsabilidade de seus remetentes. > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > -------------------------------------------------------------------------------------------------------------------------- > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > > >Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO > > >ESPAÇO! VISITE: http://www.oraclebr.com.br/ > > ------------------------------------------------------------------------------------------------------------------------ > > Links do Yahoo! Grupos > > >