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 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
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
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
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