- Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 6 meses atrás por lordmaca.
-
AutorPosts
-
13 de julho de 2011 às 12:22 am #99965leandrolbsParticipante
Pessoal, seguinte:
Houve uma queda de energia bruta, não sobrou nem para o NoBreak; Resultado… banco corrompido…
Verifiquei os blocos corrompidos, tentei usar a DBMS_REPAIR mas sem sucesso.. (Faltou conhecimento);
pelo expdp e pelo exp, tive a mensagem do bloco corrompido:
EXP-00056: Erro Oracle: 1115 encontrado
ORA-01115: erro de IO ao ler o bloco do arquivo 5 (bloco # 230537)
ORA-01110: 5 do arquivo de dados: ‘D:ORACLEORADATAXETABLESPACE.DBF’
ORA-27091: não é possível enfileirar entrada/saída
ORA-27070: falha na leitura/gravação assíncrona
OSD-04006: Falha de ReadFile(), não é possível ler a partir do arquivo
O/S-Error: (OS 23) Erro nos dados (verificação cíclica de redundância).
Exportação encerrada com êxito, sem advertências.Como a tabela não teve alteração de ontem a noite para agora, renomei a tabela com problemas, e importei somente ela do backup de ontem….
Mas fica a minha curiosidade, como devo operar nesta situação… como recupero o maximo da tabela e retiro os blocos corrompidos ??Como tenho a tabela renomeada, queria testar este “script”;
desde já!: Obrigado a todos…
13 de julho de 2011 às 1:43 am #99968IshiiParticipanteOlá,
Você já tentou o DBV.exe ou DbVerify? Mas é melhor olhar a documentação da Oracle sobre isso…
[]s Ishii
13 de julho de 2011 às 3:21 pm #99972leandrolbsParticipantedbv:
.........................................
DBV-00102: Erro de E/S de arquivo em FILE (D:oracleoradataXEtablespace.dbf) duran
te operaþÒo verification read (-2)
Segui estas orientações:
http://download.oracle.com/docs/cd/B105 … 2/ch13.htm13 de julho de 2011 às 5:32 pm #99974leandrolbsParticipantequanto ao DBMS_REPAIR, alguem tem exemplos praticos ?
13 de julho de 2011 às 9:40 pm #99978vieriParticipanteMas fica a minha curiosidade, como devo operar nesta situação… como recupero o maximo da tabela e retiro os blocos corrompidos ??
Eu faria exatamente oque vc fez, criaria uma nova e renomearia a antiga para um nome que ninguem pudesse acesar. tipo TB_CRASH_TB_NAME.
E rodaria um analyze table validate sctructure para todas as tabela,
e um analyze compute statistics também para ver se tem mais alguma com corrupção.Feito isso, essa tabela corrompida tentaria truncar ela, depois de truncada, droparia ela e analisária se viessem erros.
ou então deixaria ela quietinha, pois ela pode estár sob uma corrupção física do disco, garatindo assim que nenhum novo objeto as use.
A DBMS_REPAIR é bem complexa mas não faz mágica…
se vc descobrir o bloco , e datafile corrompido ela pode marcar somente esses blocos corrompidos como em desuso, tb garantindo a segurança da base.caso vc não tivesse backup faria um create table as select cmo um filtro por data por exemplo ou na PK para ver quais as linhas corrompidas, e criaria uma nova excluindo essas linhas.
entendeu?
abraço.
13 de julho de 2011 às 9:43 pm #99979vieriParticipanteO RMAN também pode te restaurar os blocos corrompidos(corrupção lógica), caso tenha backup em dia.
http://download.oracle.com/docs/cd/B283 … mblock.htm
DBMS_REPAIR:
http://download.oracle.com/docs/cd/B193 … repair.htm
13 de julho de 2011 às 9:54 pm #99980leandrolbsParticipanteObrigado Vieri, vou estudar mais estas ferramentas / situações.
15 de julho de 2011 às 8:52 am #100002lordmacaParticipante[quote=”leandrolbs”:2963kfvn]Obrigado Vieri, vou estudar mais estas ferramentas / situações.[/quote]
A melhor opção neste caso creio que seja realmente o RMAN se tiver com backups em dia.
-
AutorPosts
- Você deve fazer login para responder a este tópico.