sábado, 30 de março de 2013

ORA-19502: Write Error on File - Resolvendo o problema


Olá pessoal.

Hoje irei falar sobre um erro "ORA" que recebi durante um backup full para migração de um servidor para outro em um cliente.Os nomes dos datafiles e outros arquivos foram alterados para garantir a confidencialidade do ambiente do cliente.

O processo era simples migrar uma base de dados em NOARCHIVELOG para outro servidor usando o Recovery Manager.


ORA-19502: write error on file "C:\U01\APP\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\02O4LT5M_1_1", block number 783744 (block size=8192)

Segue  saída de LOG do  RMAN:




Recovery Manager: Release 11.2.0.2.0 - Production on Sat Mar 16 12:44:23 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: PROD (DBID=190803984, not open)
using target database control file instead of recovery catalog

RMAN> shutdown immediate;
2> startup mount;
3>  
4> RUN {
5> ALLOCATE CHANNEL ch00 TYPE disk ;
6> BACKUP database SKIP INACCESSIBLE 
7> TAG cold_db_bk_level0 
8> FILESPERSET 5
9> # recommended format
10> FORMAT 'F:\PROD\backupset\cold_bk_%s_%p_%t' DATABASE tag = 'FULL-DB';
11> RELEASE CHANNEL ch00;
12> ALLOCATE CHANNEL ch00 TYPE disk;
13> BACKUP
14> # recommended format
15> FORMAT 'F:\PROD\backupset\cold_cntrl_%s_%p_%t' CURRENT CONTROLFILE tag='CTRF';
16> RELEASE CHANNEL ch00;
17> }
18> 
19> alter database open;
20> 
database dismounted
Oracle instance shut down

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area    4476211200 bytes

Fixed Size                     2260512 bytes
Variable Size               3422552544 bytes
Database Buffers            1040187392 bytes
Redo Buffers                  11210752 bytes

allocated channel: ch00
channel ch00: SID=1878 device type=DISK

Starting backup at 16-MAR-2013 12:44:37
channel ch00: starting full datafile backup set
channel ch00: specifying datafile(s) in backup set
input datafile file number=00001 name=C:\U02\APP\ORACLE\ORADATA\PROD\SYSTEM01.DBF
input datafile file number=00006 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS01.DBF
input datafile file number=00007 name=C:\U02\APP\ORACLE\ORADATA\PROD\INDICES01.DBF
input datafile file number=00014 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS02.DBF
input datafile file number=00015 name=C:\U02\APP\ORACLE\ORADATA\PROD\SYSTEM02.DBF
input datafile file number=00012 name=C:\U02\APP\ORACLE\ORADATA\PROD\HML01.DBF
input datafile file number=00005 name=C:\U02\APP\ORACLE\ORADATA\PROD\AUXDADOS.DBF
input datafile file number=00019 name=C:\U01\APP\ORACLE\ORADATA\PROD\DADOS05.DBF
input datafile file number=00020 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS04.DBF
input datafile file number=00021 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS03.DBF
input datafile file number=00016 name=C:\U02\APP\ORACLE\ORADATA\PROD\INDICES02.DBF
input datafile file number=00003 name=C:\U02\APP\ORACLE\ORADATA\PROD\UNDOTBS01.DBF
input datafile file number=00002 name=C:\U02\APP\ORACLE\ORADATA\PROD\SYSAUX01.DBF
input datafile file number=00017 name=C:\U02\APP\ORACLE\ORADATA\PROD\INDICES03.DBF
input datafile file number=00018 name=C:\U02\APP\ORACLE\ORADATA\PROD\INDICES04.DBF
input datafile file number=00008 name=C:\U02\APP\ORACLE\ORADATA\PROD\DEVDADOS.DBF
input datafile file number=00011 name=C:\U02\APP\ORACLE\ORADATA\PROD\SAMINDICES01.DBF
input datafile file number=00009 name=C:\U02\APP\ORACLE\ORADATA\PROD\DEVINDICES01.DBF
input datafile file number=00010 name=C:\U02\APP\ORACLE\ORADATA\PROD\HMLDADOS01.DBF
input datafile file number=00013 name=C:\U02\APP\ORACLE\ORADATA\PROD\PSI_MEGA.DBF
input datafile file number=00004 name=C:\U02\APP\ORACLE\ORADATA\PROD\USERS01.DBF
input datafile file number=00022 name=C:\U01\APP\ORACLE\ORADATA\PROD\DADOS06.DBF
input datafile file number=00023 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS07.DBF
input datafile file number=00024 name=C:\U02\APP\ORACLE\ORADATA\PROD\DADOS08.DBF

