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