Re: RES: [oracle_br] Re: ORA-19870: error reading backup piece
Blz, menos mal que foi algo temporário : pelo jeito vc tinha espaço livre o suficiente quando o restore começou, mas aí quando o sysadmin começou a manutenção dele foi consumindo, consumindo até se esgotar, E por pura e cega sorte o espaço acabou exatamente quando o Oracle tava gravando algum bloco vazio, por isso não corrompeu o bloco imediatamente anterior e por isso o DBV não achou nada... OK, faz sentido... Como não tem como a gente adivinhar daqui, eu costumo expor/apontar as principais possibilidades, por isso a enxurrada, okdoc ? Fico contente de poder ter te ajudado... []s Chiappa
RES: [oracle_br] Re: ORA-19870: error reading backup piece
Chiappa, Muito obrigado pela enxurrada de informações. Era espaço em disco, um sysadmin estava fazendo uma manutenção e não sabia que eu estava fazendo um restore na maquina. Grato, Ednilson De: sentto-1682896-121787-1493307270-ednilson.silva=jbs.com...@returns.groups.yahoo.com [mailto:sentto-1682896-121787-1493307270-ednilson.silva=jbs.com...@returns.groups.yahoo.com] Em nome de jlchia...@yahoo.com.br [oracle_br] Enviada em: quinta-feira, 27 de abril de 2017 12:34 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: ORA-19870: error reading backup piece Blz ? Então, a msg tá clara : "ORA-19502: write error on file "/d01/oradata/maxprod/maximo_index02.dbf", blockno 969249" ou seja, o SO reportou um erro ao gravar ** exatamente esse bloco ** desse datafile As CAUSAS para o erro podem ser as mais diversas, desde simples falta de espaço (cfrme reportado em https://juniororacledba.wordpress.com/2011/08/02/oracle-ora-19502-ora-27072-during-rman-backup/), Permissões (no filesystem E/OU em diretórios ou mesmo em arqs), falta de Recursos no Linux (cada arquivo a ser criado VAI exigir um file handle para a criação, VAI consumir um i-node no seu SO, ** confira ** como estão seus ulimits e consumo de recursos do SO), pode ser corrupção no sistema de arquivos (digamos, o setor de disco onde esse tal block reside por falha não está registrado no filesystem como ocupado pelo arquivo em questão), ** OU ** (a pior hipótese, portanto a primeira em que se pensa) Pode Ser que realmente tá com uma falha física nesse ponto desse disco E antes que vc pergunte SIM, pode ser que o DBV não pegou a falha porque (digamos) o bloco em questão estava vazio/sem dados, ou talvez a falha era na lista de i-nodes que compõem o tal arquivo e o DBV ** não ** faz uma leitura abrindo o arquivo mas sim leitura direta no bloco via métodos similares ao DD, OU ainda o espaço em disco/tamanho máximo do arquivo permitido foi suficiente para gravar a parte com dados do arquivo, a parte que não gravou estava sem dados. Então o que vc TEM que fazer aí está claro : a) checar espaço em disco via df e similares, CONFIRMANDO que há espaço suficiente pra criar o arquivo em disco b) conferir via ls o tamanho real criado do arquivo, validando que ele está com o tamanho que deveria c) junto com o seu sysadmin, conferir para quanto estão setados os limites do usuário e do sistema (via ulimit, parâmetros de kernel, etc) E conferir o quanto está sendo consumido (via lsof e similares), para COMPROVAR que há recursos e limites livres suficientes para criar os arquivos, etc d) fazer uma CHECAGEM DE ESTRUTURA nesse filesystem, normalmente com fsck ou se não com o utilitário adequado que vc tiver e) verificar que as permissões e/ou opções de montagem todas do filesystem, diretório e sub-diretórios estão Adequadas f) fazer uma checagem ** física ** no(s) disco(s) desse filesystem, com o utilitário não-destrutivo que vc tiver Essas tasks devem te dar algum indício de qual está sendo seu problema... []s Chiappa
[oracle_br] Re: ORA-19870: error reading backup piece
Um outro ponto adicional : além de *** TODAS *** essas verificações que vc vai TER SIM que fazer, como vc diz que fez um : select * from V$DATABASE_BLOCK_CORRUPTION; como vc diz que ainda não restaurou todos os datafiles necessários (então não é possível ainda Abrir esse database), mas para poder estar com esse database ao menos montado e poder fazer consulta do tipo eu Entendo que vc já tinha conseguido ao menos restaurar a tablespace SYSTEM e os controlfiles/initfile ou spfile além dessa tal indexnãoseidasquantas, correto ? Sendo isso eu diria : 1. veja lá se o RDBMS gerou trace ou dump files, potencialmente mais info sobre possíveis pontos de corrupção e/ou misconfigs podem existir neles 2. não tenho certeza absoluta (e não estou com um db aqui pra testar) mas iirc nesse ponto de banco Montado é Sim Perfeitamente possível se rodar os checks do RMAN (seja VALIDATE de datafile, seja algum tipo de BACKUP VALIDATE) 3. Vale ** muito ** a pena vc baixar limpamente esse banco que está em MOUNT com SHUTDOWN IMMEDIATE e rodar o DBV com o banco DESLIGADO TOTALMENTE : nessa situação, como o banco está indisponível, vc tem Total Certeza que o RDBMS não está lendo o datafile por extents, mas sim está REALMENTE abrindo o arquivo no SO, e portanto TALVEZ pegando alguma inconsistência no filesystem 4. Outra coisa que vc pode pensar em fazer é, se a maioria dos datafiles já tão restaurados, é copiar eles (e os controlfiles, archives se vc os tem/se for backup hot, e tudo o mais) prum outro ponto, remover do controlfile os datafiles que ainda não estão restaurados e ABRIR mesmo esse database, aí vc poderá usar as opções de verificação e validação ONLINE, como export, ANALYZE VALIDATE, etc... Nesse mesmo ambiente cópia, vc pode tentar escrever um programinha (tipo http://www.tenouk.com/cpluscodesnippet/readwritetextfile.html, ou em alguma outra linguagem que conheça) que abra o arquivo, leia fisicamente o tal bloco e depois grave nele, para tentar pegar algum erro de disco... []s Chiappa
[oracle_br] Re: ORA-19870: error reading backup piece
Blz ? Então, a msg tá clara : "ORA-19502: write error on file "/d01/oradata/maxprod/maximo_index02.dbf", blockno 969249" ou seja, o SO reportou um erro ao gravar ** exatamente esse bloco ** desse datafile As CAUSAS para o erro podem ser as mais diversas, desde simples falta de espaço (cfrme reportado em https://juniororacledba.wordpress.com/2011/08/02/oracle-ora-19502-ora-27072-during-rman-backup/), Permissões (no filesystem E/OU em diretórios ou mesmo em arqs), falta de Recursos no Linux (cada arquivo a ser criado VAI exigir um file handle para a criação, VAI consumir um i-node no seu SO, ** confira ** como estão seus ulimits e consumo de recursos do SO), pode ser corrupção no sistema de arquivos (digamos, o setor de disco onde esse tal block reside por falha não está registrado no filesystem como ocupado pelo arquivo em questão), ** OU ** (a pior hipótese, portanto a primeira em que se pensa) Pode Ser que realmente tá com uma falha física nesse ponto desse disco E antes que vc pergunte SIM, pode ser que o DBV não pegou a falha porque (digamos) o bloco em questão estava vazio/sem dados, ou talvez a falha era na lista de i-nodes que compõem o tal arquivo e o DBV ** não ** faz uma leitura abrindo o arquivo mas sim leitura direta no bloco via métodos similares ao DD, OU ainda o espaço em disco/tamanho máximo do arquivo permitido foi suficiente para gravar a parte com dados do arquivo, a parte que não gravou estava sem dados. Então o que vc TEM que fazer aí está claro : a) checar espaço em disco via df e similares, CONFIRMANDO que há espaço suficiente pra criar o arquivo em disco b) conferir via ls o tamanho real criado do arquivo, validando que ele está com o tamanho que deveria c) junto com o seu sysadmin, conferir para quanto estão setados os limites do usuário e do sistema (via ulimit, parâmetros de kernel, etc) E conferir o quanto está sendo consumido (via lsof e similares), para COMPROVAR que há recursos e limites livres suficientes para criar os arquivos, etc d) fazer uma CHECAGEM DE ESTRUTURA nesse filesystem, normalmente com fsck ou se não com o utilitário adequado que vc tiver e) verificar que as permissões e/ou opções de montagem todas do filesystem, diretório e sub-diretórios estão Adequadas f) fazer uma checagem ** física ** no(s) disco(s) desse filesystem, com o utilitário não-destrutivo que vc tiver Essas tasks devem te dar algum indício de qual está sendo seu problema... []s Chiappa