channel ch00: starting piece 1 at 16-MAR-2013 12:44:38
released channel: ch00
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ch00 channel at 03/16/2013 12:47:43
ORA-19502: write error on file "C:\U01\APP\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\02O4LT5M_1_1", block number 783744 (block size=8192)
ORA-27070: async read/write failed
OSD-04016: Erro ao enfileirar uma solicitação de E/S assíncrona.
O/S-Error: (OS 112) Espaço insuficiente no disco.

Recovery Manager complete.


Esta informação sobre ORA-19502 no início não ajudou muito a esclarecer a causa inicial do erro, pois aparentemente era um erro de gravação em um arquivo de saída que deveria ser escrito em outro local e não no onde o erro informava, inclusive já as permissões necessárias.
Analisei se o script acima estava algo setado para o local onde o erro apontava, mas o formato onde deveria ser efetivado o backup do RMAN estava correto.

Mesmo assim ficou incapacitado de escrever e o comando do RMAN falhou.Verifiquei ainda se o erro era uma suposição de que o parâmetro padrão local foi criado, mas esta hipótese não era verdade.

Dando uma "googlada" verifiquei que não tinha setado parametro algum para o canal setado no script nas configurações do RMAN, ou seja estavam todos como DEFAULT

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>rman target /

Gerenciador de RecuperaþÒo: Release 11.2.0.2.0 - Production on Sßb Mar 30 11:48:13 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

conectado ao banco de dados de destino: PRODUCAO (DBID=190803984)

RMAN> show all;

usar o arquivo de controle do banco de dados de destino em vez do catßlogo de recuperaþÒo
Os parÔmetros de configuraþÒo de RMAN para o banco de dados com db_unique_name PRODUCAO sÒo:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFPRODUCAO.ORA'; # default

RMAN>

Definirdo um padrão de emissão de um comando corrigiu o problema neste caso e o backup foi efetuado normalmente.

configure channel 1 device type disk format F:\PROD\backupset\backup_%U';

Então pessoal por hoje é só.


Emerson Martins
DBA Oracle
OCA 11g

Referências:
https://forums.oracle.com/forums/thread.jspa?threadID=897852
http://www.dba-oracle.com/t_ora_19502_write_error_on_file_blockno_where_blocksize_equals.htm

segunda-feira, 18 de março de 2013

Aprovado nos exames da OCA


Olá pessoal,
Tudo bem?

A muito tempo não venho publicando nada no blog por conta da correria do dia-a-dia e por um motivo importante, que era a dedicação exclusiva para as provas de certificação. Mas sem blá blá blá gostaria de compartilhar com vocês que nos últimos dias fiz as seguintes provas de certificações:
  • 1Z0-052 Oracle Database 11g: Administration I
  • 1Z0-051 Oracle Database 11g: SQL Fundamentals I
Consegui êxito nas duas provas assim conseguindo a certificação:
OCA 11g - Oracle Database 11g Administrator Certified Associate
Esta certificação é ponto inicial para quem quer seguir atuando no mundo de banco de dados Oracle. Mas não para por ai, pois os estudos para quem é DBA nunca para!Que venha OCP !
Fiquem com Deus!

Emerson Martins
DBA Jr

Scores